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

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

[复制链接]

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:1 N; P  G5 C6 R
! U4 _. k  ~2 w$ @
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。8 ?! U2 [% c, E$ Q. E, H
; [. |3 G& [# l9 n
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。/ e- a3 a1 d. q4 X6 W

  ^' D. }/ o" l+ A& M' Q/ J" p1 D3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。3 M+ O) D8 Z5 L- n$ \8 u) g; }

; B: L3 ^4 K: q: ]4 W4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。6 B% Y& u4 [( B
$ d3 n6 z* h$ t- h8 s
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
9 ?4 f) E8 X  J0 e/ B9 m
3 g" h2 i! |% V; C如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
* y, C  |' H; [1 D9 |6 T6 S2 x! u1 }' W6 `; _$ w/ H( _
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
5 i( D7 l/ t$ A$ e" N4 N1 i/ Z. e. x$ O: ?6 m
   ```% F$ Y# T' U( q/ f6 ^
   add_menu_page(: O# z; ~2 W  W/ L
       '全站公告',& T, ?! a/ v# @% I4 w9 J1 v3 [
       '全站公告',
9 H: D6 d# u- y, i9 Z       'manage_options', //需要的用户权限% ]( j. V- Y, ^9 O& e* h; I
       'site-wide-notice', //后台页面的 slug: q( f' f) p1 d: x
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数7 V# ]0 Z3 B, j0 d2 E) V8 `1 l
       'dashicons-megaphone', //用于显示在菜单中的图标/ p8 ?' A, ?& c% j
       30 //菜单项的位置
( B2 `! ~+ n* O$ B/ w   );
2 H' A% I: z+ t, L   ```
: x$ x6 `& ^  ^4 |# {
# h) z1 @! X6 m0 j( k: S   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
/ _' A+ d8 S& I5 {# i) [/ d" W1 P6 u. Z0 U$ M8 m, g2 P. F% n
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
% ^, J6 d, s, Z) x4 W+ g, q
9 G: C* X, _8 y, e+ l% G7 p   ```
( U7 ]' }+ S: K* |* Q   function render_site_wide_notice_page() {
8 ^5 T6 |0 h7 r4 \4 F8 Q      // 渲染后台页面内容
5 x6 x' k6 v# Q) G1 C; q      echo '<div class="wrap">
$ L- u0 \1 Z5 w6 Y3 F, j. |          <h2>全站公告</h2>
4 Y5 z  V% r5 d% `6 r& e- P  X          <form method="post" action="">
! O( t0 K5 n# w0 e              <label for="title">公告标题:</label>) E* P. j4 w1 i" `8 S4 p% _9 ^/ \1 M5 e
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>( \: F* K5 K) ]( E9 j& K! [
              <label for="content">公告内容:</label>
; j8 E# }9 u6 \: y1 E- I2 `              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
. _% l" y; F* _( r- I              <input type="submit" name="submit" value="保存设置">+ n" R! F9 p3 n9 k5 q
          </form>+ k, z- s2 a' ?: j+ L
      </div>';: c9 |! g. ~! k" Z9 a$ S* ]- h6 z
4 V6 h3 Z) h2 j* f
      // 处理表单数据
$ J( V. G8 E+ N( k) M      if (isset($_POST['submit'])) {
4 R8 Q+ Q3 s! i6 a* D# O9 [          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
) m) k: S* s  h" l. I1 Y          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));' C3 U5 n, Z9 k1 |
      }
) N7 M. n0 e: h  \* b: l   }
( r. [& w7 Q- R: r; j2 \+ w- T   ```* x1 O: F$ ?0 ]' \* D5 v) e
1 S8 s5 u6 `* V$ \2 g
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。4 r' r7 z2 c. I. v' X- C, J
. n. D: b) Z: h; i/ d! J- r. `
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
, E& J1 V/ B/ c0 Y& _
1 N. }. m) `% H! C& d+ {) E9 P   ```
; f- o+ H: Y, p0 x   <?php/ k" k* M2 ^9 ]2 g/ p  j
   $site_wide_notice_title = get_option('site_wide_notice_title');6 B$ {; z+ _; O4 P9 K  w8 M7 b
   $site_wide_notice_content = get_option('site_wide_notice_content');) r2 {) I- Y/ \% `
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
! l( X, K1 M: {5 o' H) E8 K       echo '<div class="site-wide-notice">';; c- _( t* V) j; Z5 K4 {+ A9 }. q
       if (!empty($site_wide_notice_title)) {
8 t, S! P+ h4 o$ ~/ e3 f           echo '<h3>'.$site_wide_notice_title.'</h3>';
. }9 d' S5 i2 R+ c       }
; D% S3 Y$ N7 V" H* Q) b0 [' M       if (!empty($site_wide_notice_content)) {# K3 R8 {6 l, a7 N5 x- j! c
           echo '<p>'.$site_wide_notice_content.'</p>';
/ g9 L' L# {# c; v1 ^% V, {       }( o3 s% A5 ?% @8 U# C$ t' E0 h
       echo '</div>';
+ d  T# q% \0 c7 N/ u5 z2 H   }; u. T! Y# B; D8 c: h9 ]9 S; @
   ?>0 K' q; r2 f; H6 Y4 V5 ^
   ```) h# z8 f% k8 A
4 a% x; v1 n8 e9 i
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
9 Q) h! g  X: v3 T0 A9 w+ C, V- c& O
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?+ }- r$ |( Q1 q# O0 @% W

* P5 ^* w. g0 h+ O2 `$ s* f您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
5 D! z8 k5 |: f; M' ]& U% Y
% D+ E' n- F9 P$ s( ?% r8 g8 h& a" c1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:- [# p5 @+ M0 k+ M6 q4 J
1 |) S6 L5 F! Y4 w7 I+ O
```
) `9 ~: P  G! T( Ifunction create_custom_post_type() {2 u3 D! T1 H% z  b6 v7 E7 w
    $args = array(
9 g2 ^, ?, V+ n6 O" S2 d        'labels' => array(3 g0 {% P- j/ w# Q/ ^
            'name' => '公告',( T) e) |" G) B/ U! \
            'singular_name' => '公告'
0 p5 E+ G) ~) f8 ]5 b/ C        ),1 h9 \3 b! N' r
        'public' => true,
7 ]9 C# q! }; \. W) i, f* t3 \7 `        'has_archive' => true,. e1 b8 ]7 _$ _7 _' s; X7 L
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),+ x2 X& w3 f1 h- ^, W
        'taxonomies' => array('category', 'post_tag'),
