找回密码
 立即注册
查看: 3969|回复: 3

如何快速在wordpress后台中增加一个发布全站公告的功能?

[复制链接]

342

主题

545

回帖

3594

积分

管理员

积分
3594
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
! }3 c% O" Y3 I- J0 n. A5 N+ H; W2 d
8 P9 q% ~( ~2 Y8 |6 L* A5 C1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
. K1 g. c: D! {) l) v3 I$ w" f$ W  n2 g+ J
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
; W0 \. f1 _7 x) M7 o9 Z/ L8 j; v) D8 B, U/ v9 f( W3 |% l- q
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。- Q, [& ?, j  ~+ s% Y

, x7 W7 Q0 I4 m9 G1 V4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
& R7 c2 {& g0 L2 a/ q- P, @' `
) U$ U, p( _1 b" b8 Z3 M% _注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

342

主题

545

回帖

3594

积分

管理员

积分
3594
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?* ^/ I+ n6 Q, Q: `! w+ A

0 J  u; ?# q! g+ b$ U- A% Z如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:- G, G" `& w* n0 [. ~0 i( G* V% \

% v2 B0 F# J6 I' f. {7 I1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
3 Z. U- S% g9 ?* \0 P
( w- U; ^- |# p, b1 J, H5 ]' g9 j; m+ |   ```: h3 O& J# E5 F3 s6 g
   add_menu_page(
* f/ p8 T6 h# ^  Q* k       '全站公告',
- E3 P) h. E6 g4 P       '全站公告',$ k2 C- y# Y- f3 @" [1 i
       'manage_options', //需要的用户权限* P! y3 j: x7 l% l& Z6 J3 a
       'site-wide-notice', //后台页面的 slug
7 e# y; k4 M. @  e$ e       'render_site_wide_notice_page', //用于渲染后台页面内容的函数8 P  H; q$ G# ~5 k0 ?
       'dashicons-megaphone', //用于显示在菜单中的图标
! c$ F7 z2 {; D9 u- B* s       30 //菜单项的位置
) P+ C4 M6 x6 f3 S7 |   );
& u( B$ }/ A2 }+ a* J+ e6 {; o5 x   ```
3 u/ [9 N: o& W1 s' w0 }# ?; a2 e5 D
) K  p9 A$ g0 ?: [. V2 R9 |   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。0 M( M4 Q( ^3 Y
+ C" `/ w4 M3 c7 ~& t( e. m
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
4 w/ p: M& F  F' Y. @: k
2 p, ]0 X+ J( K7 ?4 ^7 v8 O( w  k   ```
: ~4 {8 H2 e8 n  q, r   function render_site_wide_notice_page() {
8 F) W: G1 k7 R( {      // 渲染后台页面内容
8 b1 n( T" K2 B) B      echo '<div class="wrap">
$ K8 F9 i. a1 G4 L* P& Y2 @          <h2>全站公告</h2>
6 T" o, T0 ]4 R4 K1 I- N          <form method="post" action="">
4 ]2 d: M3 z% M5 L3 }0 k              <label for="title">公告标题:</label>
% u$ `9 d1 k+ w              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>+ R- \. d3 I- {/ U
              <label for="content">公告内容:</label>
1 h" I* a0 p7 y; |& \9 d* j              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
+ I, Z$ T3 g8 g3 z( M5 l              <input type="submit" name="submit" value="保存设置">
! T$ X6 d) I* p, u/ ?          </form>
3 K/ N& {: T' j! Y! b      </div>';
1 v# J, H4 k- G8 q4 S) F' S* M) q5 i1 P; _+ F4 @1 E
      // 处理表单数据, N  K! ?; w$ g. M6 N/ O
      if (isset($_POST['submit'])) {
* F  \/ D; C# R9 ]! B          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));6 \8 H( y2 O# n+ @$ i
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));' l- F7 u# h6 R+ e: S; `
      }
+ d9 w; r2 U% O: B1 l! R; _6 w   }1 ^% m/ q" R3 t# `9 }
   ```
3 S# Y! }( T- G! o* J
3 [3 z; R6 c/ t" U# Q6 C- L4 Y   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。3 j7 l' }9 L) u* }/ _5 ]# G* J0 j3 n6 e

& \: X( K. D! q9 `5 U; G2 ~3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:  W8 ^6 @8 G* Z6 D3 F! {0 Y
5 Z4 n' y# Y0 Y4 ]0 \- t7 ?' v! h: y
   ```  T4 W3 w2 u8 T2 o
   <?php
& b( d6 Q, b; G" ~   $site_wide_notice_title = get_option('site_wide_notice_title');9 [/ q; e  Z( @' ?1 g2 Z5 K
   $site_wide_notice_content = get_option('site_wide_notice_content');
: C+ W9 M6 D- F6 p, r/ v: a$ }   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {! ^- [9 F3 V4 q0 V7 ]# i
       echo '<div class="site-wide-notice">';& D- r4 z' l$ s4 ]* ]
       if (!empty($site_wide_notice_title)) {
- g3 o' L* A) M* u, x( g6 i           echo '<h3>'.$site_wide_notice_title.'</h3>';
0 m$ X0 L* w6 {3 d5 S' Z( `$ |       }
3 {& }$ B5 L/ I% h       if (!empty($site_wide_notice_content)) {" E# q& t) n, R( @/ C
           echo '<p>'.$site_wide_notice_content.'</p>';
9 {' H% h! b9 ~       }
! t6 {4 c3 s& Z8 O( o       echo '</div>';/ f, f! u* b; ?! `
   }  j( g; g; G) L$ M9 t
   ?>( C0 }5 x0 A' ^' W! u
   ```$ D# a2 ?! |. B/ d
* A  B) I; o" h0 x. H. Q6 m9 V
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
5 e5 r' f1 O) I/ h; K; z" M1 h% c; [0 Y! c& Y- ?
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

342

主题

545

回帖

3594

积分

管理员

积分
3594
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
2 k" m: ?/ ^0 R& L+ N) |/ s- w% U: x& v( q3 V7 p
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:. R! t$ t/ W% s

, J# S& J( I# W2 ^) [6 G1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:0 o6 B9 Y- d, T/ n, f2 F

7 ^! t: U7 i! ~* ]```
7 i& [8 \, H  p4 {1 O  e, Ufunction create_custom_post_type() {0 m# A3 p& G0 G, i
    $args = array(% b. l. K: B# l3 M
        'labels' => array(, d3 O9 s2 `  b9 g6 p
            'name' => '公告',8 ~$ i4 ^" M0 b0 e1 u7 b
            'singular_name' => '公告'1 v: B( [! l# }% E7 L1 y; q
        ),
4 T# h! V7 G% W$ B$ A. C3 d        'public' => true,/ z" g% C4 E# h6 a, `
        'has_archive' => true,0 I1 b- B2 d7 j7 U4 R6 M9 Z
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
' T2 ~$ o) X; {( c" U! z        'taxonomies' => array('category', 'post_tag'),
4 @9 V% j: u' S# `+ q3 Q        'menu_icon' => 'dashicons-megaphone',, c! X( Z+ _" F) w$ A* C& j/ B
        'menu_position' => 5,. D& i  x1 J9 V! }5 l; B
        'rewrite' => array('slug' => 'site-wide-notices')
: v- _+ b* I; [5 Y- @- B    );- o8 n, O4 q4 s: C$ p. E8 B
    register_post_type('site-wide-notices', $args);
; _1 R0 N) D& G; b}# ?. F& L' K1 C$ L* [9 K$ N
add_action('init', 'create_custom_post_type');- H4 h" Z+ I* k& h
```" M: s2 C" f  a7 y0 I4 T

8 X3 l7 h& [2 s. r0 V! m在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
" s7 V' M4 v6 J0 q$ S/ }5 r# c  ~/ F6 y5 V9 ?
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。3 L1 V2 N8 k8 V

5 C2 I1 p: _3 e7 `% M" w! O1 J3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:/ S+ R$ c# r2 z/ t% _4 K: z" y

6 T6 ?7 V% C0 `* a# M```$ B& }/ O1 Y  v+ i
$args = array(
7 M, `" K; B8 q7 {: c6 |    'posts_per_page' => 3, // 显示的公告数量
& L! S9 x2 n7 G( ]+ G9 E1 S# F    'post_type' => 'site-wide-notices', // 公告文章类型
2 H' H3 N' U4 B6 `& O& D/ F    'post_status' => 'publish', // 公告状态, V1 A' q% f! Q2 F, M( e% n. C- }
    'order' => 'DESC' // 排序方式
& m4 s- R$ r& M/ w" ^7 {# D);
6 j  D2 o3 X8 K$ j9 `9 }& _8 J' U1 w: N& f2 U) `- E
$notices = new WP_Query($args);0 ?/ a7 E8 c. n- Y/ W2 z* V8 U
if ($notices->have_posts()) :
9 b4 A6 s) E/ U- W* x+ }    while ($notices->have_posts()) : $notices->the_post(); ?>8 }/ U* y. ?1 {% a1 z. e
        <div class="notice">
2 v9 i& y+ v; b3 |- }/ ^$ w            <h3><?php the_title(); ?></h3>
- y/ l) q' t1 P& J( ?2 |3 B            <div class="notice-content"><?php the_content(); ?></div>
$ K, _* G  u+ q, F" R8 w) t        </div>
& n2 e7 K* k  K: r/ `- c    <?php endwhile;' X2 F, k% Z* Z
else :; q6 V% o, E7 D2 L# T) F
    echo "暂无公告";) p1 E. s. X4 G, e. v) Z9 z2 s
endif;
$ e) }$ N" y5 {# ]+ w: rwp_reset_query();
1 U% @# W' R: @4 E```
( E0 Q4 `, _$ E  _9 W1 d8 L' M: p
% v7 M3 o- n. H6 m5 y3 \这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。! v# G' k/ ]9 k  T% ?
' p0 Y# H! h3 I. l$ |1 t
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

342

主题

545

回帖

3594

积分

管理员

积分
3594
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?* W, o6 a% L# `8 \- ^2 z
! n% k) G1 X9 |. S0 i
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。8 C% `. }% I. j& C1 k- r0 C
$ u4 N0 a3 P7 E7 T# E; C; Y( y
以下是创建自定义插件的步骤:
# l  {8 {9 Z. w% ^2 q7 B$ K) P" r8 u/ M. Y1 L* u% V- h) Q
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:. W( z3 N$ K0 [+ \

+ A- I' c4 Q5 O+ G* f. ~   ```
" s! O' i1 y$ L' N9 n# p   <?php
; B! \- z5 _# @0 d% `   /*
5 `( V& _$ j! {$ @   Plugin Name: Site Wide Notices Plugin
6 Q& ^0 g9 B1 R8 L& K5 s   Description: Adds a new custom post type for site-wide notices.
5 k" d# @' }3 A! D3 N   Version: 1.0' y  Y- y" J  Q* w* @3 B
   Author: Your Name
' j) A1 ?' W$ f4 Y( c3 i, `   Author URI: http://example.com
7 W/ ~* G" {4 |4 s* n# W% w   */
3 ]4 \; y. |+ X: K( p' Z1 `: t& Y% d* z5 o$ K1 t
   // Add plugin code here...# x  q# h; |+ H; V% u" m5 |
   ```
4 F( e* W% X6 ^( h+ x) L, E+ S% I0 {2 a2 N  g
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。3 m! Z# G/ R3 `1 o! V+ n

0 ~. j# L0 x2 X, y6 s2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
  b  l4 ~. k9 P! g% ^( |0 p. s$ s. k% `# p) c5 p( `7 F* _6 A( B
   ```7 n( Z! a& ]* }2 T7 U) M0 v4 C
   add_action('init', 'create_custom_post_type');
3 }( M6 H- d: ~* I   function create_custom_post_type() {. N- p8 L' x9 T  Z. E$ D
      $labels = array(( `4 R+ u) o- g$ G
          'name' => 'Site Wide Notices',
( u! t8 x* s3 K% t          'singular_name' => 'Site Wide Notice',
2 ~7 T0 M# ]9 `$ _          'add_new' => 'Add New',: w. J3 |, H; X3 n
          'add_new_item' => 'Add New Site Wide Notice',# F8 y( t$ E6 v' S; E0 t: d
          'edit_item' => 'Edit Site Wide Notice',
6 s+ |8 c: N8 Y2 t4 P8 p          'new_item' => 'New Site Wide Notice',
, R; P+ v6 w; u          'view_item' => 'View Site Wide Notice',) W8 V1 O! E1 m5 R9 C! X
          'search_items' => 'Search Site Wide Notices',
0 y, `0 ^- X% r: s$ z          'not_found' => 'No site-wide notices found',* b& t' K0 U* ^# M3 }
          'not_found_in_trash' => 'No site-wide notices found in trash'
& r* j) q+ F4 E/ I+ f7 E# I* W      );- o3 @" _7 z9 w1 X- z

8 t4 P# F' K1 c- g3 e$ @- h      $args = array(
4 B' i, ?9 m2 B- O1 \          'labels' => $labels,
! E' d) `6 R7 m8 I          'public' => true,. Y4 x6 T* K/ D; O
          'has_archive' => true,
0 Z& Y$ @2 N" V+ A          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),2 Q; D  [4 A( h5 U: c6 J. \% Z9 y5 i
          'taxonomies' => array('category', 'post_tag'),
% s" a* m) k# M( ?          'menu_icon' => 'dashicons-megaphone',
0 @2 u5 p+ P0 y* N+ t          'menu_position' => 5,/ u* S0 d% n  u
          'rewrite' => array('slug' => 'site-wide-notices')9 r2 F: |8 s% c# Y. r; H/ O' S
      );# {0 [9 r& }8 x: R

$ i3 Y# P# I4 \! m      register_post_type('site-wide-notices', $args);
7 d. Q/ B7 T* z# r7 P. m   }- r: m" S; h5 m% O/ @, W: R0 s& w
   ```
# s$ Y- k7 V" F0 }5 v9 x8 G( J  C: S+ W" P! g3 ]' w/ j4 o
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。6 K# a" g1 X1 j  G8 u& v3 T( y
7 \6 u; F# X, R, P* W$ v, C* Z
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:- M: X3 s9 M* j" t! ?0 A. y& H2 R
+ j- X5 _, z" x% B5 `: Y
   ```5 _5 A( K  V0 N5 |9 h+ V: i
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
6 M. Y8 Y2 t6 ~) D4 R   function add_site_wide_notices_boxes() {5 e2 I$ U! f! m, T: ?
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
: F; r- T5 s3 [4 y4 }% Y   }' l: q; G- e* B! _% o
- x+ O9 x$ A  @
   function notice_details_meta_box($post) {8 f- s9 B  ^, R* R: G
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
% G& I+ a+ U/ \6 u' G" `      $notice_title = get_post_meta($post->ID, 'notice_title', true);
4 g: q! G, J' p8 _; g- K. g      $notice_content = get_post_meta($post->ID, 'notice_content', true);6 N- g! T7 f9 {* ~
      ?>
  R: }2 m/ ~- Z4 o      <p>; y0 {0 f- P3 |9 ~/ w) C, t
          <label for="notice-title">Notice Title</label><br>
' `# \- {- H% e+ U& S" @' Z          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
2 q. X" I0 k' j! V      </p>
+ @. U3 S* T0 J4 L* ?& q  D: J      <p>. L: S/ W) w' ?1 B$ S. D- I) Q
          <label for="notice-content">Notice Content</label><br>
