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

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

[复制链接]

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:; K5 v2 ^7 P. |6 y- v  ?% o( V  ]

+ ]4 m' ~) `8 |: m9 F' Z% Z1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。7 J5 V$ t7 q) v. P. f

2 ^5 ~3 ?  A6 ^! L7 G  n& H2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。* P) e. y) u% P( R2 f9 v

, M0 h6 K! r- V3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。  W6 F- ]) t# Q/ M" e: ~
# d; V& N( _' Y" o  x. G
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。8 \* E: ~8 v" |0 \: Q; A" G3 y
4 f* e# G. E& j5 c- i3 T' T: B+ c
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
8 d" c2 [. P4 \4 r/ `
. l2 K! w3 y5 V$ Q9 }; K/ m如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:" H. M/ V4 ^0 w6 w! V/ W
' P* s7 D1 `+ w! p/ k& x* K
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
, c- D$ Y) u) u7 q& d
" u: W; b* c. T3 i& _3 G   ```1 Q" ]9 |# b. K7 V
   add_menu_page() T( `4 z1 |* }# X; B
       '全站公告',
% Z% h6 v2 L! Y& j9 f7 T$ E       '全站公告',% F' p, m6 @. C( O4 F- z5 |' W
       'manage_options', //需要的用户权限: i2 r' G7 g0 P5 t6 t' }
       'site-wide-notice', //后台页面的 slug
& R# }0 {- m8 r$ }6 ~       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
1 ]+ h7 Y: T" i6 w: G. A: @       'dashicons-megaphone', //用于显示在菜单中的图标
8 K2 i2 d( {. L0 M       30 //菜单项的位置
! P' @# f9 F4 j$ c, G- i) l# N   );
, t, t  a/ C! b; |$ F1 C   ```7 q4 @' c5 p, u

: k' E* l' H+ f# p/ D   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
( f4 R/ h" f, w5 F$ c, w( y3 Y
) C6 x3 h$ v" p! @& T5 L2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:& N+ T+ {, n: k2 P9 u% X- U5 ]
6 ?$ L( m: @8 p2 p: v2 ]$ r( V
   ```0 ?2 R( y$ y9 R$ Y6 f
   function render_site_wide_notice_page() {$ u' }, r$ S( Z0 F2 V
      // 渲染后台页面内容% h* K& G9 b1 ~7 o- F
      echo '<div class="wrap">
# q8 L0 z6 H4 q9 }9 r: m$ J          <h2>全站公告</h2>1 T! w# F2 r0 @7 S* H: k
          <form method="post" action="">4 T: _) {* X+ m3 s+ z. b' L
              <label for="title">公告标题:</label>0 N# s2 `6 g( x# A7 ?( `
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
  f) Y, |# J4 y9 A2 ~              <label for="content">公告内容:</label>
/ ]- q3 w" p( F7 E7 t4 D" P              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
  M7 l) e7 o8 F9 Q% {              <input type="submit" name="submit" value="保存设置">
! k1 s  o1 B5 K- o1 l, h          </form>5 T* l2 G5 k8 ?: M5 h
      </div>';( Q' h# x; m6 u8 s! U
* r4 o7 P% z& d) s( ~
      // 处理表单数据
* P6 S4 Y0 L3 @* i! S      if (isset($_POST['submit'])) {& r* k8 K4 o% }
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
% l* d" F9 {$ ^% t, b! D2 Y! b          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
4 ^' G# D& T1 p3 P, c$ r      }
( s. P3 ~/ u/ \0 }% O   }+ L2 `6 X; [% h* x0 b6 u
   ```
: d3 d7 ^+ }4 _4 u8 Q. a. i
1 @, u: g" F. o! v# a; |   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。# h) q# U' }6 g8 o5 ?# \9 \
& O/ l2 h+ J) s
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:' N# F5 U8 @6 W) _3 K6 [

0 y7 C! q$ S) ]1 }- Q( B/ d8 ?   ```
- r& }5 W2 }( @# w1 {   <?php  u% ?: T( G, i9 M+ P) H+ z
   $site_wide_notice_title = get_option('site_wide_notice_title');
* `2 l: _" P6 y   $site_wide_notice_content = get_option('site_wide_notice_content');8 w! Z+ ^! p: c& m; ^
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
/ j* x& C" v1 D, r       echo '<div class="site-wide-notice">';
8 w% r: ^4 i2 {3 `) s/ G. f& W       if (!empty($site_wide_notice_title)) {
0 M' B4 D2 |8 r5 ~8 J7 ?' I: n- K: E           echo '<h3>'.$site_wide_notice_title.'</h3>';; s; E# Y6 J  E  Z
       }1 |& [/ l5 x  V0 S' l8 h* C
       if (!empty($site_wide_notice_content)) {
5 _3 Q. i6 P! U9 F4 h+ O           echo '<p>'.$site_wide_notice_content.'</p>';
( x" O0 d% B3 `8 |, C3 h, H8 u       }
: \4 y5 H7 }- I6 K       echo '</div>';' O: o4 Y$ X3 n6 y7 F$ R
   }
  @$ p! w; u. @   ?>
