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

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

[复制链接]

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
/ }# A; M6 {. Z1 ?$ W5 p8 V& Q' P; g! O7 ^. R
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
: C& |! G2 [* x+ `- D
8 [2 Q* b  W( H& S2 ~1 m2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。2 Q. Q# G! o6 n% j' c) ]0 w
# F' q4 i1 I/ }  D
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。; \- A& P. j$ N5 L
8 r) }# G: I) P% `
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。- V8 q4 g3 Y( C( f& |! h4 }! U3 ~$ K

: _5 l5 g( l1 U注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
* J! z  l4 ?" n* X/ E, y/ R, X* `' X; M, T0 p
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:) h9 z+ v+ x2 y& a5 f% s% \7 O

3 U# ~: a, `4 z, B4 }' h+ ~1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
6 q8 |4 x0 i1 P: h) [# _9 J% h
' h+ v( [8 b: S, ?/ m   ```
6 ^% y5 c3 v  q7 N   add_menu_page(- ?5 Q) u$ m( P2 o3 z1 k% N: u
       '全站公告',
4 s9 V* [/ L6 s2 ~4 x, j/ ?       '全站公告',
- Q: Z) p9 X  P7 H       'manage_options', //需要的用户权限
# @' R! O9 f7 s( f# v  r; w       'site-wide-notice', //后台页面的 slug
' N6 t7 T, F% u7 P6 y+ l       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
7 Y2 i5 P; o: Z5 {/ _) q) j5 e. a       'dashicons-megaphone', //用于显示在菜单中的图标. |5 K% T/ F' V, m# @
       30 //菜单项的位置
+ f: S& F2 }! q( r' O( \, |0 C   );
/ N7 T- d7 u% E& ~" f0 m, A) M   ```- I) o( ^- o1 L: W
$ p# \* w0 p, |, P! ?
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。5 n8 l* Z: b8 u1 F1 }" c$ i
9 f. R4 Y7 f; b" _& n& d0 {; Z
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
" {0 U  X& E( S5 x0 M4 T3 D  q: |3 u7 M1 }# l5 r, Y. y
   ```
$ E/ X: O; T, d$ g, S! A! h7 ]( J   function render_site_wide_notice_page() {
: ?0 v9 l/ F& {% P! M) o. u1 h6 I      // 渲染后台页面内容8 ^, D7 P. R$ t# ?9 G) X' Q- X4 p
      echo '<div class="wrap">* E8 L  f" y2 N/ G
          <h2>全站公告</h2>
4 b+ }5 j! P. e4 S! c          <form method="post" action="">% r4 ~' j. q0 L
              <label for="title">公告标题:</label>
4 {" B. ~3 J" M2 _; ]' r% ?              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>) R  e. T0 P! w7 [
              <label for="content">公告内容:</label>
# ]: q8 _6 O, M! c              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
1 y- ]! P3 S5 g2 ]5 K              <input type="submit" name="submit" value="保存设置">" C) F0 I! {$ A6 s
          </form>
9 C& {! B# O/ j, j$ U$ N1 _, C      </div>';1 R  f/ O, z( k/ ~% ?! c" L9 M

1 j! W- j# r( L. C5 K4 X      // 处理表单数据
' D# Y1 ^% l1 a, S% o      if (isset($_POST['submit'])) {* F* O2 m8 o, f
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
6 }& G1 n* p8 T$ R6 f          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
# M1 \' j* s! Z# b  ^; }      }# x$ a; g7 j7 J( k" z" s
   }
/ h8 s% P( i' }9 W6 Y/ n   ```
0 Y6 g/ ?6 m3 L: \# t. r" b( V$ c& T- A' X1 Y
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。- p! s( S' m$ E( j

5 x! I3 V, c1 |. B6 B) a  n3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
3 E- v+ N3 e' R: M4 R% {& o9 o9 |
   ```
- J8 M! ]+ O0 A5 v, x  t4 c   <?php
9 g( s, [% q7 E. h   $site_wide_notice_title = get_option('site_wide_notice_title');0 ~. s0 A* p3 ~" l3 `# T) ]
   $site_wide_notice_content = get_option('site_wide_notice_content');+ U2 y: o1 y7 W) i/ y
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {3 \9 c, c! _: M, `
       echo '<div class="site-wide-notice">';
. o0 s! o2 K3 g  }3 b, [, _5 d       if (!empty($site_wide_notice_title)) {) }$ k! l& }2 g5 }7 B4 S
           echo '<h3>'.$site_wide_notice_title.'</h3>';
6 q$ D8 b4 ?8 _# I) W+ E% F9 b       }
7 x4 d: \7 J# ]$ U' K  F       if (!empty($site_wide_notice_content)) {
6 f6 S1 o6 M& P8 b7 K, b           echo '<p>'.$site_wide_notice_content.'</p>';& g4 g- m! F% b# S# B  `( s) c
       }
