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

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

[复制链接]

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:* T6 ^5 U) l% l5 l1 y- E

2 [" w* t  V: ~, o1 T0 Y1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
0 v7 Z4 x7 @& f5 t6 R$ K, m- e- K
: g4 g$ c( }3 q; h& l6 l2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
* y6 t  e0 @- |/ a
/ r, U1 H5 d+ b, w% R0 K6 @" E8 I3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
" ^6 c' Q6 Q1 r+ o3 C9 ?0 j: Y& T
1 f) e) ?* @' C& b5 Z+ P6 E& j- s4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
' L0 N# s$ D; s$ |6 ?( P0 N* }) |( O
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
0 R% K, c- C3 o# I+ A( @; k: {7 N9 g; c% r" j- s
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:, k( L. o( q; d+ }) B% c+ b

. T+ c4 I/ q6 W& g8 z1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:& C  |! n3 {2 y7 E

6 Q* i# P6 S, c2 c6 Q5 `+ e   ```8 C. y) `$ F* t' Q+ y* v- K" P6 x
   add_menu_page(
* ^  z, w, Q, Y; Z" _       '全站公告',
+ X' T/ y  k  o6 `: m, w       '全站公告'," {  F, Y2 S  M: M
       'manage_options', //需要的用户权限" }: T1 Q& @+ \- C# W$ z- G8 a! d
       'site-wide-notice', //后台页面的 slug" P1 S4 e) V* d
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数3 T4 Q0 H& p# o
       'dashicons-megaphone', //用于显示在菜单中的图标
" |7 }6 q' \0 `1 [. q2 v8 e$ x       30 //菜单项的位置
8 ^8 z9 ^. l# S( s- |5 ?  {8 F   );' b4 k- _/ a3 i  p0 Y  W
   ```2 ~: D/ z& j; M

) M- ~5 J8 M/ n" {* v   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。9 d- r/ n9 W$ B; }5 O$ \5 w

! H. u1 E& u8 l$ K, Q. ?+ [  }2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
% a: ~& z! g% C: S& I
" q6 a2 e' x% J   ```
: f5 \- F! d" B$ _3 I   function render_site_wide_notice_page() {; x+ o) N9 s/ N" u6 I7 u9 Y# V
      // 渲染后台页面内容' }0 e% a# W5 R8 I
      echo '<div class="wrap">
. J) D) V8 M6 t( b          <h2>全站公告</h2>
5 _& V" q- b0 {9 V2 L          <form method="post" action="">/ R6 X; Y' G/ V. n
              <label for="title">公告标题:</label>- C- C0 @$ f$ x/ R$ E2 o
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
" w1 P3 f" d' [: G3 _' r              <label for="content">公告内容:</label>0 N3 L- x" _, \# n2 x) T
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
9 C6 O. F& Y* t; T, a" j              <input type="submit" name="submit" value="保存设置">
# m2 K/ H' |2 l+ c- S          </form>% _2 w' |' S" w
      </div>';
. ?+ w/ U' p2 E; m6 m
! a2 p' ^+ C; D! I/ s; m; I' l      // 处理表单数据2 W7 J" f; c4 j3 U! d9 S% K
      if (isset($_POST['submit'])) {
& h( D; Y5 p6 P8 n          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
6 v- b- U) }5 F8 P: T, c' V& R          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));( h7 S( y3 o1 e7 O* M- A5 R
      }- _. e: G; l0 n- g4 Y& Q2 g9 d
   }
1 e9 X9 F! Q2 j# n  o6 x. A0 s; e   ```
6 O/ |1 q1 Q/ N( B3 ~- l
" d' a9 I" t7 L3 L   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
. L0 t# L; e7 H7 z- T  o. f3 F. v* y: `! f6 X6 Y( w
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:- w2 P& F$ M/ H7 Y+ y! c+ o: I

4 X5 M3 p/ a/ m* ]; Q) F   ```
  z: q( B; K: z: h3 @, H   <?php
/ o* W# W7 ?+ T$ A1 o. ~: x% B   $site_wide_notice_title = get_option('site_wide_notice_title');
& _% r6 r; s) S, D5 r6 u7 a   $site_wide_notice_content = get_option('site_wide_notice_content');5 d+ K5 h, ?. f% L
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
8 T  O7 S# c+ v+ i  V       echo '<div class="site-wide-notice">';% I  B9 F+ A1 S5 v
       if (!empty($site_wide_notice_title)) {# Y. t' Z& V+ T7 b+ A
           echo '<h3>'.$site_wide_notice_title.'</h3>';0 Q% u2 ~# j, ~$ Z3 y8 L: j
       }
" k% n# I3 s+ \       if (!empty($site_wide_notice_content)) {9 v* O- {( o5 W
           echo '<p>'.$site_wide_notice_content.'</p>';
4 J1 w. U. ^8 ]6 i! o6 S% q       }
3 x. j  A# G6 W4 |# g       echo '</div>';7 I5 a+ c% w* r2 S4 p' t
   }
2 ]( e# B( b" l( o0 f2 k   ?>
: F7 i' U' Z2 z$ m6 m0 X   ```) F2 q) I5 c; ]
; u$ T0 b$ e" {; \
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。( \+ i. p. l6 t! U2 b
% J% s' p0 f  t# C$ ^
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?! J3 y0 k# \2 t! J6 i& C3 [

