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

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

[复制链接]

335

主题

520

回帖

3415

积分

管理员

积分
3415
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
4 ^3 W4 F! \3 N/ V$ ?1 ~$ ?# M: i/ H; a
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。: O, l, `/ E+ \; A: B
( J7 q1 O) _" T" u0 v
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
% r8 g% T. T% e0 J5 A6 Y, G" g+ S& {4 i& g0 b
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。, I& F) H2 M6 [6 j0 B
- S/ e3 y, I, @$ s& m
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。1 g* F3 o  `4 E9 O; F# |

6 }% h3 `4 \8 y9 H/ x  _注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3415

积分

管理员

积分
3415
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
" |1 f$ b* f( j& n" n) J, n( K* a5 i1 k6 c/ S  X* p
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:" X* Q+ B' I: T/ Y0 Z

4 Z8 _7 U1 X, E8 e# H3 f  `& f1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:# ^9 h# h8 w1 M' d
, W0 W7 e5 B4 N1 i, x& }7 w5 s
   ```
" t  n8 q- u; U3 b9 ]$ b( F: @   add_menu_page(1 I) l, Y& ]# _4 a3 r) x: }
       '全站公告',
$ L3 ], R  R. G4 `" U       '全站公告',) i# \9 W- z. x/ Q( K
       'manage_options', //需要的用户权限, H8 O% d+ N7 P: R! v
       'site-wide-notice', //后台页面的 slug" J9 U4 @6 ]+ e" z
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
- ?2 S! v* C7 M, }1 x       'dashicons-megaphone', //用于显示在菜单中的图标% Q" C7 a3 W6 {5 }8 J+ @
       30 //菜单项的位置
: ?, }1 o0 i2 h/ v/ c# X, V5 i; `   );, L8 L* |8 c* z- T% t
   ```' ~- o! i4 z) I8 n

( m# g! y' I4 }; h1 B/ J: Q8 M   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。6 |" H; \' d- L) @

5 m& {3 ^$ g0 V0 x. y  d# o2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:! D. l5 |% @7 D& i
( j- C! K! P* I$ H" X  n
   ```
2 l6 ^% l  h6 ^- a  \( Z  U   function render_site_wide_notice_page() {) j6 y4 I, Y2 ]# f! J3 f8 Y
      // 渲染后台页面内容
" h7 }! x6 b( d6 ]3 w2 f  x' x) j      echo '<div class="wrap">7 H3 e  {; W& @& e
          <h2>全站公告</h2>+ {7 j9 |  E7 {0 O
          <form method="post" action="">
: J1 W, w8 H+ A" Q  U4 T4 x              <label for="title">公告标题:</label>' F. B7 M* m5 X8 k: H* b2 a# D
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>- u  v5 Z# I5 `  K7 T8 O/ W  F, X
              <label for="content">公告内容:</label>
2 V# Z( z/ L) l( ?; P              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
7 i" U" G7 }( P4 z              <input type="submit" name="submit" value="保存设置">
8 z8 a; B7 t& Z4 k6 s4 a" G          </form>9 o' d6 t/ ]" q8 f7 f
      </div>';
) D, b" d: I- O6 j' p. s# [, y1 d5 J6 z. B* t
      // 处理表单数据; f6 K0 m  G/ E/ {4 Z
      if (isset($_POST['submit'])) {
7 H' \1 v" `5 g8 C          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
" a" W/ Z3 q& c3 u8 |          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));, C0 [' @3 O  |" v8 G8 q
      }
# m5 p6 G. J/ c5 e6 J   }1 ~7 n# [8 u3 `8 `; d8 o
   ```
1 _' `9 \1 l' A- `. e6 T
3 d5 L+ G. Y; N* F) @   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
  h- ^8 l7 l8 \! y
: E7 T  M- B7 K3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
3 c* f$ `/ `( `# v
% ~' O, ~/ z% b5 n/ }7 d4 Q# [   ```
; o  g6 U+ [6 s/ [& S3 O% ?  v$ W   <?php
4 }6 ^5 q' Y  E  R3 G+ i   $site_wide_notice_title = get_option('site_wide_notice_title');" `/ k" h% C9 }& R) B6 m
   $site_wide_notice_content = get_option('site_wide_notice_content');, k! v; S: ?. t* G3 U& W2 h' h
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
  o( @4 F3 M% c) _; H2 }! @2 L       echo '<div class="site-wide-notice">';/ i+ Y8 v8 f0 {& j5 W* X! s! Z8 D# Y
       if (!empty($site_wide_notice_title)) {
( m/ x; Y1 }9 y) e: u. z) v4 |5 [" g           echo '<h3>'.$site_wide_notice_title.'</h3>';4 K% P- J+ Q9 ?+ B% }8 u
       }
3 X. E8 f0 f  b& i/ U- `       if (!empty($site_wide_notice_content)) {
4 O( s4 J6 W+ h2 l           echo '<p>'.$site_wide_notice_content.'</p>';! Q" f, |+ @$ p* ?) H, F: O5 s+ L
       }
; ^# l% \# i( U, R5 O       echo '</div>';
( d4 B$ s. k. D8 X8 \   }5 ?4 l# @/ d2 C
   ?>  J. i- [6 y) c; S. j
   ```
+ u! z) w: b* E% Z. o2 N& i9 F' E0 i" T$ T/ Z
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
; t9 o1 G0 M$ q0 C2 E$ P
, B9 U8 _' U1 n$ f0 _) h3 s4 g请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

