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

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

[复制链接]

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:& O+ g' o, x% l) \. g9 z3 T

8 k" ~; k, W$ P, L# u1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。. |  n6 d; t4 r# S" N
1 z1 m( K1 Z5 u8 V
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
7 a6 g+ C- @' z% ^
2 e, K& t& v. w: w3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。! L- |* u* E) k4 h. N; n3 x, X

+ T4 `: u" o8 L& u  I/ b5 t4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。6 v6 c+ k9 g+ N5 t; H: I

- _! \, [9 V6 x! P4 u' {! r0 Z注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?' j2 [2 O8 g" u

9 k1 `- N4 `& U/ B如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:' b8 f7 `$ a. x: I5 T

+ l6 q0 @7 P2 }# U+ f1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
- G4 r4 h: `7 v0 T: K" m" P& O8 z6 A( {& R2 {
   ```+ v# }' W# I2 l% f$ |6 t
   add_menu_page(
/ F6 f% _  Z8 p2 W" h       '全站公告',/ |- F2 N4 d& u: {/ m1 @# Q( [
       '全站公告',
' [' N& M8 l. X6 c; Y1 J       'manage_options', //需要的用户权限9 E7 W+ ]# J% H0 C' ]2 {2 E
       'site-wide-notice', //后台页面的 slug
- }9 ?$ q1 z/ F       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
% p! u4 ^' {+ C/ H, F) q; m" T( t       'dashicons-megaphone', //用于显示在菜单中的图标) I0 {1 D. M& ]8 R+ V
       30 //菜单项的位置" r& u/ A( n; E) ~5 e! x
   );- ?* E, O% ]& Q& d& R8 q
   ```3 e$ O" ]9 W1 q5 M1 s
$ ~' d) H- k6 _0 K3 I
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。9 ]6 \0 ?: N5 n8 b+ J! J
0 o$ I, a3 a" V- [5 t
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
1 H* {! J% B5 {" n# B. I& i
7 |  R: M6 K9 M3 E   ```. h0 x; G- Y# Z3 O8 p" X0 H- m
   function render_site_wide_notice_page() {% h6 w1 U/ S, d6 l! l
      // 渲染后台页面内容, ?% u, B1 f) {9 V! a9 ?
      echo '<div class="wrap">+ F* }7 W3 A; @+ ~# u
          <h2>全站公告</h2>( r) F' `2 C0 J" h* b  \
          <form method="post" action="">
) j8 z' S8 e- x% w) |7 A( b" y              <label for="title">公告标题:</label>
; Z* U' z! U" ^4 n              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>7 R2 X9 X  ~4 t" K# n
              <label for="content">公告内容:</label>
% o2 f/ _! r0 Z3 t  u! \/ w              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>1 K0 f' @! |* ~7 V  W: B4 r( Y
              <input type="submit" name="submit" value="保存设置">