* k$ F8 G1 d- S5 w& ^$ W          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>4 ]; J* S; p2 W
      </p>
/ B! V. M, O7 r      <?php
4 @' ]: D1 X0 ^* t   }3 K; N$ C# X9 V% l! {
4 R* {$ X) D+ ^, U
   add_action('save_post', 'save_site_wide_notice_meta_box');, c2 n8 z" k6 c% _* O$ Q; v2 x
   function save_site_wide_notice_meta_box($post_id) {
* y/ X4 K7 ]+ z* U8 o9 l4 b      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
& B" u# L$ Z( C         return;
- @1 ~' u# I7 j# W% s      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
$ k% m9 J4 [, O' E& ^         return;8 q: K, V4 t, B$ G( Z) `5 X
- M5 c4 r5 ^0 N
      if (isset($_POST['notice_title'])) {
! C% w7 B7 W8 o, E  p, `  B          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
3 [+ j3 l5 p( o9 e4 z9 P      }& ?6 i7 s( t4 w* ~. f
      if (isset($_POST['notice_content'])) {
7 r: s& I% q, Z6 l0 ]; i9 t          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
" C, Z8 `  k0 s' _3 E+ I2 `      }
4 C, t, r/ i* d  J& s, L   }
# o5 {8 j# U7 P- g3 R   ```2 J: u- M0 S2 R& O0 b

% C& ?2 ?  |& c, [* Y   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
8 D" r4 K+ d- \5 k
; N2 A3 j+ Z) q, Y4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
4 v0 Z; P0 D, L
9 {; ?8 E$ A  `- y4 }   ```* b! d2 h; f  a! z+ j7 o1 `- }# V
   $args = array(
- ~" j3 ~1 Q3 n# a! W      'post_type' => 'site-wide-notices',
4 X( S6 _) a) y/ m! P      'posts_per_page' => 3,0 Z" w1 C7 z7 A1 n0 Y. P6 U
      'order' => 'DESC',
$ s" i, a4 A* Y5 n- Z      'orderby' => 'date'
9 y  w) P: G' f2 k% a   );$ y& ?1 w  w* {6 n
   $query = new WP_Query($args);
" L& h/ f& S" w: C$ a   if ($query->have_posts()) :
$ }5 s" j3 a: x+ }. l! [3 a. H      while ($query->have_posts()) : $query->the_post(); ?>8 w. w3 C' }0 x, H% n" X  B0 ^
          <div class="notice">
+ Y. {3 u: S# G5 P5 }2 m1 ~' K' d: |+ L              <h3><?php the_title(); ?></h3>
+ o& ^- T8 D! _& C! y# E              <div class="notice-content"><?php the_content(); ?></div>6 n5 i) d: ^5 B1 z' b) ?( Z# Z
          </div>
' E; `) ^' C# Q' n/ l      <?php endwhile;
+ a3 @) ~1 P4 z4 J      wp_reset_postdata();9 R( ]* @( s" z) I
   endif;
* s7 C5 ?4 ?6 y: w: B# W   ```
+ B/ z2 }) d$ s# p# I# ^
4 p# w3 B9 V- _/ C6 X+ s   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|通达创业无忧 ( 粤ICP备2023021749号|粤公网安备 44030402006137号 )

GMT+8, 2026-1-28 11:42 , Processed in 0.020122 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表