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

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

[复制链接]

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:' I4 g( f# h" V: F& `/ k
0 K$ c$ X9 W/ c" D& Z( ]
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。- p" U- [! q' V3 Q9 B8 A1 `9 O. l

+ [( c5 v8 a5 f2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
$ b" @$ Q; [6 G1 m6 K, I  s2 L, [% X3 f. @
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。# f. b- ?/ }; `! Z
6 X: f! e5 n& l- M: y  N$ E
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
( `& ], n" S2 P& ]# }
9 p4 g. \$ [+ ?3 z1 h注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?" ]* u2 {) D& b0 N
" i9 |+ i% H5 Z. G  d
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
/ T( L' n: H# D
3 Q* G( m% B% [8 l2 j9 P1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:# t+ I! ]( W" P

# k0 _! j/ q( D+ ]   ```& O: Z+ ~- t* k# N
   add_menu_page() O' _1 d, [6 X" h" k5 Z$ b8 Z% R- h. z
       '全站公告',
( }, Y* {8 A8 e8 D       '全站公告',
, v1 F  `+ \& m       'manage_options', //需要的用户权限7 v2 ?! a5 p7 L$ z+ ^/ Y4 P
       'site-wide-notice', //后台页面的 slug
! C  U' Q) h3 ^0 c       'render_site_wide_notice_page', //用于渲染后台页面内容的函数& z' S( _6 H0 P% J$ D9 a; G
       'dashicons-megaphone', //用于显示在菜单中的图标
0 A2 p5 I$ f9 A6 X$ G: J       30 //菜单项的位置
3 E6 Q- i. e- m7 O: N5 j) J   );  x- T0 D$ Y" k6 G8 u
   ```
2 A2 v3 y* Q3 s5 t& g; U" x  g, Y  K' X8 ]
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。6 u% j$ K+ G  Y
6 Z9 }9 a6 G5 i1 K& p! X
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
$ @- o  y' a' W. L* }. Z& r; I, M5 o
. v$ H" F# R6 s( @' q. J8 Y   ```
4 L4 D1 j3 }3 u' D   function render_site_wide_notice_page() {
+ `- i* B5 c3 b- f! x' M      // 渲染后台页面内容6 S  Q& W* \& R5 G
      echo '<div class="wrap">
) `& R2 N0 `3 C, |0 p          <h2>全站公告</h2>
8 Q7 {* v) J: y9 d          <form method="post" action="">
8 v8 S( r. `4 ?9 a' v9 `2 v  U              <label for="title">公告标题:</label>
' E7 ^5 M3 {8 Y+ q  {              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>% @9 T5 T# `1 Y  J: E* \: ~* `
              <label for="content">公告内容:</label>6 L# O; }+ X, T$ `2 y4 i
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
# j# F5 f% U1 v6 _$ H              <input type="submit" name="submit" value="保存设置">
* y9 `4 r, a& l' q. R; k. P          </form>
' f; T* r: K/ Z! v2 D# f8 T2 }      </div>';
. j) I+ K9 A: C. ^3 b* t+ ~/ T+ W7 K
      // 处理表单数据3 @- H9 @: ?& X2 F5 {3 y, ^
      if (isset($_POST['submit'])) {
5 J- _* ^* P! @( [. |% ?          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
0 Y; l3 Q* c9 Y0 k9 B& V, ?( F* J          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
1 k2 D9 p8 w3 \* |4 W7 S      }
2 _4 j) u: E7 f2 P# H7 ]% _   }# ~$ x$ \. Q) L0 g9 ~1 J) w5 R
   ```
3 j2 b4 G- N& @0 l/ G) ]8 m8 H4 k$ F  W2 _, f
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
. Y' u1 q4 z/ K. a- e' f
7 e# W' h, N7 |, D9 L$ e3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:/ F9 ^% @' c' z9 e# \- F% {7 J4 f

  q8 H7 J- `$ P; I3 L+ C- i   ```