* r/ R* l  k: U2 t' z; ]! C       echo '</div>';# I: `' b$ y0 J+ a* X: w3 j$ O* F" S( |
   }
7 c9 Z( ^) d1 o3 b  X; S   ?>4 w* U3 ?; Z2 D8 \  y' q( W
   ```' A- V/ Y6 G! \. _+ _
' `, v9 G2 c# Q: N4 d% n+ o" V3 _% x% S" _
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。+ I4 a: H9 d7 [& t, }. @5 ?
/ ~: I% m1 X/ l% z0 ^
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?; h4 j$ I8 w5 D* [! c* l
- W1 l' }. _9 z5 R
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:, G$ O' _' J) t0 {2 ~7 _! W

& F( [( d9 s, c$ S/ u1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
0 Q2 F1 }. `0 E0 {8 b; Y* K! c' q4 y1 X, f4 J
```( r2 P) A2 Z8 J+ s/ z! c9 v$ f
function create_custom_post_type() {
( W4 Q' C% l5 t2 s8 ]8 u6 f5 H    $args = array(
* e# |! d2 ^, ^9 L: |2 m        'labels' => array(
* c4 X) Y3 Z. j6 u            'name' => '公告',# J; M- [/ n4 M0 X9 V
            'singular_name' => '公告'
6 Z* c0 D& Z% y. j& k        ),
% I  b9 v- r" `* W. y/ ~, ?+ }        'public' => true,
( w" [# b8 x- h8 `/ D        'has_archive' => true,( _* Y$ T* M7 B6 k7 q" l
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
& |& s: H* J! W$ U        'taxonomies' => array('category', 'post_tag'),, r) W4 E. @, b$ [
        'menu_icon' => 'dashicons-megaphone',
9 U6 _  h/ U9 F$ r( N        'menu_position' => 5,
3 K- y4 x, s% y) B$ P$ y        'rewrite' => array('slug' => 'site-wide-notices')
% }) c; W; J! N    );
: a9 _4 g: B* z  A) a    register_post_type('site-wide-notices', $args);
- _5 e. D; e. z0 H6 [7 b% ~9 G, C}8 m" Z, z+ ^, h
add_action('init', 'create_custom_post_type');
+ q0 ?- V  }" N! e& q  \```7 P- Y; B; O. A; b, u( ^# A
% h3 z: N/ m/ y, W6 H: R1 s" @6 D0 j) Q
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。# Y8 d; b( V0 r, }: q  |# o4 G

6 J  {) y7 {9 ]! \& N9 O# ^2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
1 G2 u; e  [8 }0 D9 ~
" B7 r- r! b% r9 n. C/ ], ?& M3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:' L- X! S( [  C- s3 B% N2 R; s

* I7 S9 K' O3 |```: X! T* ]6 \: v; ?: ]
$args = array(( L% S/ h, f9 m# C* W$ n
    'posts_per_page' => 3, // 显示的公告数量
) G2 T9 ], L9 Y) c6 x+ [, c    'post_type' => 'site-wide-notices', // 公告文章类型7 |+ P0 y+ J& H) ~! D
    'post_status' => 'publish', // 公告状态# ?" \7 R( D& s7 G- d. f5 b7 ?1 Y
    'order' => 'DESC' // 排序方式5 ^5 V$ O+ q3 G) ?1 ^# L
);
$ F7 i6 E$ m  s" y* b; F
+ B6 C' k, R8 O/ Q7 U$ k% I0 U$notices = new WP_Query($args);
. r5 ^: R( g  |5 i6 ]: W( M7 r8 s. W1 D) ^3 rif ($notices->have_posts()) :. U2 }2 z' D( h0 x4 W, W
    while ($notices->have_posts()) : $notices->the_post(); ?>
/ d7 m& _: ?" u. I2 J        <div class="notice">  i; E. r! S& ?7 j  g
            <h3><?php the_title(); ?></h3>
1 ^& f7 h6 i. k  ?            <div class="notice-content"><?php the_content(); ?></div>
2 k5 e' v, ~, l' z9 |5 T( Y% M# e        </div>
0 O4 ~' C, [: x4 L# t    <?php endwhile;2 j1 l6 z" m" E- l% @
else :5 n- ]  A" F) o" H! t8 ^
    echo "暂无公告";5 ?% q& h% Q9 ~+ ^: S+ H- J* t