/ _4 ^5 |7 x' c+ V, k1 I+ Q. U   ```
4 t% c& g) v  d7 V
7 [* x6 {% h+ `9 ^/ c   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。0 r, P7 h7 L% U

! {3 k1 [  X' y2 d请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
5 d6 r. C) b5 \' z3 G/ X) }) r4 v- U, d) Q, O8 A
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
$ `; X" v$ Q% y  X: ^0 O& ?, U) \
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:- H4 d$ O) O* R$ x
0 ]$ `- C1 d1 ^4 [' r* u9 c
```3 q6 [' [$ F* L. b' E# j
function create_custom_post_type() {
2 p9 }& q; F: }6 u    $args = array(
; w% e) {+ |0 q  f3 w0 Z( N) l        'labels' => array(
2 I- T0 M' x4 c8 K# {            'name' => '公告',
) v- ?5 A; r) Z  y/ D& s            'singular_name' => '公告'# A, ]% s6 a% s5 j7 D- N3 p
        ),
8 l$ l2 \3 ?) _: |        'public' => true,
5 k' C: V9 w/ ]$ N        'has_archive' => true,
! D  K, g: F( I' y. N' H/ w: O        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),5 s: u) g- [; W: d9 V5 m  B
        'taxonomies' => array('category', 'post_tag'),( r1 x/ ]4 m) J. ]
        'menu_icon' => 'dashicons-megaphone',