520

回帖

3415

积分

管理员

积分
3415
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?! U6 B4 ]+ @- `& x  i2 l4 h0 i- ~* g
7 t8 _/ y! X" Z. J- j
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
- K: A1 a* _" ]) E' @1 ]; Z; y; G" \8 i7 X0 @" O
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
8 M; ^3 G& g: a, d) }1 {3 s, {* e! j2 L4 a4 z5 t+ L; i+ |
```$ G7 e3 i3 B% d; Z5 l& k) t
function create_custom_post_type() {3 S, @! E4 a0 }, R" h2 m
    $args = array(! O! O% v7 C2 ]' [" a$ E6 F
        'labels' => array(- p6 q8 s3 d) x1 n' r5 y
            'name' => '公告',; W' J+ [$ W' h& i) ~( @
            'singular_name' => '公告'6 @% i/ @& U& }, o
        ),
0 |  t8 ^: a4 Q        'public' => true,
& S2 u3 q/ n2 \0 M0 r  u        'has_archive' => true,
5 v  b2 r4 K% g+ h$ F        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),6 T. I) r- Y3 O8 _/ E5 _: Z8 s
        'taxonomies' => array('category', 'post_tag'),
# V) h, B9 z* m0 T        'menu_icon' => 'dashicons-megaphone',( u8 a7 w5 ?. L! ]
        'menu_position' => 5,