2 w7 z6 G- j" z  ]: ]您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
) I2 e6 S4 {  K9 O" p4 Q; }
( @5 r8 B8 `) K! Z) N" m4 Q1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
/ ^9 q9 ]" |' D9 S
$ A9 V. i- Q! C+ \/ M```7 J# d% m% Z$ N! Z; A
function create_custom_post_type() {
+ p0 X+ G4 }! \0 L    $args = array(
6 m3 q4 s3 V9 d" S; }        'labels' => array($ c% c- C* e+ k) t
            'name' => '公告',$ n5 V: p$ t; k  z8 ]
            'singular_name' => '公告'6 S4 V$ M& f; Z, s# P& a
        ),
( Q6 k$ o4 e9 f, ?+ r" P        'public' => true,
$ V# T+ m/ l/ n# e9 \        'has_archive' => true,. V2 S( M. g  ?- n% G7 I* ^
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
* @4 _/ n: @& s, l. Z/ `/ \% A        'taxonomies' => array('category', 'post_tag'),# g; z) U, S" F- S- x8 D
        'menu_icon' => 'dashicons-megaphone',1 {7 Q! H" E6 M
        'menu_position' => 5,' C! K/ d, H7 U$ H* x* T; N+ n
        'rewrite' => array('slug' => 'site-wide-notices')
, O" ?5 T1 Z) I, V9 [    );. E3 Q6 S! R3 l! {' l+ ]+ z8 {
    register_post_type('site-wide-notices', $args);
9 X7 Z* j* E7 w, J/ P4 g2 _% n' b}
4 o" |2 B! z( H' ?& j; {add_action('init', 'create_custom_post_type');0 R7 ~) f8 r9 F) Z) C- T
```
) \4 Z0 y8 h/ `/ D" |3 J' E- T0 a# h1 {- ]' K; A
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。! g$ z( a8 I" I, c8 g! A

# W  t. g  p9 j2 P2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。8 W5 ?9 @. U5 r, ~
$ t- P8 \+ h% P  f
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
- T$ t% z- I& b+ L
- G5 r$ y) X5 h& }" }. A```
, k$ p5 e0 S( |! }0 [5 u/ [" Y$args = array(8 i/ ]% ^5 D( Z0 C7 i
    'posts_per_page' => 3, // 显示的公告数量6 W, D9 X# E8 k8 |
    'post_type' => 'site-wide-notices', // 公告文章类型
- A" h) e) ]2 C" `    'post_status' => 'publish', // 公告状态
. z0 F6 G- S: l. h( |2 e5 R, f    'order' => 'DESC' // 排序方式
, k# Z+ L' o! N' R6 W);
0 I$ h, b8 |# F- u
8 x& M% B3 B5 W$notices = new WP_Query($args);
2 Z! j1 P% \! ]if ($notices->have_posts()) :
- Q! e& \2 o2 B3 z; v    while ($notices->have_posts()) : $notices->the_post(); ?>
+ N! B# D, q0 |1 M6 h, |) ^        <div class="notice">9 T: F( f  S* L7 x8 E; n4 L
            <h3><?php the_title(); ?></h3>9 a% I: |  o1 N  X5 U
            <div class="notice-content"><?php the_content(); ?></div>8 w. N5 V2 @! A' M5 s- M
        </div>
; @0 B; b4 _/ q) ]. t    <?php endwhile;
8 n& I+ G8 R- {& L& Z/ B- @else :! t2 V( q2 d1 Y: z; C7 a
    echo "暂无公告";
5 c; F" x# J6 sendif;
/ z8 E' ]  R. B% t2 ^; o5 _* ~wp_reset_query();& b0 Y' G# W+ a9 |3 K9 X0 S* A
```
2 v2 c- s* ]. ?5 S0 o+ \: C$ A. Q7 b2 W: g
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。3 n0 J  w+ |- Y- L

$ I8 w; A) G3 S以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?& {1 c# w7 o0 E7 y! @( A& ]* L" |7 Y
1 @* B" E7 Z, W2 v
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。* T0 q7 q; B0 p4 U& X  [& C

* g  T8 n  {6 |8 x& }以下是创建自定义插件的步骤:  q& h( J  @4 q- ?
% L3 z+ l3 B; I! ?
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:% [' M8 K) r. D

$ h- a9 c& ?' g4 x  O   ```2 W/ S$ ^( ^8 W0 k5 u) B
   <?php
6 v$ i# D' V) o5 x   /*
! o. \3 r: b" e' v; w& S( Q   Plugin Name: Site Wide Notices Plugin
" T8 c" C* E7 V7 t( _" A* g   Description: Adds a new custom post type for site-wide notices., A7 {! Q7 p* K2 g, r6 W: Y% H
   Version: 1.0- I; [) p5 R% W% ~
   Author: Your Name
+ _, }; F' _2 x/ ?; V; I   Author URI: http://example.com
7 Q0 G9 u/ \/ }5 I0 d: d   */1 W6 v9 j/ V! ?6 }
8 H" t. j, S0 a  t- S
   // Add plugin code here...
6 `. ]6 P5 V- M- ^0 Z: a   ```# R# q  N* Q# y; A9 p
  y" V/ B9 Q& m* S( I7 i1 _
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。; x9 z/ q1 e. L3 R6 k$ m/ s
2 Q0 _+ q9 }# }. E& G; @( W' a
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
  {7 `6 n' U; n/ ^) [/ f. J  V8 m! N9 P5 P
   ```
7 @3 t0 E. o. J, b6 m2 m9 Z( `$ G  j+ l   add_action('init', 'create_custom_post_type');/ A- _+ c% ~/ S. |% G
   function create_custom_post_type() {2 [  Z) O" |" ~. G+ @) L
      $labels = array(
+ ?' ]9 z0 b% b, [8 I  Z- I6 \          'name' => 'Site Wide Notices',7 Y  `0 B' d" W. S, M7 n4 {
          'singular_name' => 'Site Wide Notice',4 g6 L0 f! B9 K1 N, }
          'add_new' => 'Add New',
7 A  t* l$ d; l; n          'add_new_item' => 'Add New Site Wide Notice',
! k; m4 R; L4 i( {& Y          'edit_item' => 'Edit Site Wide Notice'," A1 j) y: Q7 B, z
          'new_item' => 'New Site Wide Notice',- z0 W5 C% N# D# u. h9 ~
          'view_item' => 'View Site Wide Notice',$ r) L! Y  x5 P$ P$ p2 f" h
          'search_items' => 'Search Site Wide Notices',
6 W: e: r' x$ B4 J/ P# I$ r( e          'not_found' => 'No site-wide notices found',
1 s% ?! H, |) i# v. X% R          'not_found_in_trash' => 'No site-wide notices found in trash'
$ A7 L6 I1 a, E6 o6 q+ e! A      );
. l# F. m+ G! O' i
- m. I% S1 D' t% w2 h/ l# T      $args = array(
6 a, i( \8 c9 [8 i! R          'labels' => $labels,
% i2 c! b$ \! C9 ?5 H8 g0 E0 f          'public' => true,7 L( e- U5 ^7 y5 Y6 v2 `1 |6 y
          'has_archive' => true,. U, ?+ g+ D4 i! v; }
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),2 |" {/ \6 |3 @; M/ o6 M2 Q
          'taxonomies' => array('category', 'post_tag'),
$ I! @' j2 f/ B6 W* j          'menu_icon' => 'dashicons-megaphone',5 O2 i$ P9 {) E" G" l/ ^
          'menu_position' => 5,9 M; Z. q+ Y( w4 ~* f
          'rewrite' => array('slug' => 'site-wide-notices')
: \- w1 E7 R5 U' i" X' v; N2 }2 A      );
% c! I& G* R& n3 ^2 p  W4 D5 |2 ?- J+ H6 B
      register_post_type('site-wide-notices', $args);
1 Z: X) W5 C. }( Z   }  T- ?! i% A; ]  I( Y0 m' S/ `
   ```
$ q. @' u4 D5 U" s
, c% J' D+ ]. K/ x) c   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。# q- @; c$ U+ G7 h4 \$ V" A2 q

1 y" E% {* Q* d5 j' q$ v3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:6 w. A# m1 M% C3 n4 ]' a- ~+ J# s
8 e9 r" {( q2 @
   ```2 w5 u* v9 [# U1 ]8 T0 Y
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
% E3 w% G; L% s4 k( l* l   function add_site_wide_notices_boxes() {
0 _2 p4 p5 T. A7 d) z      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
# d* p0 _7 ^2 M9 y6 ]+ w6 W. V7 d   }- k3 B9 @% p- A5 C" v4 U' q1 h
, B8 [7 Y( R4 m
   function notice_details_meta_box($post) {+ s2 |2 H+ B0 i3 `3 R2 t& }
      wp_nonce_field(basename(__FILE__), 'notices_nonce');; o* ~/ ?8 T. _+ q# S
      $notice_title = get_post_meta($post->ID, 'notice_title', true);) K- F2 `; J* C; o& D
      $notice_content = get_post_meta($post->ID, 'notice_content', true);% P( j- R4 y+ S2 F/ [+ \% ]
      ?>
. W$ r( |7 o5 |$ R8 S* E. I5 l. \      <p>
( n  T: h$ Q; _  ^1 O+ f0 U+ X8 Z          <label for="notice-title">Notice Title</label><br>
% ~5 q5 S+ [/ h; B5 y3 R& m          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
4 A# W, ^5 T3 B. X9 E      </p>
- c' z4 Y( G7 V$ ?# L      <p>. I; e7 @+ {: p% m* O& h
          <label for="notice-content">Notice Content</label><br>) [7 ?3 y& g3 g( \) S5 M
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
$ n( ]* n% o" H! ]      </p>) K. G5 G2 v0 T) l9 ~
      <?php: N8 `  b$ D& y% a0 p1 G6 o
   }7 I( V/ Z& S9 O
$ C9 y, C4 a, T$ O0 v/ r+ w8 H+ }( Y
   add_action('save_post', 'save_site_wide_notice_meta_box');
1 i6 M" m% r- M: r3 a' y5 V, h   function save_site_wide_notice_meta_box($post_id) {0 {/ F7 e; V9 j2 N
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))- ]! k4 F" R+ C+ N1 @+ w7 q
         return;+ e5 @# s. g# ]2 G6 ^0 l
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
' g. o- Y( W6 p( P$ ^! D         return;
  K6 c# B+ h% n% ]' J+ h
# Y+ `; f+ s5 o# f. t& I      if (isset($_POST['notice_title'])) {/ q  q) n4 J4 D( s/ t
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
# t- Q! ~- }$ U: `# J2 X6 g1 w      }
: s0 [) ^' k: J% x( S' U: O$ Z      if (isset($_POST['notice_content'])) {! K- E- c8 l0 i7 R" @
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
2 r( m: P) E3 ]9 w      }. n$ R4 {+ Q$ E1 K% t" T8 v! }
   }
% `* `. b2 u7 p6 ?! P! h8 n   ```
9 _7 h' T* J2 I  u: t" H1 |4 l, u9 g4 c% r, ]* r
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。# k% ]8 d7 a$ c- S7 S! Z
9 b4 ?' a! \+ {5 s( g* x6 c
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
5 q* J+ n: ?& O2 o( ^! ^& Q# Z  |0 V) s1 k' g+ W3 ?; Y
   ```
. r; g/ p* u) a: b& {& i; s   $args = array(
" |3 f/ m7 M3 F& [0 y      'post_type' => 'site-wide-notices',+ C/ u9 ^: ^1 t
      'posts_per_page' => 3,2 o( T7 a/ J) Q" L
      'order' => 'DESC',* s% ^) p0 O0 L
      'orderby' => 'date'
  ?; T3 b' _. T- K. B$ q  U   );# \; g& n$ f7 W' j; v$ H
   $query = new WP_Query($args);# K$ Y- v+ j+ _5 n$ r7 @$ O3 @% ?2 _
   if ($query->have_posts()) :
" v0 m% Y. V2 k# l$ t% X' K. b8 f$ b      while ($query->have_posts()) : $query->the_post(); ?>
) D/ M( d) C9 u: ?          <div class="notice">
2 X& S- Y" ^0 K& d              <h3><?php the_title(); ?></h3>2 @6 s( S/ i/ i1 `. u
              <div class="notice-content"><?php the_content(); ?></div>1 W4 }: d2 I( y
          </div># M, Y3 Q* J1 t& @6 ]+ L* q6 }+ j
      <?php endwhile;& D) _' P( D. q
      wp_reset_postdata();# n$ t% ~6 J$ b
   endif;  V  b& Q  O/ D6 N: P  \( w
   ```
3 k. ?- L3 e  g+ @) i+ @& s
& {! n0 @8 I7 O. U' D1 f   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-13 05:05 , Processed in 0.014285 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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