( T# K7 u1 m1 p8 F+ Z0 l   <?php
: S1 Y2 I9 j! ?7 W7 L   $site_wide_notice_title = get_option('site_wide_notice_title');
: \) C6 y( p# c* i   $site_wide_notice_content = get_option('site_wide_notice_content');
& g8 {# F/ _/ u" ]! A6 L   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
2 i8 j+ q) s5 I, H. S  j+ ^       echo '<div class="site-wide-notice">';& I3 a# r( r7 X% h. ?
       if (!empty($site_wide_notice_title)) {0 n. c( \* R  z  W* O/ a* O
           echo '<h3>'.$site_wide_notice_title.'</h3>';2 c  i( \& i% o+ z% z
       }
$ _2 i+ I6 W  H# R: q% d       if (!empty($site_wide_notice_content)) {/ C3 `3 l1 @# U5 c- C* i* V4 h2 }
           echo '<p>'.$site_wide_notice_content.'</p>';8 _+ g! d2 ?) [( V& R- m/ F  \0 A
       }$ v; H; j0 g1 f2 g
       echo '</div>';9 L  f" I# j6 Z1 Z+ v5 i% u+ v( t
   }
3 G! H3 a) F7 L. {   ?>- |4 ~) j: {6 K# E9 n& o  `
   ```7 T) W; u9 O' A

5 S% W7 R3 {! c" |   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。& ?* K& r( L# b+ c6 u

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

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
" h9 e$ ?* m9 [4 N5 J# D2 b- Q, k9 F* T) D* r" y/ y
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:. x/ r' a) f% y0 \4 W7 {. a$ c" ?9 ~8 A
5 c8 b$ C# u% t. E$ }. J" F3 \
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
- x& S, p7 c4 s7 b0 n' X2 v
2 ?3 {7 J$ H% V( r5 R```
3 `* s6 B0 G$ k3 D! t# v7 Xfunction create_custom_post_type() {% L3 d( j6 ?) s3 u# Y
    $args = array(9 r6 Q- G% B: Z6 s5 E% w4 X5 d+ d
        'labels' => array(" K: o3 [2 Y9 z; _2 m& [0 C8 v% v5 y
            'name' => '公告',
* R  v0 f& O* D3 u            'singular_name' => '公告'
! U, s9 E4 s8 p( @$ F        ),' V$ G/ D/ E. e/ X3 k# M
        'public' => true,! k! K+ C& H. r3 Z- y
        'has_archive' => true,' ^# T- A  I- E
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),2 @/ A- O- [2 o7 K
        'taxonomies' => array('category', 'post_tag'),! D# }. e, ^4 u+ S
        'menu_icon' => 'dashicons-megaphone',; }" ?/ ~2 W+ `" l  a" B/ c9 q
        'menu_position' => 5,
" J( ?7 C; l) V, {" t        'rewrite' => array('slug' => 'site-wide-notices')
/ M0 c. `1 f$ W) K/ Q; g    );4 P/ g. o. c: L% @$ `; ^' z
    register_post_type('site-wide-notices', $args);& C! q1 c; {$ g: P0 G) L) I4 \7 Z
}
2 u; K& _8 W. X; ]9 T: |$ {' I, E, Jadd_action('init', 'create_custom_post_type');
+ T4 m3 S, {( Y9 B  G```( {$ x0 V0 V- y  u1 ~) h, x- ^! }/ ]

, w4 @" W8 _7 P3 g  B* J% O在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。+ C! o+ z* r' C4 j6 y0 n
2 W  Z7 }2 p" }9 T
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
( q7 b/ E( ?: q; C; i, ~: a8 B" }1 q* r* I$ l
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
; R% a! }) k5 q" D" H8 O+ {$ H9 E6 @: x$ j
```6 a; D  i) r! @- d: Z, X
$args = array(
0 S% H/ q% f$ q. u1 {    'posts_per_page' => 3, // 显示的公告数量
: F4 p3 E! `3 d" r; O    'post_type' => 'site-wide-notices', // 公告文章类型
4 Y. R# F5 s( i  I6 b5 W    'post_status' => 'publish', // 公告状态
3 `$ U' E% ?2 Y& o: y" e9 V    'order' => 'DESC' // 排序方式
+ _3 X# ~8 d+ m, N; D5 }5 c& p  C, X);/ l/ b& t) g+ }6 E- S- z

& `/ d7 q: B$ j1 u$notices = new WP_Query($args);) p3 E2 E) Z$ z1 T
if ($notices->have_posts()) :
" L- J4 c1 F3 Y+ x1 c    while ($notices->have_posts()) : $notices->the_post(); ?>! J7 A$ S/ L' X' Y+ E
        <div class="notice">
+ F: h1 b2 ^# p( k            <h3><?php the_title(); ?></h3>
- T$ e1 j& w4 x7 J            <div class="notice-content"><?php the_content(); ?></div>
: y9 X9 z, {, O3 z! A2 k! d5 ^/ F2 }) ^        </div>$ f2 J( o) D: u% L' d4 u
    <?php endwhile;+ ^/ b, ]8 K# `! \
else :
; f; n! B1 J6 \% b/ g3 b$ I    echo "暂无公告";- B5 y  }3 N8 L. s
endif;
" s+ H, I$ q2 L7 q; \* V6 Nwp_reset_query();' k: v- F! X% j8 `0 x8 [3 X
```, L  n8 |. s! J3 P7 g& u

& _7 e  S0 d. q4 {) j0 j这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。1 [6 v! d, E& ?# E" F" w! ?2 s

& E2 X; z% P3 c8 {  R以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
. N0 A& Q! u: g" f8 R  ?& w
# j. H+ y$ N6 [; Y" u如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。4 e7 L! K' s9 n
. C, F0 d+ F& x
以下是创建自定义插件的步骤:' H+ F4 x; L4 q* q" l4 q, E
6 g" \5 }' y% S+ b/ b% ?7 [' P* b
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
: W8 x* ^# Q- J- ?5 v9 b
/ M7 V1 O3 _( J+ s   ```
# V& c* ~% c+ v8 P2 v" o8 q- Y   <?php8 d; K5 I2 ^7 K& I* q# n
   /*) E' B; a) E. R! G) z" x- o
   Plugin Name: Site Wide Notices Plugin
5 i2 \$ z$ x& Q9 \   Description: Adds a new custom post type for site-wide notices./ H8 B3 T( W7 e
   Version: 1.05 f) t; m$ u" U( M
   Author: Your Name% I& m! z" F( a# d+ T
   Author URI: http://example.com
7 q  Y4 a, Q; f# @! J   */
9 m- {* \: k8 _8 e7 ^# F- [6 t" a- S! W4 b8 U$ q7 u  L3 ?
   // Add plugin code here...
, _- {7 \/ x/ B: o1 j# k0 b   ```
" L2 U6 I& S! y- v: ]
: g2 m3 v7 W- w   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。3 i+ z$ l+ d( r# y; D

+ J* I+ P& l  w: A2 r2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:& `* f, ]% ?/ @9 \; A& R
8 w- h' [, l/ h. U4 K2 m* M6 M
   ```
/ G. z0 c  P: L5 y. k' t& F! B: {   add_action('init', 'create_custom_post_type');
1 {9 W4 F5 ^' `$ B   function create_custom_post_type() {. b* P5 M, z) a- ~% t
      $labels = array(9 c' K2 D" [, W9 k% L! a" d. ^0 R# |
          'name' => 'Site Wide Notices',; @7 I+ ~* q+ a. |5 M/ J
          'singular_name' => 'Site Wide Notice',
. [  @3 \% t0 C* e0 c6 d: `4 |# G          'add_new' => 'Add New',
8 X- Z, j/ g4 `          'add_new_item' => 'Add New Site Wide Notice',
; F1 y5 ?4 ?9 E, t9 }3 N          'edit_item' => 'Edit Site Wide Notice',
1 U- w/ b/ `* [3 `          'new_item' => 'New Site Wide Notice',/ c, s7 g3 E2 |
          'view_item' => 'View Site Wide Notice',
: e$ Y" F! _2 o. ?- h  a          'search_items' => 'Search Site Wide Notices',
! ^$ n& H/ B+ n+ F* f1 O$ Q          'not_found' => 'No site-wide notices found',8 R: ~3 c& Q& ]- q) ?4 A" d+ [9 r8 x
          'not_found_in_trash' => 'No site-wide notices found in trash'
0 \* y* }- d- ?0 b, d5 [      );
" n3 I2 z& G( f3 u/ ^1 a6 W0 T
2 q# N1 I- B4 h; m      $args = array(
& n+ c" _* M, ?2 @1 N          'labels' => $labels,0 d& J2 o' N/ ?$ X2 t/ X% ^. i5 I* L/ i
          'public' => true,
+ @3 R) F, a& D5 a9 u0 t          'has_archive' => true,
3 T( q3 Q* ?" K5 N2 |) y: @          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
; h( j$ K* y3 l7 q9 |9 P6 x          'taxonomies' => array('category', 'post_tag'),  f$ b( T7 D/ ]) n
          'menu_icon' => 'dashicons-megaphone',7 F, m2 \2 g* h
          'menu_position' => 5,
+ A, C2 s9 G0 f' |2 X: i2 b) @          'rewrite' => array('slug' => 'site-wide-notices')
  m* U2 Q* c4 }6 b+ I5 ^      );
1 |( o. ~3 j8 e/ T9 j
9 ?2 n+ }5 j# ]  Q+ R  p      register_post_type('site-wide-notices', $args);+ p; t( q& Y% X  C% v: e" V
   }& e) c4 j. F9 I+ D4 H
   ```
9 |, r7 d. F$ v$ D+ b. B1 A' T) z
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
  ~( i3 n7 j( E) r; p1 q1 j; i7 H
: s+ O3 E- U2 o1 h" D; J3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:0 f# l! i. D6 `& ~+ F
3 N6 T  T3 e+ z
   ```
, I- ?/ b5 z+ e0 ?+ D- C! ?   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');  T5 ^+ X1 O9 C9 l
   function add_site_wide_notices_boxes() {
; j  n. D+ `4 u2 \& a/ T7 F      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');1 ~& ]8 I: Y! m, l- C
   }