6 {( w2 B+ H1 T( S1 ~        'rewrite' => array('slug' => 'site-wide-notices')
/ j8 p& h& T5 m+ ]. i( [% n8 u; t4 w    );
. H( B+ P& p* O% c3 f    register_post_type('site-wide-notices', $args);; K* b* P* h5 M0 P
}# p4 Q1 g/ ~4 A
add_action('init', 'create_custom_post_type');. `4 y% m  \- K# |: q
```
7 s. o1 w' @2 u0 A7 h- d8 f# ]$ T4 g5 D
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。) ?: i4 P5 @/ l. F
3 w# u+ t! u" i$ I! V
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
. v* `% H: o2 @) H# v( R: ^& K9 p: ?* J0 b" u, p
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:0 `# T6 U. d- g6 B

* M! r6 g% i8 V/ v1 E4 r* S; V4 f```# z! E) I7 ?8 r9 H3 ^! u
$args = array(# x) |+ d0 D3 S7 \
    'posts_per_page' => 3, // 显示的公告数量0 M0 L& o* I7 P- y
    'post_type' => 'site-wide-notices', // 公告文章类型
2 P$ q6 N2 V, p    'post_status' => 'publish', // 公告状态5 D" Q4 c3 v; e$ H1 }
    'order' => 'DESC' // 排序方式" Q- G$ h1 T8 F$ W0 v0 ^9 n# }
);8 Y- v& Q6 D7 N' s
$ n/ L1 B4 Q2 L9 e, _4 i
$notices = new WP_Query($args);
9 {% S# Y! |8 t' K9 S6 |4 Qif ($notices->have_posts()) :7 t/ t# g6 W1 D6 Y; m( i2 Z8 n1 l; }
    while ($notices->have_posts()) : $notices->the_post(); ?>
$ d+ s; ?2 j/ r  R) v7 f        <div class="notice">& ?' ?/ {/ _1 ^
            <h3><?php the_title(); ?></h3>
/ o& H- O& C; M' B            <div class="notice-content"><?php the_content(); ?></div>
3 |, o' E- H+ c6 ?3 a- A        </div>
- P9 X6 A4 |" R  t! x    <?php endwhile;/ n, r  a. c* f6 R
else :
: ]4 b. Y+ U/ Y- K/ C. I' u    echo "暂无公告";( s! E/ S8 d3 R  H4 t
endif;
; s3 V6 y$ J2 k  [wp_reset_query();, P) t* m* I& t$ N  D. v! t/ j5 t" e
```& {! [4 ]2 f% o% L$ A* x! z

9 \8 n+ p( j- F% C+ z0 t3 C这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。4 b1 C9 U, w7 I7 y

% @7 z) _- q7 f3 F以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3415

积分

管理员

积分
3415
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
0 l* u8 M+ {: P% K5 _& \8 s* H. a/ w+ s* n/ P
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
( p/ V$ P- J' e! {3 z4 b; L2 o! |( o8 t6 n2 \' U8 x
以下是创建自定义插件的步骤:& R: Z) l' S, g$ d& ]. c: t

8 ?0 ^- \' u- }7 [1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
) o7 B- w/ L- b5 f! Q0 O7 m5 U" S" c, J. T
   ```
6 i" U% P; D# y1 k   <?php5 x) x9 l6 A8 m- ~! z0 ~, }
   /** I: [2 M' }8 N6 v( s5 q% ~
   Plugin Name: Site Wide Notices Plugin; ^1 @. L3 ?# l* J. W, j3 u# _
   Description: Adds a new custom post type for site-wide notices.
& W; D) H: ]0 K) Z2 y' E% X   Version: 1.0
- Z9 M; X. U6 }& `  i   Author: Your Name4 _, M7 o6 `. R  z. L; i$ F% \
   Author URI: http://example.com
" [& h! u, R3 e4 G' Q: m0 Z   */& K( j% t1 A, z% W6 \

1 `) J, P3 y; n' W7 ?7 g: R+ L5 K* u   // Add plugin code here...: r5 m1 V& o* B# U, {# R
   ```
- ^% m, O& ?$ r% P8 a  r# a( j2 i  r& S" a$ f
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。: X$ A+ e( Y3 Y

( u" _+ h  h4 {4 E! @! a0 x) Y2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
! v7 u1 c0 a: a; j( A8 R1 h
8 Y' L! X' j0 z% t6 W& }1 Q   ```
& K& y3 s( }: H7 R   add_action('init', 'create_custom_post_type');
4 z. i; m# X: U9 ~3 K+ y   function create_custom_post_type() {
' j# s. o) j" ^8 c% b5 L      $labels = array(( P- [; S/ I) U: H4 |; R
          'name' => 'Site Wide Notices',3 T: ~8 l' D5 X1 g8 S
          'singular_name' => 'Site Wide Notice',
& r. T. \0 a. c% t9 L. u, P6 Z# X# j  V          'add_new' => 'Add New',, j' Y( H- [7 y6 Z& I6 H
          'add_new_item' => 'Add New Site Wide Notice',
4 G# T0 ~& [( V9 P          'edit_item' => 'Edit Site Wide Notice',
' {4 Q* A& M7 G! ^5 u/ m2 W          'new_item' => 'New Site Wide Notice',
6 _) b9 \  I" O- O          'view_item' => 'View Site Wide Notice',/ U# @/ {; Q9 M. G0 F: p6 p
          'search_items' => 'Search Site Wide Notices',
* `# U1 n7 n$ _" H7 O7 u  C# E2 z6 c          'not_found' => 'No site-wide notices found',
5 @1 Y" q& W8 U9 X          'not_found_in_trash' => 'No site-wide notices found in trash'
: }7 Y: d" J& K& y/ p# y6 q/ @, E      );# A. Z# E% k) w3 w

- X- R' F- V* k$ [8 s$ z7 [      $args = array(
; S4 [# r' H: i1 C2 D          'labels' => $labels,) B* e" j) H) [7 ^2 a0 g7 e: M* B
          'public' => true,
! s0 d3 |9 O! a* V3 e9 h! n: g8 M          'has_archive' => true,% r0 W/ {9 }, E
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
$ G5 V7 O  i9 I/ \2 t4 q2 E( \          'taxonomies' => array('category', 'post_tag'),5 W4 ?3 ^! \1 w9 \
          'menu_icon' => 'dashicons-megaphone',. |5 Z7 L- \" |! M$ K( I
          'menu_position' => 5,2 c4 h# Y5 V: M2 l" g* d9 U
          'rewrite' => array('slug' => 'site-wide-notices'): D% z/ D9 d2 v  F, ]6 c3 B4 s
      );) x" U* p: L9 ?( f
" d+ T$ M" _% `+ J! Q1 Y
      register_post_type('site-wide-notices', $args);8 \0 X1 D$ f! k. X
   }+ x9 ^5 |9 V9 i  Y/ ~
   ```
+ D) l5 ]+ C7 Z" O% a! Y! v0 a& m2 h3 y' g* f" V! }3 P# _
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
/ y% y- v. R7 R: u; {" O# }' {5 w
0 G4 W2 N) |2 p0 z3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
, `. @1 [$ @* R2 `( m$ e  j# t
7 S5 L- _9 r7 _+ n   ```
: a/ V# @# _, o. D) W   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');( K" o. |/ L% Y( V/ n
   function add_site_wide_notices_boxes() {. S; i* M: [0 ^5 S4 |7 }+ ~
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');4 ^9 @$ N) n- [5 o3 j) @
   }( e* Q/ h6 K7 Q( x: \; e2 g0 Z
2 y0 N5 f/ J& j7 w' b! w9 T5 L' b/ w( |
   function notice_details_meta_box($post) {( ]0 I6 N8 {2 o3 Z6 ^- h
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
' l7 Z. F& A! [1 a' M! s7 @% B      $notice_title = get_post_meta($post->ID, 'notice_title', true);8 ^/ W/ `: {; q  B0 c/ e
      $notice_content = get_post_meta($post->ID, 'notice_content', true);! t( C, g3 H) m6 K4 c4 \' z# i
      ?>8 o/ W' \, N9 c4 @
      <p>, }1 i+ Q1 u1 m) g
          <label for="notice-title">Notice Title</label><br>8 r/ i5 V) S7 G  Z+ `8 u) S
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
3 ?$ Y: A1 `) V* Z% c- Z      </p>
: q) K+ Y' j3 }9 l* E1 b  ^      <p>. V% t: N1 k+ `6 o7 |/ C( ?
          <label for="notice-content">Notice Content</label><br>2 R( c4 h  f  t# ~4 N, H4 ~
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
  b2 n8 U' o8 s+ P      </p>
/ N( @% ^0 v6 y3 w. D      <?php
' S1 N  G1 n/ R# f: i' U   }  e  v& e1 y" O0 `' g
/ s0 o+ P5 e7 A/ e/ f6 [
   add_action('save_post', 'save_site_wide_notice_meta_box');9 \. z" [/ i+ c8 P4 y' M5 G! I: x/ @
   function save_site_wide_notice_meta_box($post_id) {
4 v- `) s; H, ]2 |$ D/ ^      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))3 T5 K$ @1 H( f; {0 E
         return;, z0 \+ d' X7 F: s$ G' n: L! ^
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)2 X9 G% c, b4 V; m
         return;
4 \) ~+ X6 g6 _* _$ l$ E6 L% U& V( m, ^% H* q0 e& [4 q8 E
      if (isset($_POST['notice_title'])) {% o6 j: p, o2 }8 g0 t0 j* }
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));$ r* y' z# T: y* y; P  C) {4 B
      }
! y# R3 R1 w* m1 h! Y      if (isset($_POST['notice_content'])) {' U7 x6 y/ i3 M
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
3 L. k4 ~* g2 [      }% w! w0 \: w6 [/ V4 I0 T. ~% J
   }
4 _( K# C+ T9 k0 Q   ```
$ @* ^! d# S" L* n3 Z6 B* T4 x3 M* B# C0 h4 p. c8 e$ a. w9 p
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
6 Y6 n" w8 C" e" I# m( ^8 ], `$ q# b. u; ~$ i$ O
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:8 J5 h3 R) L: I( q3 Z9 \

: Q8 j9 v  f. T9 X& ~2 m' i7 F% r   ```4 e' U/ K% V( E( p! c7 ?
   $args = array(
; P% A: y. s  L: E, x) E$ G. Q; ]      'post_type' => 'site-wide-notices',
+ ^7 n2 O2 m$ O( S4 U2 s1 u. E      'posts_per_page' => 3,* P% d8 K! e. V; _
      'order' => 'DESC',; b4 I) J% U( O( \
      'orderby' => 'date', A, u; T3 Y3 _2 m7 _# B4 q
   );
; i9 P7 X% `* J" d0 K   $query = new WP_Query($args);
; T* `0 E) f* ^, ?7 ]- S   if ($query->have_posts()) :. p# P: j; x1 J2 M. Q2 x- z* h4 z
      while ($query->have_posts()) : $query->the_post(); ?>5 R' V- d, Y# P4 j+ V+ b% A
          <div class="notice">
; H0 ^% r; f1 z1 _              <h3><?php the_title(); ?></h3>$ n- Y$ Z* J' }/ M. h/ f
              <div class="notice-content"><?php the_content(); ?></div>7 r/ A: _6 \" z, D& @. q% H9 {
          </div>
7 Y/ Q$ M- o$ C9 p- p( Y      <?php endwhile;/ H5 y( {- P& u9 L7 U% p6 G
      wp_reset_postdata();9 q: `) `/ J6 [2 C9 t
   endif;6 ]# B  d: P, H5 ^3 Q# e  o
   ```
  @) S  S, c7 Y7 e* U5 j! Z" Y- _# f: e* c7 P" d; ~: H$ Q
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 17:46 , Processed in 0.071789 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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