endif;5 m+ a; V& k. h
wp_reset_query();1 t. p( F; h. d/ X# }
```4 K3 m1 S* C: j  W: i. V
$ k1 O) R0 }& l* c1 k+ ~. d6 N% n
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
/ q' W, M6 [& [* }! I1 F, S4 v0 h" b- t' b  t8 \+ f
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?/ w) K, V& J8 {3 ~  a' ]

, q6 _3 m" p) S如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。; G5 {  ~' `' M( g9 U/ t
8 Y; Z7 J4 p/ v5 V+ x4 E
以下是创建自定义插件的步骤:2 |2 M* }. b( @; P& M) F2 j- F
; ]& R/ C. ?# r& w! r
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:: s" R+ F' \  B, n9 x
7 c# ]; J. m% q+ \& a7 |
   ```6 I# @% k- w+ a) i4 L
   <?php# Y0 @1 N! n3 p8 ^2 q
   /*
5 u% I. f( V* g& A5 v/ k' h2 x, B   Plugin Name: Site Wide Notices Plugin, m' Z+ B2 j9 l& {9 U, o
   Description: Adds a new custom post type for site-wide notices.
  c% [# L: T9 j$ h5 O) e   Version: 1.0
  I- R! f6 u1 z+ n" E   Author: Your Name
' o0 @! E) j7 t6 k   Author URI: http://example.com. t8 L) w# H6 A* p, {5 O% R; C, A
   */
1 r6 G3 M, k0 }  T4 E. z( l. G+ _; Y3 r7 {0 e
   // Add plugin code here..., B0 W9 y0 h. I: U5 D( ^- J9 j
   ```
" [* r" g5 }) h" N' D5 Z
4 g4 x; l, ]  p2 I' m6 d   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。- T1 M- g5 D: x0 `$ b3 Q( @
$ w/ M! G5 r4 e! g3 i
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
. r1 V' L" t7 A, V6 d( f2 O: Z- a2 r2 Z. f
   ```
7 l% Z8 p, r$ r$ t3 C: H$ [   add_action('init', 'create_custom_post_type');
1 _- m  p. M9 V" _* i( o4 V   function create_custom_post_type() {
. b: Q* O; ]3 K! [  N( W% _      $labels = array(
! l9 Q' G3 N' a0 Y          'name' => 'Site Wide Notices',/ i# M9 m7 e9 W% R: C5 ^
          'singular_name' => 'Site Wide Notice',2 D4 X0 @9 p" [5 V/ i8 h
          'add_new' => 'Add New',; {( M6 A! o# A# b
          'add_new_item' => 'Add New Site Wide Notice',2 ^$ p3 k/ p- B: \  i
          'edit_item' => 'Edit Site Wide Notice',
2 n2 e7 O3 s& B# D          'new_item' => 'New Site Wide Notice',
: u5 A7 d, v8 M9 I! `          'view_item' => 'View Site Wide Notice',$ M* X$ `4 ]( Y0 s
          'search_items' => 'Search Site Wide Notices',: L8 a0 g( D3 x) l0 @) a; y
          'not_found' => 'No site-wide notices found',
8 Z& a0 P; d* o  o; n" r( m          'not_found_in_trash' => 'No site-wide notices found in trash'
/ W5 e  j9 `) m  N8 _5 e; J4 I      );
3 W# p3 X, T; `: ~) x4 Y- r# `' B0 ^0 a: k; l& V8 L' S1 @
      $args = array(8 S% l& t* g% k' h0 J( @5 n
          'labels' => $labels,
! Z7 t* u6 b" {% n0 v          'public' => true,% Y% A2 w) g7 {  [: [
          'has_archive' => true,& S& D% b5 N, U( ~0 T. F) V( T
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),* g% v4 s! }8 Y
          'taxonomies' => array('category', 'post_tag'),