+ c+ K& l$ m1 J) v, G  M! N# k) N) Q/ k/ Y
   function notice_details_meta_box($post) {& F! m" K1 P3 l* q
      wp_nonce_field(basename(__FILE__), 'notices_nonce');6 [9 z2 E  C5 f+ O
      $notice_title = get_post_meta($post->ID, 'notice_title', true);+ M, V6 V7 d* u2 i# S; ~2 {
      $notice_content = get_post_meta($post->ID, 'notice_content', true);7 n2 ?, N# b% p, j+ ~. H
      ?>
5 O9 n3 U5 ]9 y  g3 L1 @' U. I      <p>8 K4 _6 o- k  m$ K  `7 j. l4 O' F
          <label for="notice-title">Notice Title</label><br>
3 O. f" Q( h+ p+ @# b# A: }          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
4 w$ y" G) U+ N$ s. _( V      </p>5 ~; n3 @) u% O2 c" |
      <p># R+ ], }2 v% j% W
          <label for="notice-content">Notice Content</label><br>
& N( U$ _' Y0 Y0 b. q; j          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
& D. G: x2 `, c9 t      </p>4 M! h+ R# @6 q+ R% O
      <?php% S6 J8 m* r0 ^# ?$ d; b
   }
+ @4 C2 V# ?2 k- R" \4 o; d, k5 z- ]$ E+ O6 e; x
   add_action('save_post', 'save_site_wide_notice_meta_box');6 k1 |" D) T! i2 N5 k/ n/ y
   function save_site_wide_notice_meta_box($post_id) {
1 ^7 J9 }- ^, o, W& q5 P4 R1 [# [  h$ `      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))# U0 D% B6 m% A6 s
         return;
