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

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

[复制链接]

334

主题

517

回帖

3394

积分

管理员

积分
3394
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:- ?1 ~+ Z" ]# ?; ]5 |5 W
8 [" d! E( {& N5 d9 R
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。- [5 w/ `" k7 C) O: y( Q+ ]- A1 Q
% y% l" I  _) A* H+ ~
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。  \# u  `9 c- Y; `7 z
! n6 D' v0 Q4 M; ?) _: n
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。# W5 X- Y2 e8 k0 N4 s

" R' o1 Z3 f# w; l+ Q4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。$ ]7 z& A& y& v8 Z3 v5 y
9 }1 V$ ?" b5 v$ S  P- c
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

334

主题

517

回帖

3394

积分

管理员

积分
3394
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
% Z& X3 L( R9 `  f) b
8 B; ~7 M! v" n$ V# ^- W; F如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
& z  E  O( B- S# H5 O* e9 y2 z' d; r: \
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
, j. V$ i. s, V  @
3 e5 o& C% r6 t. N2 B   ```5 _, B, c' l3 T. G: k, ]  m
   add_menu_page(
* \' I7 h# e5 g! A       '全站公告',2 ?3 |! c" |: }8 C1 j8 K7 K" j
       '全站公告',* Q" m# O( R8 ?9 n
       'manage_options', //需要的用户权限
! Z$ Z0 P( t. `& e5 v       'site-wide-notice', //后台页面的 slug! K, w# l, f1 ?
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
9 [' _3 r1 U; R; Y' S" I       'dashicons-megaphone', //用于显示在菜单中的图标, o8 H% R4 [! `1 t( J
       30 //菜单项的位置
4 `4 }1 w- L# C) b) P   );
" w  k6 p3 S; x1 }$ x' W1 @5 x   ```
" N  F8 V+ A2 r/ y$ C$ ^* R
+ `' U2 N$ z5 w, W# K   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。8 A# a2 i9 ?1 p3 Q

0 O' O) p5 y) m# q2 V2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
, k6 U) M7 a* R6 v9 V% h( \) F+ r" B" P0 }. X  j; k
   ```
: W- a" c; F4 L  g5 L: F& `   function render_site_wide_notice_page() {' Z9 R2 v0 n& h
      // 渲染后台页面内容" W4 p9 Y" D, m2 R3 L9 U2 S
      echo '<div class="wrap">" @4 @) f$ Q! E8 o6 T$ u9 @
          <h2>全站公告</h2>5 \+ w# G8 s, j
          <form method="post" action="">  t3 [4 E( `% }
              <label for="title">公告标题:</label>& y' k+ e) C5 p. Y8 M7 m
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
0 M9 B2 G) {# [9 U% e2 \              <label for="content">公告内容:</label>/ t- J1 r1 f- j3 D0 e$ x
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>) w; K' h0 O+ a* Q$ {0 X, q9 K
              <input type="submit" name="submit" value="保存设置">
& ?/ E2 n9 e( o: U          </form>
) t) T, g" `; j- J* I2 y5 X      </div>';1 U  h9 d, u: t5 K2 z9 ?

5 R! i! Q7 }- }! H      // 处理表单数据' Q1 ]$ g; Y7 h' N' a
      if (isset($_POST['submit'])) {( X' I) x: S) ^5 ^3 r
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));1 k% a8 ~) a. s& [7 f
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));* [8 _; ?8 m/ W, F  i1 z2 {5 t
      }
# U/ Y: A# D6 M   }/ V+ \6 k) ~$ P9 H) w- L( F
   ```2 n; w, S& A4 i9 e; t7 C1 B
. C' \) T. ]- R
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
2 {$ h3 p* @+ O/ m2 y/ W3 U3 e, G/ v* |# I7 j/ }1 G: T% j+ e# q
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:: ~1 s  f6 O& s9 L1 B

9 v, u- E2 Q3 C- h$ D8 T   ```/ ~; B6 c+ U$ N9 P
   <?php1 t1 {3 P2 G0 ]
   $site_wide_notice_title = get_option('site_wide_notice_title');) X; `6 U4 a) @) [
   $site_wide_notice_content = get_option('site_wide_notice_content');
; N; r3 T, s4 _   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
4 C+ \5 C0 z& S! H       echo '<div class="site-wide-notice">';% L/ _( Z! D  P; y. o
       if (!empty($site_wide_notice_title)) {
$ L) s8 H% Q& ]2 ~6 m2 |           echo '<h3>'.$site_wide_notice_title.'</h3>';
; C" T8 z$ |  Z; f: c       }: Z$ H* c0 L, @5 ~
       if (!empty($site_wide_notice_content)) {
3 ^+ q: h6 f$ @6 L/ C- r1 A9 H           echo '<p>'.$site_wide_notice_content.'</p>';7 \5 I8 Q8 |0 B) _4 p
       }0 i/ h& U# l# i' w2 V$ c
       echo '</div>';
) T" {2 o6 X  I/ }- f: @   }& u8 B" x2 K$ L) c
   ?>
. K3 W. @# T% x: p5 h1 b% Q# @! c   ```% M0 F9 A" l# ]7 ^$ E
$ y& a. \, _) d, {# j# w' A  F
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
- W! B% O( @8 Q9 d
4 x/ [+ o# V" J8 s' g: P请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

334

主题

517

回帖

3394

积分

管理员

积分
3394
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?; e, c- u! C5 M* U* R

6 ~/ a3 `2 [  G2 B* f1 u: K3 z5 V- I您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
0 d6 m' a8 j9 ]$ }  h6 F% O$ T5 j" C, F/ E! ?
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:) L' q, q$ v" x  \& \& Z+ }: ^

2 x8 c0 s2 h3 o9 C/ B* i  Q  l& N```
7 }/ |8 {& d, e& \# u# ^function create_custom_post_type() {, k( z( ^0 O3 x: \2 r3 W
    $args = array(% f$ J: T6 Y( Z2 y* o" n
        'labels' => array(& ]8 a4 f4 A7 T* f/ F
            'name' => '公告',
1 L! D/ \. f) x1 w. D9 c            'singular_name' => '公告'5 U$ g: y/ |4 \# p! d# f
        ),8 t/ P+ k7 I1 ~4 y) U5 O- r' f- B
        'public' => true,% `! M1 s) L: n% s: s4 h- U9 R- Q
        'has_archive' => true,
: j+ p0 [9 R. h4 y        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),: N# _5 q3 A7 w' b( T
        'taxonomies' => array('category', 'post_tag'),. E- P: |/ v) E6 y+ E" c/ ^2 Y
        'menu_icon' => 'dashicons-megaphone',0 g. v$ a! [7 c$ k3 \8 G: k# T5 t
        'menu_position' => 5,2 T5 J1 j6 X7 I
        'rewrite' => array('slug' => 'site-wide-notices')
: A4 C2 e, H2 E2 G  u3 O* J    );$ U* r$ E7 x! @% q7 F
    register_post_type('site-wide-notices', $args);) Q/ x0 W$ C, l
}
5 ~" A$ ?$ X* a( [3 I7 ]8 I8 `# o9 j4 Zadd_action('init', 'create_custom_post_type');
& x# B: T2 U! q# q6 \```* I. D) t9 P' _; I' ^- l
8 a. G0 r% k/ I8 F
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。+ |! p7 o! h- {1 f. n$ c

2 C3 m# M  n+ T1 u0 d! _0 V2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
& G1 g2 |( q' s/ N5 K( y9 l3 O8 k8 c+ q8 l4 L/ Q6 v, H; G6 Y( R' ^
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:  U) |5 p; w& W; O; i. v9 N
" A: T. r4 M+ `! {- \( |; n
```
: P! H1 R& p) N) i" R8 k$args = array(' O: D  B. X: `' \( S! z$ x3 b
    'posts_per_page' => 3, // 显示的公告数量
" T7 T! h) a% ^( I" b- S    'post_type' => 'site-wide-notices', // 公告文章类型
  y+ I* g- b2 F( h9 s" X2 f% N    'post_status' => 'publish', // 公告状态  T% i  H, L! z" p6 ^- _; z
    'order' => 'DESC' // 排序方式
9 X/ _! O/ w$ t& X) U- G! `);
) H7 i% v2 P7 O# U2 X  y
# S5 [" \! P: S$ N$ u4 E$notices = new WP_Query($args);- m% p& w# H  m, |+ `) m1 s' h
if ($notices->have_posts()) :1 E, {% n) a+ i6 U
    while ($notices->have_posts()) : $notices->the_post(); ?>
5 F1 x5 u* i+ T: h# E9 M        <div class="notice">3 p" y& ]: x+ \* d* J' U3 e9 M
            <h3><?php the_title(); ?></h3>
+ B- r! ^6 a# G7 S, X$ A            <div class="notice-content"><?php the_content(); ?></div>. ?, ^2 F! Q9 \& z
        </div>
  ]9 Q" N& m2 _) p) S3 v    <?php endwhile;
# @, u/ K8 m/ s! A" [1 l4 y& Velse :9 R* K9 D# s/ a' `7 y+ q
    echo "暂无公告";- n& V, T' h; ^8 J) s9 ~
endif;
5 u, s( t9 z& T( Vwp_reset_query();0 L8 p5 c+ R) r8 k' X5 t8 j. t: w( M. l
```
- b* R2 D% X0 u9 z. |# c4 b" r0 [' `* X- y- `. F
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
( x/ P$ a% Q) S( D
& X3 x6 w2 q5 A% Z1 d  c以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

334

主题

517

回帖

3394

积分

管理员

积分
3394
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
4 N/ @' H) K8 d3 K1 i9 Q( n
6 d* K$ B9 F6 ]如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
8 h/ ]$ G: S* Z1 R& U" e  Q, A$ i! K3 k& d
以下是创建自定义插件的步骤:
+ s" R5 i8 c% D) _$ i" Z8 |0 x+ E/ Y4 V2 w9 k$ m9 w
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
9 }$ k7 M) y$ P5 c) b
& v& O! K  s) W# ^! p6 N7 R   ```; \! e5 `  b4 V% T+ D+ Z
   <?php7 R' T  h/ D" |# K4 e4 q  d# R& b
   /*( A/ A2 v* i2 g1 V$ i
   Plugin Name: Site Wide Notices Plugin, n) s+ N9 |7 ?& l4 Q
   Description: Adds a new custom post type for site-wide notices.
) e) s6 P: d6 Q- r& {+ X   Version: 1.0
$ J- F! {1 r( w6 f   Author: Your Name
" n* B* Z: S& G. {   Author URI: http://example.com& z7 A) l4 H. b* U! D! f6 T' t
   */
3 M- U- B0 X( d& [( _$ @
; N# W9 }! Z9 }2 d3 {   // Add plugin code here...
" e( L9 M$ U: o! N& k   ```* j8 u: f. D  U+ G
, [( j% b& `+ @+ d- n  I
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。, L2 A, S2 T$ |3 ~; }8 y3 c1 ?
+ @3 @$ z. ]' s3 v  ~) {* k- Z
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
$ Q' J2 e- v. B* f9 Y& X9 z% }8 O! S2 c# M: P
   ```
4 ~, `. D- s& |+ E# J( x1 ~4 ~* z   add_action('init', 'create_custom_post_type');3 P" l0 |2 P$ e  e6 G. s8 Z$ y
   function create_custom_post_type() {
! h& q7 K" @" u' P/ s5 b% F      $labels = array(( Z5 M; C! U2 a- F3 ]; ]) S
          'name' => 'Site Wide Notices',' Z  m/ S" G7 C0 ?) t# ?% R! s
          'singular_name' => 'Site Wide Notice',* {6 _4 H7 C$ v
          'add_new' => 'Add New',2 s' Q3 h6 `2 a# j# R
          'add_new_item' => 'Add New Site Wide Notice',
+ }% V# E3 B' z/ |1 X0 k! y! i4 E          'edit_item' => 'Edit Site Wide Notice',+ Q$ y* u8 q4 K7 t+ R$ x! |1 ?
          'new_item' => 'New Site Wide Notice',
$ @7 N6 o3 G8 X6 i5 e3 M. p          'view_item' => 'View Site Wide Notice',' n- b( f$ p) ^* c+ K- i
          'search_items' => 'Search Site Wide Notices',& a/ v' Y4 I1 B2 \* x6 A/ v% g
          'not_found' => 'No site-wide notices found',( q/ ~' |4 V' ]0 @& b/ G
          'not_found_in_trash' => 'No site-wide notices found in trash'
* J! g9 R# d% G/ x( _      );! g: Z, l  Q) h# ^0 q! u0 e  v: X' K

: q! u' ?' s' d" X+ O( C      $args = array(+ I) _1 d6 i7 S4 Z& i2 S3 j+ R2 W& U
          'labels' => $labels,) U8 G! {+ v# e7 C! a# G8 T+ ?# z4 {
          'public' => true,& d* A" D( W8 W# K/ }3 g
          'has_archive' => true,7 U) {0 w! f: s: _) V* G9 {9 @5 U
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
$ p: ^, H5 v9 A. _$ w9 W          'taxonomies' => array('category', 'post_tag'),
# x$ h: l) k& Y. J! Q( P          'menu_icon' => 'dashicons-megaphone',6 e: R& ^0 ]! V) R
          'menu_position' => 5,
% k8 w/ t4 S5 S/ P# W+ |. P          'rewrite' => array('slug' => 'site-wide-notices')
8 E  T# P# V3 j( C- V% V9 H2 @& G      );
# a# U3 Z5 i9 N0 n7 Q; @
8 k/ ~9 l4 P" s2 c4 l      register_post_type('site-wide-notices', $args);
6 |0 K: X# X/ b7 ~# y7 S4 v  m   }
& |& e! Z! ~3 i2 {, n$ j3 K   ```
& l- c( i) l- C& Z6 X* x7 R9 Z0 h8 u( I- a- [2 U
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。9 z2 }+ }  b, \# n7 ?

( x4 K! K4 [% B0 m4 E. Y3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
# f- [- b& e1 S2 \* y  [3 J5 B) V( R6 V/ a
   ```, Z! K+ `% w0 J
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
, G% I: i* q. I: y   function add_site_wide_notices_boxes() {
. B# D' J! r$ x1 K      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
; K, Q" x/ K* n5 Q   }
  a1 l6 C9 e* Z" \" d" D) ]
  `) W& K6 ~4 {" K& y! z   function notice_details_meta_box($post) {" l/ c3 \7 h1 ?
      wp_nonce_field(basename(__FILE__), 'notices_nonce');3 L/ x5 y# \2 X2 Q; w
      $notice_title = get_post_meta($post->ID, 'notice_title', true);; T- k0 ]3 ~8 x- z+ z3 J
      $notice_content = get_post_meta($post->ID, 'notice_content', true);; w$ l2 [, R" i' Z6 `. x
      ?>; A& B/ R1 x) ]. ~& ~- Y4 [
      <p>
/ o' U9 t0 t# P; ?! s& N          <label for="notice-title">Notice Title</label><br>
4 P& R- y: c' _5 |/ H          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">- P; w7 d2 A( j# Y( t
      </p>. o: q% L5 R3 r9 g  k
      <p>, R7 [2 P) k: f" Y$ T9 y9 [
          <label for="notice-content">Notice Content</label><br>8 ~  v5 x2 k2 f% Y  E
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
' |7 B: D" _  z      </p>* H' n. `  j6 O) ~. C
      <?php7 d7 d" R# W  j& k
   }8 y' D! A; u% N  N. ?
3 z1 [4 N/ z1 N. w5 ^* p
   add_action('save_post', 'save_site_wide_notice_meta_box');
: t$ Y7 U# s/ {' \& @   function save_site_wide_notice_meta_box($post_id) {
4 L3 W' ^( b: r8 v$ C5 W. M+ V      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
2 ^6 B- L) ~) g* T) _3 K4 w' n         return;
5 X1 E8 Y8 Z% I# [      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE). n1 ]9 f/ Z3 X+ O! l* ?, q: G
         return;& ~1 Z* L8 X# J7 T
' k* n) z7 \) P
      if (isset($_POST['notice_title'])) {# ]; ~: V& e% @; J0 F* v
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));  a5 k, [) E4 r8 A7 l: m7 S5 W
      }  O/ Q; i# a! m! J# d
      if (isset($_POST['notice_content'])) {
' L3 N' B1 c, E8 h. o8 L8 h2 ^+ j          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
) s) O/ l. S1 ^% t% v* S      }/ J. `3 I  x( a7 i! K
   }- L3 ?, q: h3 b
   ```
9 b) ]; u* }, J) S( M
' Y* [8 ?) |/ r" s   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。* U! h2 z* r# @. U# T" o6 w' J
, i0 U. N7 K" v: S1 `$ s8 @3 M5 J
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
/ d% G) @( S2 Z5 e! A
# f4 T& @4 b' |3 |   ```% ^+ Y5 `6 R+ w) A  W7 A; f
   $args = array(
* N$ n, \1 ]7 a% ~' u2 q. i      'post_type' => 'site-wide-notices',
) \) ~/ x) X1 M" t      'posts_per_page' => 3,
% F" }/ Q6 y1 ?+ l      'order' => 'DESC',5 u6 b( S% X# |
      'orderby' => 'date'. \/ o; _. p( C2 I% D# `& ?. c: O* q
   );
7 x( D! U+ n3 F% E9 q   $query = new WP_Query($args);
: H. }7 p8 S4 o$ H3 Y1 {   if ($query->have_posts()) :
" b( Q* E' _$ z  S- I5 Q      while ($query->have_posts()) : $query->the_post(); ?>6 B) C- Y2 g1 M% K' ]
          <div class="notice">4 P3 A( L" h  s7 |7 {% X
              <h3><?php the_title(); ?></h3>5 Y* i8 h  g1 ]5 }
              <div class="notice-content"><?php the_content(); ?></div>
$ M# ^  p: D/ [/ l9 h          </div>
/ D3 T# m" ~+ p% q( t      <?php endwhile;# ~' L, y' v5 ^1 g" r" J3 C
      wp_reset_postdata();. Y, h7 g* `8 m& Z/ T* y
   endif;
) @% E; o  t4 @! I   ```* O: h2 R( G/ i5 n2 L$ `! t( w

0 d" n" Y3 W: {: m  P   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 16:07 , Processed in 0.084942 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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