# G6 ]7 m# x% _        'menu_position' => 5,4 `! W# x9 _7 _2 e3 U7 u2 F
        'rewrite' => array('slug' => 'site-wide-notices')+ ~1 y7 y& {* _% R# q0 j
    );6 f; T3 x# M  q0 H. Y
    register_post_type('site-wide-notices', $args);: D" u+ Q& A2 c; O
}
* B7 i8 h# A# t, H$ D+ Padd_action('init', 'create_custom_post_type');
7 j2 ~5 n) z: H( ^; }; W```) F0 D4 k! d: l; [, }$ c
. d" @2 [, `3 Y/ A2 M
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。6 k, r' j0 B; P. \8 |, d
6 O9 a; ?9 {  {0 o
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
% h+ m; ^, u2 ^  k" c. E
2 |5 G$ B2 m/ P9 W# |. n; ]6 [3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:, y, Z# s# q  [/ O( Z2 P1 s- s

% r9 h9 n5 a- I( B  i9 ~9 e* m# f```4 w/ z  Y% R: T" O6 R3 k- v! g1 i
$args = array(
8 U" h; v' B+ x. q" I2 F; Q$ P    'posts_per_page' => 3, // 显示的公告数量
  `# u6 ~% c! \, K" q( x  C- Y) x    'post_type' => 'site-wide-notices', // 公告文章类型0 `' i7 X/ l1 J( I+ W+ K
    'post_status' => 'publish', // 公告状态
# Z* p. Q% ~; ]    'order' => 'DESC' // 排序方式
; [/ L& ^  {0 I0 U9 u; X7 e);  O6 y) ^  @3 C$ @

- y! O( T4 I: p* s$notices = new WP_Query($args);
6 B2 G  j4 N1 O! F; E+ _: g" Dif ($notices->have_posts()) :1 N- t8 n# g4 J3 j, |4 M2 c
    while ($notices->have_posts()) : $notices->the_post(); ?>% |! R2 C4 X$ r! V* M0 Q" L& p6 r
        <div class="notice">
0 A5 z8 M, l, s  _2 `4 r            <h3><?php the_title(); ?></h3>, A# A% U9 F" H
            <div class="notice-content"><?php the_content(); ?></div>
; Y# ]+ ~" Q1 m5 Z) j        </div>
  E/ V2 [+ o2 `( ]  v. p    <?php endwhile;; u7 @1 O* J5 J6 ^8 y" u
else :# |" M0 |/ d( }0 G' ^$ r
    echo "暂无公告";" V8 [7 ?/ @6 v" {" f0 t, r
endif;: X/ w) l+ Y) Q; G* Z, }& ]0 w
wp_reset_query();
! F, C- l3 C1 k```
. {5 k) i! A, d- G  p$ n% q% _1 V$ G, u; D; i  g
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
" @: J9 s* A" V: ^8 q8 X, q
( G4 X. {. ^& j% H; Q* \以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
7 U8 f" r% U& O! P( e8 i' s; F& U9 g  n; _) z( ~# m+ ?/ N
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。) c$ _5 `7 S, I) g* h( B

' G8 x/ b' H6 V, D( i以下是创建自定义插件的步骤:
$ V% T& [$ O0 c8 V: O# x2 t8 e2 U; t% x
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:# a2 Q# M2 A  M8 c

: c/ \- c" R+ s1 {; T6 R# j! Q   ```: m8 x: G0 U) K# V4 d1 P
   <?php
$ c, s" p: P: b4 J5 x   /*
' W4 y' e; P# \8 d0 a0 @   Plugin Name: Site Wide Notices Plugin
1 y- u3 u0 K* A9 G- @   Description: Adds a new custom post type for site-wide notices.8 A' G! r* W7 J( z3 t( |$ D
   Version: 1.0
. }4 y) \! d5 ^( d4 o; Q   Author: Your Name
9 X9 a8 S" e+ t  k+ R   Author URI: http://example.com
0 s( w9 d" I& B: l   */0 v, t) c, g! [. F2 j
7 w* d$ O5 w8 p7 [8 ^1 |
   // Add plugin code here...
5 h2 u8 |# {# ?3 E) o$ x   ```
/ K0 \1 w8 c3 G7 u+ J) S4 b  I" p
; }9 Y; E9 Y3 i3 o) Z# a   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
3 x6 T. F. n# [; x  M
5 y( W- _" u# ]" d; g" }- j! Q2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:6 `8 y8 H" Z: m: t

$ O, G1 b# E1 b   ```
0 A! ?! v4 h! r1 ?" W5 i   add_action('init', 'create_custom_post_type');
% {- Q! o# b- w6 k) I, F   function create_custom_post_type() {( m/ ?; o/ F, o  ]! C; E! R. \
      $labels = array($ K  C6 C2 G- S+ C) b
          'name' => 'Site Wide Notices',
2 A$ e. C5 \" C* S          'singular_name' => 'Site Wide Notice',# f( H; _( v& q: {. s2 ~: p" X% L
          'add_new' => 'Add New',
: g% q; h) s4 k          'add_new_item' => 'Add New Site Wide Notice',
1 E, r6 _: u" ?0 P# z6 H          'edit_item' => 'Edit Site Wide Notice',
$ g% r: L6 i3 s  U# y          'new_item' => 'New Site Wide Notice',$ _5 A0 u* U, G8 G# r3 B
          'view_item' => 'View Site Wide Notice',. d& w5 x" n+ S; d! Y1 H; s; n
          'search_items' => 'Search Site Wide Notices',- C4 J+ ^9 b- v# E7 [, z# M
          'not_found' => 'No site-wide notices found',
( a& M  @# @3 a2 `          'not_found_in_trash' => 'No site-wide notices found in trash'
  J- k) ^; i$ p! M; ~% B( D8 Z      );' H* h2 j5 ]8 [, l7 Z
9 O2 V" I, G$ V7 p9 i* l4 d; ]
      $args = array(
7 b  C: F- {% u$ d3 k$ }' E7 K          'labels' => $labels,
9 j  }* h6 O) \. U          'public' => true,8 g7 p2 F/ n# Q! J  ~
          'has_archive' => true," ?/ V: G: E9 W4 w+ k" I
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),3 a3 e0 M4 b6 x' K8 c; Q% [
          'taxonomies' => array('category', 'post_tag'),* [3 G* V$ X. Y! Y2 w8 _
          'menu_icon' => 'dashicons-megaphone',
: c9 a+ {, D1 D6 v% y1 w6 o          'menu_position' => 5,+ _& G/ r' x1 C2 O3 W& J0 C
          'rewrite' => array('slug' => 'site-wide-notices')
; s( l3 t* ]7 X0 _6 ~( T  e      );& W; s- Q: l: J. l
  \0 m* ]  I% K. n2 d+ @, n% h9 g
      register_post_type('site-wide-notices', $args);+ z* D( J; h2 ?$ l; [' C, y& v/ `
   }
4 F% s& p' L# K5 Y' h' Z3 G0 v   ```
- p! I/ u& ~* E, @: G! k, p
+ a6 g: \- x1 Z# F6 N% u   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。- X. `# Z6 r% T# |) W. R
$ G6 `: x4 k# p& i' h% k$ l
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
$ u! M5 n4 R3 p' N3 r+ H4 {% i$ W7 ~, S3 M+ Q  \
   ```
  {: G: }7 N) w& z: c+ ~& }0 k' O   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
. o9 W- r1 N0 t* a   function add_site_wide_notices_boxes() {
8 _* o  s9 m4 j      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');$ g+ c1 f- B: S5 n' u4 }! O
   }