5 p8 G& a1 I! c% @! G      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
, U% Y6 ?! l- ~0 Y- c         return;
, o! R( A3 `4 n: ]- d
5 t+ u1 b, q% {) `( ~( R      if (isset($_POST['notice_title'])) {
, F1 k( _5 m1 O( }* l          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));+ A1 ]* T! O1 j2 d0 @) w) \
      }& O' y, Q# C$ h
      if (isset($_POST['notice_content'])) {# k1 u/ C* R9 z0 i5 r& b
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
/ n# a. I- v( V; G      }
8 s  O% H: j. c+ j7 L4 u" n  v) l* u   }" F. F3 ^& b; R& ]' F+ K5 h; l
   ```' f; w7 a3 n) n: W
  g( k  t, ~; i% g# s# q
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。/ G* o' Q: D6 ^6 E. r

7 [& c! Z) C2 w% d8 p1 t4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
3 F9 Z# x% a2 I1 Y% _+ v2 z  b) S2 O: ^3 z' }, g% d
   ```; R5 ?, f" Q" h
   $args = array(
; @4 }" [# A! b      'post_type' => 'site-wide-notices',
' W8 q8 Z% j. p+ e' u" {; M      'posts_per_page' => 3,
0 g( `5 g, w, _4 h6 }9 ^      'order' => 'DESC',
! k) b. l2 Y" d5 e# @4 o      'orderby' => 'date'+ D( M' \7 Y! J8 d
   );
5 j7 y  D1 p$ m/ c, `: U" P   $query = new WP_Query($args);6 U& ]% Z3 e! j$ x
   if ($query->have_posts()) :3 h( L2 Q+ ]! O) a- ^' x" Y
      while ($query->have_posts()) : $query->the_post(); ?>0 x& a3 Q' C* S  V- k4 k# j
          <div class="notice">, Z0 D9 J' ^: M" ^
              <h3><?php the_title(); ?></h3>$ I# q6 H) L8 ^$ n; d
              <div class="notice-content"><?php the_content(); ?></div># |" c2 }1 A; A8 D9 {5 A
          </div>
/ |' i9 M( r; e$ V! l9 m+ Z      <?php endwhile;
3 h* r& P* l" [' b) l& L. d% V      wp_reset_postdata();4 b! K: f3 ?! \# R: \! L- k, V
   endif;+ D" g" n0 S: x; k6 @
   ```$ s% ~3 |% h6 N" ^

9 X+ T2 v- [- Q2 V! e   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-16 19:27 , Processed in 0.014856 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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