0 F5 P4 i3 \% G          'menu_icon' => 'dashicons-megaphone'," A/ V# H: f/ ]" u& h
          'menu_position' => 5,- a" b% {* D: ^, h% B
          'rewrite' => array('slug' => 'site-wide-notices'): C0 E: [9 a* c; B/ `4 I- }
      );
- m6 Q  @. g7 ]$ H7 K
- D5 j6 [- s9 `. K0 x! F/ d$ B% C      register_post_type('site-wide-notices', $args);
8 ]. ^: }' t4 g$ l; D9 }, g   }
) c- a, Q( \4 X" s& V( f   ```; |7 |% L2 j0 ?

4 y2 |5 S7 X7 [- Y8 p% @9 J   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
/ s  |6 Y2 \* ?; g" C% A4 V; h: n9 F; G" |5 f' B! m. s
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
3 |, k/ M$ s9 j  ^5 c# d
" f4 Y" Q1 P. S0 j- \% m7 m3 h; l   ```
* m: x4 t, Y7 ^, c: w1 ~   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');9 H( K/ }0 {1 u, d% q; x, E, ^
   function add_site_wide_notices_boxes() {2 I% i6 X. C: }3 R' U, `% E9 C5 ?
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');# _6 D) ?9 |! y" _5 S- U; F
   }$ y0 y  w5 Q- h+ j0 y5 g

0 d( T+ S  |$ N, w" r$ M   function notice_details_meta_box($post) {
( e1 u, @, ^/ ~, ]6 U      wp_nonce_field(basename(__FILE__), 'notices_nonce');
6 E) }" _2 V2 x& X      $notice_title = get_post_meta($post->ID, 'notice_title', true);
) k- Z$ z6 n+ r, j! B* z2 |! r      $notice_content = get_post_meta($post->ID, 'notice_content', true);3 y0 j1 g. D! ~2 }: w
      ?>+ i% _7 o, i: o: \
      <p>
5 u$ F( h7 c3 [5 s. `% b/ j2 p          <label for="notice-title">Notice Title</label><br>
' u5 W3 S: P/ ~/ A          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">5 u1 j* g+ `2 [8 u
      </p>
! K1 S7 W8 a$ F8 g2 D1 _      <p>
5 C' K' _4 U; q; y7 P! L          <label for="notice-content">Notice Content</label><br>0 c3 J1 z. P  {% x" e! k/ U
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
1 P: k7 d) M! R* o      </p>
- j8 e( D: d% z5 M2 v, `6 g      <?php
! k. A. m1 S& W+ X8 L   }+ [3 @0 @( {8 b" u4 |, u0 y
4 u* H7 y% M" C( }% F' N5 F
   add_action('save_post', 'save_site_wide_notice_meta_box');
" ?' H. k7 b% M/ C   function save_site_wide_notice_meta_box($post_id) {
: V$ Y4 p9 c9 s$ w+ u8 N9 @      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
3 `3 g% }. u- r3 X         return;
* B  g3 `) p9 U" v+ R# N& H      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE); O9 P" R" x4 @
         return;; t; ^$ [; K% t2 D9 _7 ^( k
4 [1 F+ h5 W5 h
      if (isset($_POST['notice_title'])) {
, ]  Y$ @0 z7 t6 O* ~7 j          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));+ ^; N: J6 Y( s
      }5 [! t5 R/ d- E, Q2 }$ F
      if (isset($_POST['notice_content'])) {* h2 f# ~" D2 b8 ?
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));' W; F& l9 M3 X; Y
      }4 D: e& _2 F5 X7 @  N
   }
1 ~% k; E2 P% @6 Z2 O- n' |  G! `8 p   ```9 u; X& B: S6 Y
1 _7 I1 C' p; z) o; R
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
7 p% t% B4 Z; v) [" Q- M( ^0 R+ {! x5 g* L" _# r
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:/ S2 S& n$ h7 Q) u+ I

# }6 O0 \" g- A: _9 b   ```
9 d4 `; \7 U+ h  q% j: x   $args = array(
6 `0 |2 c; q  \2 N0 T      'post_type' => 'site-wide-notices',
2 G8 S# y+ R. S' b9 g% w      'posts_per_page' => 3,
( `7 l. r: K6 H+ c3 S2 s5 `$ G      'order' => 'DESC',
$ `% J# }2 i0 \' _      'orderby' => 'date'$ J4 g8 A! n: @
   );, H+ U9 @" n8 s& {2 L4 i
   $query = new WP_Query($args);
/ L& r2 N4 z7 A( }5 Z. I+ \/ W   if ($query->have_posts()) :: F/ Z  Z: L' {, ~6 A" v  x
      while ($query->have_posts()) : $query->the_post(); ?>& G" R* x) {; X/ @% h
          <div class="notice">* \2 ~6 _7 e- w1 \
              <h3><?php the_title(); ?></h3>
$ Q: p5 x- g, X8 _              <div class="notice-content"><?php the_content(); ?></div>
. v$ Z, X& `: V: P$ d' h( }5 O          </div>) i2 D6 w7 `. F1 ^+ E0 I1 _; D
      <?php endwhile;# A' m* |6 V( d0 r' o( y
      wp_reset_postdata();7 U4 a) U1 O6 v& i) c1 e! O
   endif;
. I+ Q: ~6 G# T3 Y   ```1 Z7 R/ ?( g2 ]/ n) Y5 l) G/ i
, l# J' C1 {/ j* @( f
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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