* z! j/ ?. `4 X. f! ^. {) h! L& h$ V5 x0 c  V3 t% H
   function notice_details_meta_box($post) {
0 u6 j  ~7 I1 U5 p7 E3 f' B0 C3 n. c      wp_nonce_field(basename(__FILE__), 'notices_nonce');) f, c- R6 B9 e" V: [' C/ M
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
3 o5 @- n2 G" u% N      $notice_content = get_post_meta($post->ID, 'notice_content', true);
, s( h+ ^6 l1 W6 a$ P+ |- q      ?>
1 B% z; o! Z9 ~0 S      <p>! Y1 L" ~; F" P) k3 s: @) r" F0 Z
          <label for="notice-title">Notice Title</label><br>
8 I! w$ s; K3 }9 y& d0 M          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
) c; x) o4 ^/ V* r8 l      </p>
: p  \4 n$ o1 @$ _/ y      <p>
" p  ], }: k) F+ D          <label for="notice-content">Notice Content</label><br>
8 p8 A- l! v% z" ]6 Q          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>" l( |  B- u2 x$ w
      </p>8 b0 m8 Z& T5 g5 l3 Q- T
      <?php/ v# Z; @% U, d9 k/ s" L
   }& ^2 q0 U/ [  A4 B
1 B4 O+ z1 O5 {% _. N
   add_action('save_post', 'save_site_wide_notice_meta_box');
% B% F& U) c( X9 k3 o( P   function save_site_wide_notice_meta_box($post_id) {" U4 g/ e# [$ r
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
- I6 S! j9 c" t1 o. S1 \5 \$ W         return;( y3 j; R2 ^! W8 F; G, I$ @
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)* u0 A  w! i' m8 K1 d
         return;0 k, f' e2 V9 L5 g/ E$ P, u6 z
( k- D* E* B7 {- F! r4 C; j
      if (isset($_POST['notice_title'])) {
8 j9 z$ D, H4 ^' M+ V* }; N          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
4 q  \6 f2 D' |( F* b6 s: o      }- t+ \2 o, y$ y3 e  V6 A/ ?- A
      if (isset($_POST['notice_content'])) {
; U+ ~  a2 {# v2 f) X7 C9 I          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));2 G# X* |5 C: h3 O5 e$ u- ]
      }, n: Q- p! h+ e; L
   }
4 l4 }: w3 ~/ j; r( q8 {9 f   ```
# v, C3 g2 ~0 m" T( @: Y
# M8 r( E- F# @- i. z   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。- T8 y0 w- ?$ f4 z% }) I

% H( I; f% C) R4 s& k/ _& }4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:) I% @6 n: B1 t% W% l
, n! L: n1 O/ W$ s
   ```0 c3 R! b2 I) g+ s) r7 k2 M& @
   $args = array(6 z) D2 a) I6 z0 o) L
      'post_type' => 'site-wide-notices',
2 k! G! Y2 h; o4 f9 J      'posts_per_page' => 3,
* Z. W$ A+ A. q4 v0 v* ~9 j/ ]      'order' => 'DESC',
( T$ h5 R/ b3 i( a) h' z3 V      'orderby' => 'date'9 \1 e7 V2 V2 S4 b: m. @
   );
2 C, c; C1 I/ N* k   $query = new WP_Query($args);* _7 H* ~1 M) Y! {& E; Q$ E1 y
   if ($query->have_posts()) :- @2 V7 C' x5 X% U6 f
      while ($query->have_posts()) : $query->the_post(); ?>$ K/ U4 ~7 l- E+ y
          <div class="notice">
  ?1 l5 p/ z% a0 B( g3 ~              <h3><?php the_title(); ?></h3>/ R- I6 h$ ?- b5 l# e) {9 v, R
              <div class="notice-content"><?php the_content(); ?></div>0 B5 P2 \& z" x! j$ k& b( K+ y
          </div>
4 q. ^4 k8 x( k$ x( a" O% y9 w2 Z! F      <?php endwhile;' F" `' C  q6 P5 i
      wp_reset_postdata();& r4 W1 X9 _. H, }
   endif;3 j  n: ^9 Y/ Y& z- x
   ```
- J' y7 [& L1 I0 h
+ i5 c9 u" M8 y4 N8 i   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-17 17:46 , Processed in 0.014164 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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