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

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

[复制链接]

331

主题

511

回帖

3343

积分

管理员

积分
3343
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
" x1 [/ q7 w6 M, Q" D4 t% B
3 O  {. s, C- B1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
+ }- i# w" q: a9 Z. ^/ P
& N+ ~3 ]. K: D4 b. U1 q4 U1 {2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。: |6 c# w, l# A6 `4 E" G

4 q* ]: P* R/ r3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
+ i5 M- V4 q! _% _: R# r# p8 m
$ n8 n1 O$ Y. U$ _" b4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
# o/ U( a, u& Q6 J8 [9 G7 B5 C# f2 O7 e4 }+ z( K
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

331

主题

511

回帖

3343

积分

管理员

积分
3343
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
, t+ y8 T+ I1 C0 Y; a  J( G. z1 F- {& f/ {2 u$ ^
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:# u$ P7 y2 p; I9 Z. a/ `
* s3 @% }8 @( A8 C0 O" l; h
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:" u7 F! _: U1 K# ?% ~4 b
' G" L- o4 E2 o. z+ K+ ~& e- Z+ d- Z' x
   ```
1 m  k+ ^# r/ S/ ?; N   add_menu_page(
# h/ d6 e9 l8 B: Y0 K' H       '全站公告',8 _0 Q& {3 R  {. M6 q' [: T- }
       '全站公告',
% O' u% R' e; A/ ?3 ?% L       'manage_options', //需要的用户权限! j% X0 |. j! g" f" w2 x
       'site-wide-notice', //后台页面的 slug! P8 J4 [" P7 j" b8 w- n
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
! y( s, a% t: i       'dashicons-megaphone', //用于显示在菜单中的图标
/ K6 C+ I  t$ a# Y4 u( X7 w       30 //菜单项的位置$ t+ A9 x3 P0 i7 d6 {5 S
   );0 K2 i5 |( h4 Q: ^& R" P3 e
   ```
! ?$ J3 R9 w* Y' @3 c! ]) e0 X4 z9 S1 ?. _
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
% h. n( R3 l% X" O
5 Q8 U- L, J' \+ S8 k) Y2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:3 ?7 r5 @9 ~4 k0 f
% Z; a. Y9 |2 T2 e8 J- @. w
   ```" w# k9 V9 D$ A2 X- q. G
   function render_site_wide_notice_page() {1 _8 L' Y5 \3 v3 ]
      // 渲染后台页面内容% q( B2 g8 N4 k; t- ?
      echo '<div class="wrap">( C9 F# H9 l6 X' [- a  A" y
          <h2>全站公告</h2>* _2 `3 x" @% L& R# ]& o8 ?
          <form method="post" action="">
; ^/ t- u, q: P9 ^0 a% N* O  _              <label for="title">公告标题:</label>
) ~" e8 g. _: Y. |. ?5 Z9 @              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>' }0 D& ^. V7 G! v1 h, y
              <label for="content">公告内容:</label>- U- s0 R. Y/ ^- l$ R4 G, Y
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
" R7 t2 M1 r5 `4 @4 s+ M% L1 e              <input type="submit" name="submit" value="保存设置">
! E" U) m* Q) h, J2 [          </form>
4 H/ X5 J  U4 a# p  f9 ]6 Y      </div>';
# H) z: p& @' [( Y7 b9 j. M9 X$ C+ t) q" X& y  }
      // 处理表单数据
7 Q7 h  [; p9 Z  V0 l      if (isset($_POST['submit'])) {. B5 d0 J% D  }" F' K7 s
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
- H. @8 C0 \& N# x* u* I& J  S          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
4 x: t4 n  I* F# D6 t3 n. i      }2 R5 i" |3 @6 a2 W
   }
# Z. m* D* w  l# h% ^! e( o   ```
9 W9 j' ^. X8 O$ C( J1 f$ P5 w( c& W' k) x2 ~# X; K  [5 `
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
4 W5 N+ _$ W! d9 n
8 w7 V( ?; T* w% ]2 l( |/ K3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
# ]0 P' i! d" L4 K, e4 V! ?, _2 B1 L" H% S$ p2 G
   ```7 }, M# P* x  w4 d
   <?php! z1 d1 h, S% A/ \% E
   $site_wide_notice_title = get_option('site_wide_notice_title');
3 C2 o( \3 Q" N' o   $site_wide_notice_content = get_option('site_wide_notice_content');& Z' f3 `2 K5 @2 h: e5 O2 k
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {" g! M/ w* a. Y1 H" x9 @6 l  r; f
       echo '<div class="site-wide-notice">';" }! [2 J4 ^& ^9 U' I/ V
       if (!empty($site_wide_notice_title)) {
1 b7 o/ R2 W. P, z6 W           echo '<h3>'.$site_wide_notice_title.'</h3>';! _: L1 }$ Y1 d7 @9 P/ p2 d2 G
       }
9 o4 g8 U2 y. A1 B7 n- I+ Y& ?       if (!empty($site_wide_notice_content)) {, k0 |: N; {9 x7 s7 ^7 g8 ~
           echo '<p>'.$site_wide_notice_content.'</p>';% |1 v4 i0 z7 w( O8 _
       }
* ?8 X3 s7 r- ]2 G* l       echo '</div>';
& F3 o) U* {* Z& p2 w   }
9 L9 v% k; p; r# ~0 U: L   ?>9 A( c! n8 n) T( W8 i3 r- [3 W
   ```# [1 C8 T) `- J- Z. }: J
; h& x1 ?5 x& ~1 M; ^5 \
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。; K# u8 Z7 N5 R* r- J) @* m
( `; {+ ]2 b- f7 t) |3 M/ _! K# n4 f
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

331

主题

511

回帖

3343

积分

管理员

积分
3343
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?6 {" N2 v4 ~" T$ g5 [6 `
$ v+ W& h. g) @# p! C+ A
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:1 j0 O; Y' W  k. g6 A$ D2 a* u
) V! y4 n; r* p  j% g' X$ J! ]
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
- I! w$ O( Q* ^! N
6 y3 v& N4 f  P. v& E: j" D) L```" j% {2 X; M* o; S% q
function create_custom_post_type() {) \3 L# j+ F. y3 v# \$ x
    $args = array(2 G9 {' A; q$ ?! w, F  T& n
        'labels' => array(: P& Q. B! x! v: |
            'name' => '公告',# m. W6 v; z. ?/ ?. W% w
            'singular_name' => '公告'
8 Y$ i% v6 @+ B7 d        ),7 I$ N, b0 i, @8 p) n9 V/ c
        'public' => true,8 V; f; j" y; V! m9 u
        'has_archive' => true,
, j# b) M) C. X' l        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
' d) ?& g( |7 h+ K2 y6 W        'taxonomies' => array('category', 'post_tag'),
* Z6 m0 |" C9 B& w% k  |4 O        'menu_icon' => 'dashicons-megaphone',
# Y/ N) E% b+ Q) [9 q8 @        'menu_position' => 5,
. K) V+ |6 H! }        'rewrite' => array('slug' => 'site-wide-notices')
( i/ t2 P4 f/ w, R    );7 A7 O& ?/ M) g  S3 v/ i
    register_post_type('site-wide-notices', $args);* q8 X1 x2 w) @* \6 k
}  |; Z0 }) Z$ a# y8 X0 E
add_action('init', 'create_custom_post_type');
0 T/ W: X( @& z5 H( Q5 I2 U```
4 e" v" h, n+ `& D
% r* X2 D8 X3 t+ K) H, ^在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
" O# P: ]: h3 f
3 x4 ]' l4 }: y( Q! p% w9 H2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
5 `* f$ A1 [3 B3 T( O0 F/ n3 Z- S6 ]/ v  t4 K8 m
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:7 R$ _8 }& Q( `
4 W  z( I- X; m8 n1 z2 p
```
1 v% S1 R5 y8 ~; E6 l/ ?% ^  L4 i$args = array(- c; h& y/ r: S" d( U, E7 i* R
    'posts_per_page' => 3, // 显示的公告数量
; `4 `; S3 `# N( {. Z# x    'post_type' => 'site-wide-notices', // 公告文章类型
  h9 w( F; L7 Q7 I$ w+ X    'post_status' => 'publish', // 公告状态" m8 P% u3 V) N0 }& \
    'order' => 'DESC' // 排序方式5 `# ~4 L  L* w- @
);0 Z+ e2 g  w& y7 S

; s% c6 g$ {% G$ o$notices = new WP_Query($args);
( y" W! k# Y9 n! ]0 T9 rif ($notices->have_posts()) :7 `+ ?" D% M( K( W6 I# u8 j
    while ($notices->have_posts()) : $notices->the_post(); ?>8 k& Y9 O2 {8 g' N
        <div class="notice">
' V  ~  f! C5 v4 K+ R& z& h+ F            <h3><?php the_title(); ?></h3>
4 w7 ]+ T  L: e            <div class="notice-content"><?php the_content(); ?></div>
8 w" q4 l. T; Y8 _% E        </div>
% R, [4 g, ?9 ]; t    <?php endwhile;. C$ D! n' O; D, m8 y0 ]
else :2 G, o0 d& Q" a5 `
    echo "暂无公告";
* S- j- F' N( _2 Oendif;
3 G! o, F. V+ z4 twp_reset_query();% o# Q; @! A* o2 ~. s
```
; S1 s5 Y5 m+ \9 V8 A" K$ ]# k, V4 w9 Z3 m. {
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。+ z7 _# F: j1 F2 f7 t
  J5 G  m; N4 {4 Q: Y, M2 I/ G
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

331

主题

511

回帖

3343

积分

管理员

积分
3343
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?8 U% T; N: ?; T6 [
+ d, w" S/ T0 B+ U, G7 u$ f
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。' ?" n$ n6 `" m6 N: ~: S# Q
& K) ?2 e! Z0 y$ C6 m
以下是创建自定义插件的步骤:, c. P1 V; v! e

5 u) O" W1 u+ [( ?1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:+ G; m5 s7 ~# G1 p9 d0 J3 X, K
+ F% U: P/ O( U+ i7 i; d0 h
   ```4 [) ]% u1 w$ D3 }
   <?php* v6 D- o& R  ?5 G: W
   /*  [  V! X  U7 Q: n' I; u" t
   Plugin Name: Site Wide Notices Plugin
9 p2 i1 U# x1 P- _% l9 L, i   Description: Adds a new custom post type for site-wide notices.
% w1 q  u  t* p8 W5 w" W3 O   Version: 1.08 g; c- D0 I) ~; o) S
   Author: Your Name
$ ]9 _4 j8 ~: w1 A   Author URI: http://example.com
# k# ~: W8 ?& x" I; V   */" j$ U) Z/ x" s
1 A& G, `- P* i& ?( C. T1 i. i7 ~3 \+ ]
   // Add plugin code here...9 T% q+ f; D4 o9 {2 P
   ```0 m& i) L. J1 t3 d" X
' m' @9 D: {/ e& \8 t) [0 b
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
' N$ J7 z2 x- ]9 j' _4 _( w: W3 ~7 m( v. n  [* ]
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
" t, L7 H3 G- w
1 ^/ q3 Q& g) I" J   ```) U; x5 d9 T, {5 S* N: n5 |0 W
   add_action('init', 'create_custom_post_type');
  f  E; D) M# j0 O( P2 u   function create_custom_post_type() {
( v: p. O4 ]- z; S- ^      $labels = array(
' X" ^% P6 k! n. w9 j          'name' => 'Site Wide Notices',$ U; {0 R' s1 s* y  Z% D2 R
          'singular_name' => 'Site Wide Notice',: I+ ^9 P  Q. Y8 F: f
          'add_new' => 'Add New',
& K% x* S  Y  F; K  ~6 X. l0 Y5 @          'add_new_item' => 'Add New Site Wide Notice',
1 o, T  G# ]' s0 r6 u* y9 o; w          'edit_item' => 'Edit Site Wide Notice',
9 h& [6 F* X7 W" S          'new_item' => 'New Site Wide Notice',- t7 z  d7 v  l  j: [, D/ N8 E
          'view_item' => 'View Site Wide Notice',+ p! R' L) R. w6 O6 S( k7 Y
          'search_items' => 'Search Site Wide Notices',
) c' q5 O3 B: a. Q9 y          'not_found' => 'No site-wide notices found',
7 j  Z" N2 J. v; f! [          'not_found_in_trash' => 'No site-wide notices found in trash'/ ^2 b% {) N& b9 y
      );
1 M7 H8 K& y2 i: C8 S% @; q) \# G3 S5 C  l
+ h, G/ \6 K4 J4 M      $args = array(
" J5 Z: Q2 S) O7 \6 ?% o          'labels' => $labels,
1 |/ L: v2 {  R" g. ~, B; y% D          'public' => true,: Q) \' V' o0 H3 w) [( Z0 Z
          'has_archive' => true,
- ~/ C, I$ m, a$ A( ~! L          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
* r# v3 Z7 ~9 L& d( L          'taxonomies' => array('category', 'post_tag'),
% ]. q' C  m0 ^          'menu_icon' => 'dashicons-megaphone',3 `9 _, m. S6 ]% K7 c
          'menu_position' => 5,: {1 ^8 w! I* q. t. z
          'rewrite' => array('slug' => 'site-wide-notices')
8 E4 s, x! W' o+ B      );
# B5 ?  k% b- r
  j7 [5 i0 ?1 \) w: a' @5 }$ R      register_post_type('site-wide-notices', $args);
- O" F8 f- _8 [3 F7 z   }  ]* R9 K0 f2 p: a: N5 Q0 _8 [" M
   ```
" E# y4 U& q0 x' v
$ G! C$ k3 S0 {) c8 N   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。* D5 e! G) c/ Y0 r$ y9 C
  s' L( P+ x  j& g
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
% K6 ]7 d+ ^7 q( y5 I! f2 u  s0 v# G) l4 ^
   ```
; A1 j+ W% v. [( u! H. }( e* f# C   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');1 E% ?6 B1 C/ r
   function add_site_wide_notices_boxes() {
) w8 F2 o9 g' `0 O      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');* G4 m& ~! D3 @! @0 d
   }: R- g9 b0 J1 K$ B# S' g/ L. k

, R8 S0 ?3 x* e5 }4 o# ^- b# s% z   function notice_details_meta_box($post) {
1 {, y' y8 k( Y- \* _9 f      wp_nonce_field(basename(__FILE__), 'notices_nonce');6 c* _# T+ M4 O  Q$ e
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
0 f& V5 C% ]6 K& D" a- I      $notice_content = get_post_meta($post->ID, 'notice_content', true);
/ m2 L' T- m! F" V1 B* m      ?>
6 L; g" H& m8 R3 k      <p>
5 }6 Z5 B  u) E6 u" T; j3 ^          <label for="notice-title">Notice Title</label><br>
3 n- J6 A. T& b/ E: W$ t          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
& B* ?& |( F% d4 z( E8 T      </p>1 ?8 B: P/ ^4 O" @; d
      <p>
6 b, w2 J, a9 s" {' C8 n          <label for="notice-content">Notice Content</label><br>
$ k8 w8 c7 A( [; c& H  U# U9 l          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>4 ?& h4 o: @3 Z  }/ I- J* \
      </p>: i) O# ?% i4 Y; R8 e) T
      <?php
2 I% x' |' a4 h; E/ Z& k* a  t/ ]   }& w/ \3 N+ n/ J
- Z) ], m# V. J1 {; ]  [$ ~. D3 ?
   add_action('save_post', 'save_site_wide_notice_meta_box');% Q; i9 l3 ]) z- g4 G/ I
   function save_site_wide_notice_meta_box($post_id) {
4 S4 ^% V3 {8 K0 M      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))' `" l! t. R; D" n6 j/ L
         return;2 g8 P& l& M& d( E
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)- w) l1 E/ c! G, l" l0 {2 J
         return;' Y2 B  i3 _4 F" B) o
