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

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

[复制链接]

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:% D% G0 {! U, }- C4 z4 p" M, z
" P* {/ M6 V& v; }: u; N
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。0 r! S0 u9 l8 b8 f3 m5 u! ]+ \

' e) G) b9 M7 _; X( [! ^/ a; P. `( E- M2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。: y/ P" n& }* r6 P, S
$ a7 g# E( B- |5 z/ g4 c
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。6 @, `5 D. C' R- x* q2 o; x( l
, v  e+ l/ e, i( a
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。2 ?# W" k/ V, A3 z
- D; g+ m' |+ C, g
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?: i: i9 ?/ x$ J2 C( l2 x+ l4 p( o
( x3 I3 T, F( n
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
: g, W$ ]3 |0 N5 b5 ^1 Z
* ?, p* X" M+ {; Y- ^6 B1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
" e5 a+ C% m; Q. a; q+ `( O3 o. u7 U$ R( t1 p/ F6 `
   ```$ {. j. \* }6 H( L3 D
   add_menu_page(
, o; W4 Q/ f# Z+ b7 P( \       '全站公告',
' G$ G* I  b3 Q       '全站公告',
. H" ]% }, P0 p5 Z& w       'manage_options', //需要的用户权限) S. t+ Z) u" n
       'site-wide-notice', //后台页面的 slug
& ]- \# X: }( Y. S       'render_site_wide_notice_page', //用于渲染后台页面内容的函数  ~. ~1 j0 O) R
       'dashicons-megaphone', //用于显示在菜单中的图标$ L/ k. k  w- H9 z8 O  ~5 `7 k
       30 //菜单项的位置/ E3 p! h5 B+ [9 \9 r3 f3 P, H
   );5 D5 [# U  ~. Z+ u" X1 [5 U: y' q6 L
   ```
6 K" v# C! b% F5 l6 F
) h; i  F, ?( p/ b   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
! I% U0 p0 u* v. `1 P
8 Q* ?' _4 P9 o4 x7 ~% g" J2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:4 S/ W* O+ M) P

$ ~% R, M  k0 h   ```3 j" c3 B% X4 ?: C
   function render_site_wide_notice_page() {6 @0 U" S/ i4 a5 P" G
      // 渲染后台页面内容- l' q. _6 Z" H) ~/ V
      echo '<div class="wrap">* p1 g8 \4 |8 W" P5 k) u* k
          <h2>全站公告</h2>2 [; N6 R; b( j% h
          <form method="post" action="">& ^8 f3 w0 J; W$ \
              <label for="title">公告标题:</label>" A: L6 X$ P3 `% @9 B. `
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>* c" w" f/ m8 l- r) _1 M( @9 ]
              <label for="content">公告内容:</label>
8 c& F4 b5 I7 R3 i0 X, c0 j              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
6 {: U" _0 p9 {7 A; D# C              <input type="submit" name="submit" value="保存设置">
- l5 M3 h3 c" D" l2 f0 r. s5 n0 j          </form>
/ W/ ], C/ y' Z% p. J5 x      </div>';" p- y0 _+ w  O5 q  g" m8 ^
# l9 t0 K! w) g* U- U) h2 }, K
      // 处理表单数据& i1 m" y4 ?* u  I8 [
      if (isset($_POST['submit'])) {" r8 B5 w, z; i; e7 O6 H
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
3 \3 ^: F* W" ?% Z$ E          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
; G& G, U) j, y* J- T      }
- b8 ?) _% b: Q/ j: w& H) Q8 b6 y   }4 x2 x/ F4 V8 G! ?
   ```+ \6 W! S8 ~! \+ r3 a: z: z

; M. ~1 P% c, o! v  K   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
8 Z% T8 c7 s9 p4 Y" N7 b- w0 A5 [3 f  x0 g; p, R
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
$ l  K9 y. s( H. C0 C+ e6 s2 K/ Z5 w5 T6 H0 }
   ```
) I% r+ {/ _- [% s+ d$ S   <?php
2 i1 E' k1 f5 K1 W  h) W2 z   $site_wide_notice_title = get_option('site_wide_notice_title');
6 c5 [% j9 E' j) C$ H& b   $site_wide_notice_content = get_option('site_wide_notice_content');  @: }& ]" g" Q
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {% [* b' y5 e( U6 X4 n
       echo '<div class="site-wide-notice">';' W, N; x5 b& N3 |! `* I4 c9 Q
       if (!empty($site_wide_notice_title)) {
+ M9 ^0 j; Z4 C           echo '<h3>'.$site_wide_notice_title.'</h3>';
9 ^) s8 l; {# i4 G% D2 C! y3 H6 S       }7 L, R9 ]9 s, ]
       if (!empty($site_wide_notice_content)) {% z( k7 o/ N# X: H
           echo '<p>'.$site_wide_notice_content.'</p>';2 }; ]2 K8 e5 P
       }
  \' f5 a& n5 N. U. Q3 u& {/ W       echo '</div>';
5 N* [9 C- l, G! c/ Y   }
' O, ~+ w  c% R7 P   ?>
( r& z$ ~# z$ @* L8 J   ```
* X3 P4 E8 v0 l% X  f- p( i! g$ l' w8 a2 B0 H, N
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
, S( [8 q' r0 q# U2 G! j4 t" \- q) g" _. S
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
, h% r2 h% W( B& F5 [4 ~3 C/ w6 Y2 k" v3 i  Q" w; s8 L2 F; \0 ]% T
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:3 `$ ^* f5 T0 j( v
# x* E/ ?( I* V. V
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:1 p% }, L6 v, l2 h# j

5 \) P/ `! q( v5 U/ W& ]% U```+ |$ j& A& R/ F3 n* k" V- {
function create_custom_post_type() {
3 b, I+ G* C' m: w5 Q- P9 t: T3 E- b    $args = array(
2 J0 I$ j7 ~  c8 d" ?" F        'labels' => array(
: @$ D$ d* u( m7 n" ~. j            'name' => '公告',
' d3 x" Y; `6 a. ~# p            'singular_name' => '公告'
7 J1 ?( B! |7 e        ),- `! e7 v. `  r7 l1 y
        'public' => true,
* A( Z; W$ K4 r9 [6 m# W+ A- X        'has_archive' => true,. F" p! d% h) T
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
/ Y$ ]0 v2 c6 s% w+ n" @$ n5 S        'taxonomies' => array('category', 'post_tag'),; z* o7 P- T+ U# N
        'menu_icon' => 'dashicons-megaphone',$ N0 B5 c( Z: j+ [* p
        'menu_position' => 5,; A) w& F! D$ p9 |* x" `
        'rewrite' => array('slug' => 'site-wide-notices')3 J2 k  [5 C8 v
    );( u, z' @- V4 g8 g7 U5 R0 b$ Y" h& C
    register_post_type('site-wide-notices', $args);
; V$ v+ \7 h9 E/ \- T}
. ~, W7 y$ X* [9 n4 ]add_action('init', 'create_custom_post_type');
8 @- y, _% y1 M* q' P8 J' d& e```4 D( p. P4 `# F0 K7 p& E# i
  \3 o& i9 d3 p! D& m: Y# d. o: i
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
# `9 h$ E9 V4 i1 K. G& u1 F  j9 r' `5 ^) b% m, v
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
/ f2 A, u8 [9 u; j9 w' c: b: u
2 j. j$ g# y7 S& P  l  c; F3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:7 x# @1 x* ^# N+ p+ W7 m- ?2 w

! @6 V  G2 i& D! W' o```
, f3 v8 ^: S/ u" c# t9 m! ^) N$args = array(' j9 K5 C% _# ~" {# h, U( J! f
    'posts_per_page' => 3, // 显示的公告数量
% {) P! l* G" b8 K7 ]* ^: }3 l    'post_type' => 'site-wide-notices', // 公告文章类型  P& f. k& W6 R# d) J2 _
    'post_status' => 'publish', // 公告状态& Z; n, D/ m- b  e+ x  B) m5 E
    'order' => 'DESC' // 排序方式
" i& s/ P, W9 l);
# B* v1 V# {4 ]7 U1 e: r
: p' |) L0 Q; ?' f4 k7 r1 z$ T( e$notices = new WP_Query($args);* K9 ~$ T5 z; p. f3 _' }  r5 V
if ($notices->have_posts()) :; ^$ E0 A2 Y5 a% T1 m9 V5 N
    while ($notices->have_posts()) : $notices->the_post(); ?>
/ p2 q$ ~- Z' Y2 \: v        <div class="notice">
  k& ~0 g9 j" y. s, k0 f* K            <h3><?php the_title(); ?></h3>
7 }/ A' ~9 h' v& w( p. c            <div class="notice-content"><?php the_content(); ?></div>
- T' p3 A" o& {& A' E) _  A( G6 C        </div>
% S/ i2 \& y+ f; x- g0 ~5 ]: {    <?php endwhile;
6 l2 ^3 |  g, [else :
. P4 s/ \7 n" F2 w8 k7 N. U    echo "暂无公告";
8 V! ~5 @: b5 A# @4 K' {4 @) zendif;6 \; ~% p% B- Q# F$ L- w+ |2 f- @% [
wp_reset_query();
' P) W0 ^. ]: n$ q( h; I```
/ s: r8 O. H( x0 c! I9 c4 S2 n9 {) g, z
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。' V, j8 G  E! C% ?$ D3 T

2 N: Y8 T4 M2 R+ F以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
4 b2 `8 Q' _  j! y) m7 n( P1 {; R+ \( R1 t
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。3 \) z$ l+ U  k* O" o
/ }% f( t5 ~$ {9 ?3 g& L# i
以下是创建自定义插件的步骤:
& @- g! `* g$ T
  ?0 W1 }6 c4 x1 _( u1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:' _1 j' l: _8 `

4 r$ w1 U/ X$ a" V. p2 |& R8 k, J+ m   ```
+ P" G! f7 I3 l, M7 m9 n9 T( k   <?php
" C$ H! X! v2 o/ @+ r2 J, }( \* `9 D   /*. R& C5 [, @6 x5 A3 P: q3 l
   Plugin Name: Site Wide Notices Plugin% Z9 o* K- K% F- i& E% z7 I
   Description: Adds a new custom post type for site-wide notices.
" W, @' x' ^4 k$ G/ Q   Version: 1.0& [" e& ~7 _% N5 S% Q
   Author: Your Name, k/ s! y& N& V0 p# k5 c
   Author URI: http://example.com, z* U7 E% f* q- |+ v/ s: ]
   */$ a* v& W# I/ R( A0 E7 E" u3 ]

/ _" H: d$ t6 u/ o8 ^: M7 U   // Add plugin code here...
# y* w: U* E. c. o! Y   ```
* C+ R& q" l" O' X& @9 _, M5 f$ w$ I+ B. r0 E) v
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
$ y6 y* e; U. c
3 T, F1 l9 t6 i/ ?! V. e# ]( O2 E2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:, m1 `9 G: S1 S; w5 b
% Q3 }; l7 y! f/ ]1 T
   ```
/ J5 S8 R, d- I' T6 g5 E% \   add_action('init', 'create_custom_post_type');
/ J6 I" d  ]& N5 z$ L: F6 B   function create_custom_post_type() {
$ [9 D4 Y  C$ ~- H+ }      $labels = array(; I8 `! {0 D/ u1 @
          'name' => 'Site Wide Notices',5 b5 r$ [; N) z) _) d2 x8 H
          'singular_name' => 'Site Wide Notice',8 B1 W7 s! S! m3 w2 T% T( M( u
          'add_new' => 'Add New',/ W, ]: m( K- B2 J1 t. j
          'add_new_item' => 'Add New Site Wide Notice',
0 o) e6 r& p4 x' R5 D$ s9 o          'edit_item' => 'Edit Site Wide Notice',
/ K2 t+ |! H' r/ q! K/ C          'new_item' => 'New Site Wide Notice',
7 n0 K3 {# c& p, z; t4 @* K6 i9 e          'view_item' => 'View Site Wide Notice',9 l* c/ ]( L5 s/ b0 e
          'search_items' => 'Search Site Wide Notices',9 R; R7 R% z7 V' W
          'not_found' => 'No site-wide notices found',
7 g  x8 d8 @) ?8 r0 ?          'not_found_in_trash' => 'No site-wide notices found in trash'
% p9 F& N: o9 O! H      );
8 i  D1 H1 b+ Y% `4 C
6 K# W" f6 v$ M1 F" G/ v5 r      $args = array(1 ], x) T  V4 H: n! v1 D
          'labels' => $labels,  r6 G2 \; `# {% ], Y, a
          'public' => true,' L% e3 R) y& `8 P+ d; u, B
          'has_archive' => true,8 G8 D. N- L7 z6 c% w& J
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),4 D1 o0 I9 W+ k0 e0 H  _
          'taxonomies' => array('category', 'post_tag'),
  w1 V. }  R7 _& o, M          'menu_icon' => 'dashicons-megaphone',
- d4 ^0 I; _: c& ]2 B0 g) L          'menu_position' => 5,* i' t  y9 [# v# Q% k& d
          'rewrite' => array('slug' => 'site-wide-notices')
' ?' x8 d3 i: C8 k, v; n. A      );/ T' D0 e( M6 f0 a

1 t5 P' u  i# \& s- J7 V3 ?      register_post_type('site-wide-notices', $args);8 [" `  c$ |, Q5 w5 \9 K$ n
   }
6 E+ C  w. L( ]+ `; T/ e   ```
  _! G* Q3 F& o# N5 u
' s$ j& `! }+ ?   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
, r2 ~2 h! T/ N' U( K7 @- C, _& e% \# |6 t3 d8 H# U
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:/ i7 x# _5 b! U6 y* f: X

8 k5 E" ]) D! n/ B: v0 U7 L% V. P+ ^   ```9 `  i, W8 d' N
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
7 K2 b% S; ]" A7 T   function add_site_wide_notices_boxes() {
. c' d  N- |( k+ X4 ]2 f" H4 S      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');& r3 Z( G0 P1 Q3 ^+ c
   }
) l2 c5 \- F) O
" E4 H. I9 u  D" X9 k   function notice_details_meta_box($post) {
+ F4 c5 {# ]6 z/ \5 d      wp_nonce_field(basename(__FILE__), 'notices_nonce');
# G( S* d4 @" h# Y3 ^, X      $notice_title = get_post_meta($post->ID, 'notice_title', true);
, \0 H: J& r- ?2 z, j& d/ \. p      $notice_content = get_post_meta($post->ID, 'notice_content', true);
5 k& \& E" U/ u      ?>
. t, Z( u" K) u: x+ i      <p>
6 A8 \0 q5 G2 o          <label for="notice-title">Notice Title</label><br>+ T' `' q7 i" ~: o. n& Y& a
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>"># j/ L" M0 ?9 Y$ o5 z8 l/ v
      </p>7 p3 |( T4 c9 B, J1 ]- V+ D
      <p>
! q& a  n1 T3 K/ q5 b$ X. X          <label for="notice-content">Notice Content</label><br>. M+ C0 R( O1 L% d! H) [0 H
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>6 @; T2 b& |$ |& u& V+ l" o
      </p>6 k5 [# n. V- k" {1 J% L
      <?php% z7 M; c8 p$ {  |" k
   }
; b1 T, w" d/ _% j, I, Z3 u  L* n$ U6 v4 C" [
   add_action('save_post', 'save_site_wide_notice_meta_box');; ?% a0 W' X/ Y3 Y
   function save_site_wide_notice_meta_box($post_id) {2 j" _! @) \5 B: p/ h" `' R( E7 h
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))4 W4 P$ @* F/ N3 d- `$ k
         return;6 Q* U# e+ B+ X% [7 Y) S; i4 _
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)7 Q& u; Q) U' `! B
         return;$ L% p. @2 u2 A

0 ]0 M5 g7 G7 k& l0 V8 P# }      if (isset($_POST['notice_title'])) {; H" N5 H2 p6 g- s
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
6 p9 Q3 A) [2 s, C( g8 t      }7 M; u: J$ D% i/ x5 h- k
      if (isset($_POST['notice_content'])) {/ m& l  G& f$ b+ T6 b" t
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));1 x5 K1 l1 ]7 l/ b5 c7 O1 `
      }4 l2 A  K$ Y3 W" P* s
   }( r" g- R( h" R& L3 c7 y
   ```9 ?* m& X* L: y, w; b6 Y0 [& c; p
+ n& A3 i! Z- C+ F; `8 f
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。  \- r" ^! L3 t5 @

3 v6 n4 @7 f" G3 r4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:: J; d0 u/ Z( {  a4 J+ ]% k
6 g) x/ W  g. D! V
   ```
8 l) N3 Z" M  n   $args = array(4 c) I6 ?4 j# g! H/ j9 M5 M: w
      'post_type' => 'site-wide-notices',: U5 e3 g8 j9 t! E8 H- `5 T
      'posts_per_page' => 3,
) p4 X+ b( g3 J6 i  T      'order' => 'DESC',4 A2 j. U* Q& l* A4 X
      'orderby' => 'date'
% |7 x7 ^/ `# S! V: W   );6 c8 u8 J9 T  @
   $query = new WP_Query($args);
5 D2 \3 n" e: g- U   if ($query->have_posts()) :+ W+ g! h8 D7 [; y; ?$ B+ a' M
      while ($query->have_posts()) : $query->the_post(); ?>
5 @6 M( `4 r  a" J2 A# c          <div class="notice">3 g, g4 m' N7 q" v# x
              <h3><?php the_title(); ?></h3>
& h* |0 o% g* h' a: h3 q              <div class="notice-content"><?php the_content(); ?></div>
. x7 ~* T5 U8 V4 Q6 @# U4 X          </div>
+ f1 P! F6 l. t) _9 @) f      <?php endwhile;' V6 b: k: C: Z- U+ E
      wp_reset_postdata();
4 j' r- V1 @) _/ S+ u# y- e   endif;
( H: F# I4 J* r3 l* X1 `9 r4 _   ```5 d9 E5 t9 z; v: t
6 i' a- w/ h% V# v/ r* O  F
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-16 04:30 , Processed in 0.013540 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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