9 Z- b2 S4 ^( j* i- G1 ]          </form>
9 l( K3 S0 y8 `% ~7 J; p9 ~* x      </div>';1 V- y+ ]! `: C, P( Q; W1 \
- b7 J6 E& k. Z/ R
      // 处理表单数据
  E9 q: h3 O4 r3 D7 i      if (isset($_POST['submit'])) {3 Q' P3 y6 ~- h* l" ?0 p
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));3 G( P1 l' F& J( L
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
4 n0 t0 C" ?( t      }5 m! Q0 S1 H' s1 C4 T
   }  N5 w& N% H- k
   ```
! g: Z" D% o% ~4 {8 P/ o+ v; d/ Z, Z' @; f3 S
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
) v4 Y3 x) d) ?& Y9 ], X# {" {: B- Q& F+ Q
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
2 ]5 ^* d: D2 G% O% M
. X* D% o- u4 ?9 J   ```7 L$ M& D6 n1 S4 Y3 u( }% w  ?
   <?php
3 |8 u3 X# h7 ~* Z3 M+ s   $site_wide_notice_title = get_option('site_wide_notice_title');) O) Y2 M( r7 X+ Y" H* C
   $site_wide_notice_content = get_option('site_wide_notice_content');& p  T& R9 @4 G! V2 ^
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
" `% C, g' ~7 O5 f) v0 ]# f3 t       echo '<div class="site-wide-notice">';/ V9 Q4 m- ]/ s: i
       if (!empty($site_wide_notice_title)) {
1 U( y- `; V5 p5 S7 m5 E           echo '<h3>'.$site_wide_notice_title.'</h3>';: d; o1 _' R  m& n7 T
       }+ I4 d- q" r! D8 H: Q- m
       if (!empty($site_wide_notice_content)) {1 Q! ]7 Q& s2 Y
           echo '<p>'.$site_wide_notice_content.'</p>';. g  S9 P  S  M" E. C/ C2 m
       }7 f" w4 U8 y& B
       echo '</div>';
7 W+ D: X, @, r   }9 g3 z! D! r& S* a; T1 x
   ?>) ^5 w# u$ X8 P1 k
   ```1 V2 l/ ]* j" w

! c3 o# X$ U( o+ z   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。9 l7 g" C+ F" J3 a( x" l8 ?* f

0 ~+ _7 \5 P4 v( E# V# }  c1 e* ~请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
% T' L- c0 T9 w, w$ C# z8 P2 |% E+ P; p6 \. r
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:. ~; ^4 n" K* ~; o) g8 w* f

4 F9 L( f  W3 s5 S1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
5 a, r7 A. K* l% `& V* q
; ?4 z  a# O5 @```* a* w* i1 E5 n% M! R' `
function create_custom_post_type() {  T2 ]% u& e) U# o
    $args = array(' U  h: x% [* G( k& C
        'labels' => array(0 Z2 \) U3 o8 s7 B! w
            'name' => '公告',
0 I! L3 U6 y( }/ W5 _7 m/ l% ~0 Z            'singular_name' => '公告', \8 }% ?1 d+ A7 o+ ^
        ),
5 I3 H! i7 x. z' P! l        'public' => true,8 _* t: Y0 J" `" t7 u4 M! r
        'has_archive' => true,
' x, M; {4 Q- C2 X  v0 @0 |        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),5 d' U2 b. n' g& X" D7 D* Q
        'taxonomies' => array('category', 'post_tag'),# q: s( `) `& ?6 s* s
        'menu_icon' => 'dashicons-megaphone',! d' c1 o4 }" h: w1 s
        'menu_position' => 5,
3 _+ ~( g( @& C# U( w  R: {        'rewrite' => array('slug' => 'site-wide-notices')
6 D* X: l* X4 X& ?& y4 X; a6 O7 `    );
8 b. y. j4 D. x' A+ j    register_post_type('site-wide-notices', $args);8 ~; p+ P& s# t" ?) }$ A
}  X6 }) r3 E1 s$ |  v- e6 s' d
add_action('init', 'create_custom_post_type');6 S* A6 z8 D3 P7 h: f8 j  J5 o5 M/ H# z
```, Q# k! K- M3 H

# v; C  t4 n, Y: b! p在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。, T# q/ n! Z, Q1 n4 S
% o+ y% t1 c9 u& E  w
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。! l  K1 ^2 ~0 A+ ~. ^/ G
4 e" [% ?6 ^: T2 o, z0 V9 Y+ u3 t
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:3 d% k: Y1 M" `
" [) e) u% h& w/ U
```
; k( Q) X- l! C+ b' b1 K: V! U$args = array(8 M( Y$ I% p( g# x$ o$ N3 A$ b  _% ?
    'posts_per_page' => 3, // 显示的公告数量
4 W/ t' L. S. C/ K# H! V    'post_type' => 'site-wide-notices', // 公告文章类型
) Q; x+ V9 u$ Z* W( C4 i2 \    'post_status' => 'publish', // 公告状态9 K' a$ g9 N7 X4 r2 k* C- u
    'order' => 'DESC' // 排序方式
: D' `% \# E! T6 X);
  @2 `6 |, @" }! E# F1 P
0 P! Y' }6 _) w" X$notices = new WP_Query($args);
4 e" j8 O* n7 W! O3 rif ($notices->have_posts()) :
8 A$ P* T% b$ m6 P* B    while ($notices->have_posts()) : $notices->the_post(); ?>
% |' ?+ O+ N6 A" y) L. j        <div class="notice">
2 J3 q3 R3 D1 w. B4 W            <h3><?php the_title(); ?></h3>+ |/ m: v. P7 h  P( r3 }" x7 D
            <div class="notice-content"><?php the_content(); ?></div>6 i6 O( U  U" L1 q  T' \
        </div>
# a& L( D- ^; B' _' M' i) ~    <?php endwhile;& Q- G& z3 N: T7 m* H* j' t) g
else :$ P. R( E, f$ c# f8 k2 \5 v3 d
    echo "暂无公告";
/ |/ D3 B. H3 b$ k0 Nendif;
5 K' S9 Z4 d# G' r. H/ G3 M9 swp_reset_query();
6 Y% |: @7 Y  g" W/ q: }! l```
* c3 l$ W5 X4 ^  o* @1 W
/ c4 \0 R# J9 \- [这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。5 c2 Q! H5 ~( h+ u

: w& d5 H9 P; R6 f) b7 X" n! f以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
5 c  G4 k' a( F, E6 s1 P. |) h) p
& e9 _4 E7 t' S6 D+ T  L# R: z如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
2 ?) o, H1 U6 Z
: Q+ o5 P0 S( o! f以下是创建自定义插件的步骤:
2 T' `  I" w7 x, A- C; v
1 ]6 G! {; [" W/ m$ W1 c7 K- x1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:7 @  z# f  h- Y9 Y7 n, B

5 |; x4 I' c: o, G   ```) O$ {% Y, \7 \6 h+ _0 U3 \9 O1 x3 f
   <?php3 H8 r; m1 V5 [+ o
   /*
/ A) U$ }* H. }% E1 }   Plugin Name: Site Wide Notices Plugin
9 T* H2 L; i2 I8 P  d5 Q& T5 v( G   Description: Adds a new custom post type for site-wide notices.+ E2 ~5 }- f1 e5 S1 a7 M
   Version: 1.0
$ Q4 \- f8 m+ L& H" Y  N   Author: Your Name, b5 H. B6 d  m2 Z2 D
   Author URI: http://example.com2 g. e- P( Y$ z; Y3 n' U
   */9 T; u3 [7 p0 L! _  o2 t1 b2 I" b) I

0 }) K0 w3 T; c/ f   // Add plugin code here...
7 M1 T) Y- p* p8 a+ ~. B   ```, t; q, P" O7 D' B
) {0 j0 R' `9 x) d* H/ \
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。: l3 Y2 Q$ a& ]9 a8 ?$ X
- b* H! t, K/ Y. s3 ~! `. @* m
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
2 X' X* X/ J( c: J: ^* G% I' w) n( B; m, z8 K* v8 D
   ```
" B* B( \( c+ I" ?: N+ K2 r8 I1 v4 N   add_action('init', 'create_custom_post_type');( b4 x8 ?' V  V
   function create_custom_post_type() {! ^8 K/ F/ @( U. J8 C
      $labels = array(! e+ X  k$ L+ N( s* e/ ^5 |$ `
          'name' => 'Site Wide Notices',
! ^& G$ q9 s. j7 N4 X          'singular_name' => 'Site Wide Notice',1 t. e- k* l* Q. a) \
          'add_new' => 'Add New',* a7 H6 \3 G& c: f9 l" x) a
          'add_new_item' => 'Add New Site Wide Notice',
1 l% l2 X/ R3 l! o; O2 @          'edit_item' => 'Edit Site Wide Notice',0 J1 d. s( V  g$ q6 m$ W  W
          'new_item' => 'New Site Wide Notice',
! X2 }+ Y8 U' v; L: ^) X- c0 j          'view_item' => 'View Site Wide Notice',
6 H/ ^5 f$ w8 C4 T2 c9 z) F5 R          'search_items' => 'Search Site Wide Notices',2 a, M4 v  B7 G* u( z7 m
          'not_found' => 'No site-wide notices found',0 n6 M; M1 @4 C8 j' F
          'not_found_in_trash' => 'No site-wide notices found in trash'3 q! E/ A* v( q$ ^1 R3 L9 c( l
      );
+ D6 T6 p  }0 I) W+ \
+ J1 ~) N3 G- `6 b3 c      $args = array(% n3 I6 @# w1 c: E
          'labels' => $labels,
# m) Q  Z5 B3 |1 a1 l; q, k# J          'public' => true,
* E: _% N( l: b0 v! a3 o          'has_archive' => true,
) E0 ]" r4 S: r' I. u          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
% C; E. W: ^( f2 v: ]8 A          'taxonomies' => array('category', 'post_tag'),
) d+ \9 z& n( J: e, V1 @          'menu_icon' => 'dashicons-megaphone',
5 B$ C6 m- H9 }0 ~/ N          'menu_position' => 5,
7 d7 D/ L7 K- ?  R          'rewrite' => array('slug' => 'site-wide-notices')
6 [. b! H7 Q( T      );& ^, N! t6 m6 q! X9 d/ Q7 x; y) v% U8 R
* X+ V  x: Z" V7 J9 K5 A; D' q' w$ g
      register_post_type('site-wide-notices', $args);
8 u& u# J8 L8 l& M' i   }3 {/ o0 W1 K+ P) b0 D' Y- l' \
   ```
* d: @8 w# F& l& K9 |; y  S9 x3 e7 ^+ U" a
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。% T. b3 G1 C8 n) [1 |1 _
$ q# h9 U. q" I7 l; N& d8 S
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:5 Y) p) w1 U, _4 g

1 A8 ]! T7 p8 M3 q0 W   ```
2 H' ~! f8 |/ Q) R" _! X1 q3 r   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
  Y" V  F  |2 ]3 }( S4 Q8 \% v   function add_site_wide_notices_boxes() {/ d5 n6 h& t1 c, T
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');- ~- ?* ^; h; B0 o& _, E3 @
   }% n; H9 I" i- w$ E8 u: l
# d1 J# A8 E8 k
   function notice_details_meta_box($post) {
- s; Y0 B: [* B( q1 S" g& i7 K      wp_nonce_field(basename(__FILE__), 'notices_nonce');
' P4 P+ h$ n5 m# E+ Q+ R( v9 @6 t* |      $notice_title = get_post_meta($post->ID, 'notice_title', true);/ z* C- B6 s& D% Z$ {0 w8 M
      $notice_content = get_post_meta($post->ID, 'notice_content', true);( o" R, U" J1 m9 o, D' K
      ?>* \6 o' K. M0 C) |# {
      <p>
; J  Q8 d3 {4 F( W% w0 v8 c2 _          <label for="notice-title">Notice Title</label><br>
, L6 S8 {2 w: P4 e, H2 E0 i          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">2 D: b. y; r& r3 W9 F3 O  _& O, T
      </p>
/ F- x& J2 [7 S2 ^7 [8 Q      <p>
# s* R) h9 g1 |* t; Z          <label for="notice-content">Notice Content</label><br>9 A& w. S$ U  }1 x7 x1 D3 \
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>0 P: F" c3 {1 D7 j* W4 Y1 {/ _
      </p>5 `' t0 V" E/ g1 _* r
      <?php
; q0 Y2 h/ u2 R9 _9 X) `( e   }
0 u" \+ ^5 _. W" p
4 ~# S! P" V7 r* n- R1 W# _   add_action('save_post', 'save_site_wide_notice_meta_box');; w9 b& f- o' ?  \4 u" |
   function save_site_wide_notice_meta_box($post_id) {
( i4 q1 W9 q) ?1 {/ ?      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))3 C4 p. r) \2 T3 B2 M5 Z0 m
         return;; U! R0 _6 P9 R) l  J0 _4 w# t5 R
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
9 T4 R0 v! t% E' F, |& ]0 O* m0 x/ C         return;
$ Y, N0 ~( O: s% @3 ^: W$ _
+ t6 r3 [- D- G$ N  u. G& h2 L      if (isset($_POST['notice_title'])) {) }. F6 @0 l4 ~% o9 V9 ?0 @
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
: ?( Z/ K% N; r" `      }
2 |" z& U/ e( l      if (isset($_POST['notice_content'])) {2 N* \3 z3 o4 n, T/ q
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
+ y; q1 Z) ^: ]& n2 y: @; Z5 y      }
. |4 R# K' \' v, r5 q( X# L, a   }8 ]8 ^) ^2 X0 h- R# i
   ```3 H5 N, r, Q/ g2 s! m. R- M

# y" A" J( D6 @0 o" e9 o& y   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。. J2 j5 A8 v1 }8 Q/ m9 ?; Y+ T- q

# `3 T' R9 Z5 U! m4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:& n2 P# D3 j$ O$ Y8 ~! r; l
) m/ j0 R; E4 s: |
   ```: i6 b. A( O$ T9 ^( B' j6 g2 M
   $args = array(& [7 E! Q6 Y9 r9 ]: h, h
      'post_type' => 'site-wide-notices'," O, ^% x8 ~  C: S& d
      'posts_per_page' => 3,9 M' P3 m' o* E7 c! w' l
      'order' => 'DESC',
$ ^3 L) F7 I8 w1 ~8 W      'orderby' => 'date'; [& f) R( G( x
   );, g9 ^7 V5 b6 V' C- \6 C
   $query = new WP_Query($args);( |. `5 ~/ h* b& S+ q
   if ($query->have_posts()) :
4 f( |7 y8 }! ]3 t1 J      while ($query->have_posts()) : $query->the_post(); ?>& X  |! ]9 C7 f% ]) q
          <div class="notice">
0 U: ^$ ?7 e0 D              <h3><?php the_title(); ?></h3>
& F* i2 S0 T: s- D; }              <div class="notice-content"><?php the_content(); ?></div>
/ h) m2 K9 o  z% V; d8 s3 b* y          </div>; _/ l, `# v  J. N* L: C7 q6 {
      <?php endwhile;
. X6 O$ p: Q8 @3 t: {  A      wp_reset_postdata();' c: g0 P/ ^2 T9 v8 S! G
   endif;
( [5 d/ t5 m; a# d   ```
7 Y4 u$ Z& v, g
+ @; k6 W9 r( X( v; C! d: @   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-8 06:59 , Processed in 0.013712 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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