7 H7 n  O8 u9 }) g1 J7 S, F
      if (isset($_POST['notice_title'])) {
' S" i) n0 o! w9 ]# p1 O& T          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
0 S2 [& Y- A& c      }
1 L& |# d* b8 j$ I8 q" Y& o* r  `9 K      if (isset($_POST['notice_content'])) {; j& F) [( a2 q; x# a3 T
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));8 [. l0 `: K0 c* d  p/ z0 R
      }
7 f0 D% {4 B/ j' {   }% D/ u' J* B9 C
   ```
# q6 t. Q1 F" X* ], F9 h* {1 t" r8 K% q! X
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。6 E; c: x. ^1 o5 _# B% ?/ u
2 d* P! A. V2 }5 M: g7 o, F9 V5 b
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:! @0 X+ f8 u5 E. I$ o) [) _2 D' O

% f  j3 s+ i6 e0 U8 e7 x   ```
7 ^8 f' {  T/ l   $args = array(1 \- @! K- n, e6 r* ~
      'post_type' => 'site-wide-notices',
  Q  @$ i. [$ P5 _+ ?      'posts_per_page' => 3,: J; Y3 p2 n4 I: m( {' A* B
      'order' => 'DESC',
. y0 h3 x3 [9 x9 N# I/ E9 i2 C& m6 u      'orderby' => 'date'. A, e# }5 U0 k; n5 F
   );
, N* E  E* b, c$ F5 ?" s& {: y$ o   $query = new WP_Query($args);
( n; X4 u6 X1 Z5 O6 F' x   if ($query->have_posts()) :& {; [+ g8 L% f
      while ($query->have_posts()) : $query->the_post(); ?>
; m0 n, L; T  Y3 `3 m5 ~          <div class="notice">
4 g% @2 V/ M# Z6 F+ a              <h3><?php the_title(); ?></h3>
+ N9 d- ?5 g4 e7 w              <div class="notice-content"><?php the_content(); ?></div>/ _! P2 ?8 K2 U7 f6 D
          </div>
' V5 q% g! E: ]4 Z/ T) K      <?php endwhile;0 H4 F, r" N! \7 v, C
      wp_reset_postdata();6 S6 \8 ~/ H8 c& L- V) B  d
   endif;7 w7 o. A; I0 i3 R4 L3 ^4 o$ q
   ```' D0 a0 W4 F' a6 j8 B

7 `( E# k2 _1 ~8 \4 c   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|通达产控投资 ( 粤ICP备2023021749号-1|粤公网安备 44030402006137号 )

GMT+8, 2025-11-13 03:06 , Processed in 0.077821 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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