6 x- A* Q# z& S        'menu_icon' => 'dashicons-megaphone',
, ^: W+ L5 X9 ^# l( A0 m        'menu_position' => 5,8 U( v3 g- O* ?5 N
        'rewrite' => array('slug' => 'site-wide-notices')
! p  z8 v; n% v$ z    );
- E. a- @* I- b9 j" a5 v3 L2 B    register_post_type('site-wide-notices', $args);
$ ?8 B) n3 o6 b' @2 G5 I  s}
" @& i+ v# f% T& zadd_action('init', 'create_custom_post_type');
2 z! n' J# n. E```
" v4 q  `. h1 B% q
' ^9 n. b0 [0 F+ J/ M8 D, x在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。- T& D2 E- O) F

1 W7 B6 e( d/ d2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
7 f& W7 _$ X, o" C9 i; O- ^
4 R3 A1 h9 u9 ~7 h3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:: `" r# J+ R7 |3 o  w2 ?

$ ?6 p8 m( A9 h1 e( [2 I7 C6 O```
' w- ?/ r4 E- k5 l" S% C: M$args = array(
. C4 z4 I' i' V4 k7 b, s    'posts_per_page' => 3, // 显示的公告数量
* ]& _: [5 V% H& N$ {; q6 ?9 O4 J    'post_type' => 'site-wide-notices', // 公告文章类型0 j" V5 U* X; S5 X# I  n% B
    'post_status' => 'publish', // 公告状态
1 y7 T2 j& V9 m9 y7 Y    'order' => 'DESC' // 排序方式- q) H; m. p( _9 Y: M# Z: b
);' _" ^! _( e. }
5 H* h4 Z! L6 N7 e) n7 U/ L1 `. [
$notices = new WP_Query($args);
1 G6 c! s5 M1 D! Fif ($notices->have_posts()) :/ B: I% o! g/ g+ P
    while ($notices->have_posts()) : $notices->the_post(); ?>
3 A1 {# L2 L7 A8 J        <div class="notice">2 P+ ]1 B9 |$ w8 c& E0 Q3 ?
            <h3><?php the_title(); ?></h3>  E+ m* v3 i$ H8 v# B( z
            <div class="notice-content"><?php the_content(); ?></div>
6 D) m2 l7 i" X5 l* m        </div>
# s; H+ D& a  Q* C- w% M" a    <?php endwhile;9 s" R3 l% l1 o2 Y+ C# ?2 c
else :9 r# M* |8 E0 M0 T, J+ ~- [+ b+ _
    echo "暂无公告";
# R" p( D! H- Z, z- k+ f9 Zendif;
. F) ?# p- ?3 I+ ]8 Q% ]$ ~5 \wp_reset_query();
% x4 a5 Z$ a; U```
/ o% ]& {8 C7 K, y7 r# v' \+ E6 ]6 C  a# ~
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
+ K2 ?  N; r: T2 p- `* F/ L3 ~8 T( i
; [9 t& o( _2 V+ R* ?8 A以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
5 [% Z; [2 n  c" o; u0 O  F
% ^3 {( @  R& R+ P' c, x. y+ Y8 {如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。% i0 I4 C1 W1 s7 F5 D

4 }) e; S8 X$ J4 Y) G; J+ L1 C以下是创建自定义插件的步骤:
: M8 v  w6 a% @
- }) D/ S* B! S( g: U2 T1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
; P$ t0 H4 K3 T' s. c. b
0 h- x* Y0 Y" Q6 A" T( N9 P   ```8 D# k8 k2 s) V$ m) \! [
   <?php9 a2 B  A+ D* O; m- g8 l
   /*
2 h2 ^+ D9 \9 W  A$ w7 }+ g   Plugin Name: Site Wide Notices Plugin
  ]! U8 o" r7 m# k   Description: Adds a new custom post type for site-wide notices.' H( |. e7 C" u, C3 x* W
   Version: 1.0
; v  L0 `# T( {( @; J2 [! W   Author: Your Name
8 h' G& O( s: A1 h* ~% X6 _3 Q6 S   Author URI: http://example.com
* H! k4 }5 o6 k8 Z# C) ?" U+ h& v   */& [' M) D4 @0 P) z
6 @0 X* _- X% P% e2 Q$ T7 h( @: v
   // Add plugin code here...- O' x/ y* A" l5 i
   ```
, R5 O  B( F3 u6 [# X2 e, l, M$ l$ I& }
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
( Z+ c- X! A9 {$ L
7 B9 t# j* O. O+ {& F2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:9 `9 v' V; U# C1 `+ G: C  s

$ |* }4 g  H7 B+ K" F/ L   ```
: x  K, g) g$ z- f: [   add_action('init', 'create_custom_post_type');
6 s& i) Z& X* V: d- F0 b* d( B) w0 ?   function create_custom_post_type() {
( h9 f8 b9 z* b7 i      $labels = array(1 X2 D( C6 d9 l( A/ X0 t
          'name' => 'Site Wide Notices',3 J. k8 u" C& |+ V
          'singular_name' => 'Site Wide Notice',; b- C# A9 R8 q& y
          'add_new' => 'Add New',
! z; o( g& P; N1 `1 b6 E7 y          'add_new_item' => 'Add New Site Wide Notice',& N; `- a2 l/ J
          'edit_item' => 'Edit Site Wide Notice',$ [4 i8 C! x; D: Z4 r8 u' `
          'new_item' => 'New Site Wide Notice',8 a6 {& u# W2 z5 }; g! F
          'view_item' => 'View Site Wide Notice',
( h, h" b' B9 P% T& x          'search_items' => 'Search Site Wide Notices',8 L: s- d7 g  o  U; D
          'not_found' => 'No site-wide notices found',
4 S2 E; \7 ~! u6 f          'not_found_in_trash' => 'No site-wide notices found in trash'
6 T6 q! ]; H. m8 u7 V1 X( x1 ]      );6 Z! C" `* \7 l) \- h& M) O5 D9 V4 M
+ s( |3 x- z( J
      $args = array(
/ V. Z, T- J: s8 B$ q          'labels' => $labels,
/ l: @6 j! [0 \  R" g( b3 r2 m          'public' => true,0 p6 A% G3 b. ?0 N$ f9 _  a* C
          'has_archive' => true,
8 J0 U* S+ ~$ F( w( F          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),' u5 _$ H) h! P' P
          'taxonomies' => array('category', 'post_tag'),% O7 b2 B+ B7 _6 L4 j! n; P. {3 O
          'menu_icon' => 'dashicons-megaphone',+ P: L( X5 ?% B2 y
          'menu_position' => 5,
  n( j8 r% V6 Q9 y3 \4 d! Q          'rewrite' => array('slug' => 'site-wide-notices')
+ E2 b) }) K% {! h  e  c1 ]      );  G5 I; \, b3 \- d. `% Q8 _9 b  K$ g
" t5 z8 T6 H- h$ }2 D' j# S
      register_post_type('site-wide-notices', $args);; m+ X' d. }- f( B6 l1 U2 J9 H
   }
4 [# R4 Y1 A) E   ```
/ j& T+ a9 @, X" i4 `
2 b9 W$ r' `' T+ M, m   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。5 V' j: Q3 N( x( ?

4 E; e7 j5 c/ O8 a% r, ^1 ?, I3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
; V, X; {3 m5 [" E0 I9 z
- ?6 w2 j% B9 p$ H7 U! }   ```/ c) r0 V2 G! f5 V* M! A& u, w8 n
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');  p# T0 ?5 ~* a# [' K  ~/ Y' q
   function add_site_wide_notices_boxes() {3 E9 I- T4 S, I
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
1 |3 h- _9 d* s: _; s5 N1 Z1 }- Q1 u   }, i2 M- W1 o5 o; B8 b$ t

8 A) p  u- n; K# j, w) `/ J   function notice_details_meta_box($post) {' y4 a" k/ j# O7 N
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
7 d' b  C$ D" X8 i0 W  B7 b) I      $notice_title = get_post_meta($post->ID, 'notice_title', true);/ k# I! M! |3 V. H
      $notice_content = get_post_meta($post->ID, 'notice_content', true);: \& Z! X7 O; X/ R3 `( _
      ?>6 @* @+ W1 [( m1 z$ W3 H; C
      <p>' v7 ]* Y9 o! Y) T4 z$ u! K
          <label for="notice-title">Notice Title</label><br>
; F, |$ A, v" Z3 @/ w          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
2 W" o3 Y% |# m" A6 \( y& b      </p>
2 ?& X, i% G$ t$ Q: y      <p>
, l) j/ F0 K. F/ r' A6 {$ m          <label for="notice-content">Notice Content</label><br>
; [" ?. v* \9 f' S8 H7 d          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
3 b$ j' A8 g- r- J+ ^      </p>+ C) q. m6 w# s% ]. Q& U8 @) }
      <?php
9 @" I  a! b2 ^( P8 @! ^   }5 s1 ~% z( W( f1 b: s2 N3 h

. U# b% \+ p) H# z3 M+ o   add_action('save_post', 'save_site_wide_notice_meta_box');# a$ Q4 @0 K! A5 o% v! D/ d
   function save_site_wide_notice_meta_box($post_id) {
  G  g- o: `/ L! x/ x      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
: Q, \8 {* t* D! I         return;
: @$ S0 C$ b% |) x; s      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
) \4 ~! F4 E. i/ f- p; p1 v         return;
5 X; p: f# J( D: h: b9 G
2 f3 ^' z, N/ t2 U- i  O      if (isset($_POST['notice_title'])) {; C& }. _$ R5 L6 A; \; o3 n2 _6 a
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));# ^7 R2 @" u5 b+ G
      }% k) c% u( A9 F* e6 s! d0 n5 P% ?
      if (isset($_POST['notice_content'])) {
( ~# z( Q1 u0 C/ z          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
% C- \+ ?! s6 l& G2 _) s7 l8 B      }) |5 ?" r8 f/ J" S9 e" M7 O
   }
' ?$ ?+ l8 Q9 R1 {0 H' R   ```" \& ^% G3 y+ B

$ U; e' S' D* o9 E* w   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
( t# p  U# K3 W& i2 z5 s8 V% z& H7 {2 X, x! m
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
, n- j$ n2 U: f4 ~  ^. y7 y7 ?( M6 Z5 \
   ```
# {- ~" i, j$ S& t; w   $args = array() q) S' P4 I2 d) P
      'post_type' => 'site-wide-notices',
5 Y3 i) E7 l! [  Q' H6 }+ D      'posts_per_page' => 3,
# V% Y& Y3 u% X* w2 q- E      'order' => 'DESC',9 {. n2 O0 u2 z. g9 f" |6 e5 s
      'orderby' => 'date'6 I( t; ^( I" F, a9 [) v" ~
   );
0 F/ H, m: z3 \" k   $query = new WP_Query($args);
$ _- h# G6 E' F# q- T& b/ p8 c   if ($query->have_posts()) :9 n& e5 T& e+ c. ^
      while ($query->have_posts()) : $query->the_post(); ?>
9 U, c% G8 a) t" ~  e& Z          <div class="notice">
" k3 q- `) m4 S8 O) ]) Y; C) Z              <h3><?php the_title(); ?></h3>
1 e' ^/ I( c7 X) N              <div class="notice-content"><?php the_content(); ?></div>( x5 T& m& v$ [; f! ~& H* d
          </div>
- B$ K. A& r3 h- E# V# l7 z( D) K+ m      <?php endwhile;
7 [! ]1 l4 ^& C- ^: `$ y      wp_reset_postdata();$ s, b# X# u; }( u. }9 Q
   endif;3 `8 J  r* ^' n$ Y; [" W
   ```! J: G6 g4 i8 @7 ?- e, X' r4 {
0 Z' I/ w  Z# P4 |& g
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-14 09:33 , Processed in 0.023706 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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