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

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

[复制链接]

335

主题

520

回帖

3429

积分

管理员

积分
3429
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
4 f* R1 U2 x  r* @
( D3 v5 V, C0 {5 A  j. B" @1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
; I9 @0 v; Q' y% \6 F. Q4 `# q5 _" V- _
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。  n; }- O( W- {2 z

8 T, g. F" M- R+ U6 J/ E3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
( B8 Z  S2 j6 U3 z, ?6 y% C0 R& {
: h8 _- G, T$ S5 g/ r/ G4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
# J& a6 Z( ^' a+ H) j% u6 J
/ s+ @6 s1 [! T9 i3 `. z, w  d, }注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3429

积分

管理员

积分
3429
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
9 e, C5 z( x, K- E' i: F5 s. P4 [8 S  }( }5 j
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
. `1 o* v1 E8 R! b  U$ w! h/ R
2 [1 H* e# }" g/ E; F1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:5 I, ]1 d; G- [9 o5 ~, K7 v; m; x4 f

" Z) W" p2 u3 Z, W* A) ~0 Q   ```
) ]8 H& B# }' C% O# L  r/ W   add_menu_page(
+ t. O# T: k, d* T. p# i       '全站公告',
! R0 j( l. L4 ~3 H2 x& K       '全站公告',4 L" y2 E5 \/ ^" S6 ^* i
       'manage_options', //需要的用户权限( Q; p2 F& G  d. b5 l
       'site-wide-notice', //后台页面的 slug3 i+ I2 L- H4 a9 g! ~
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
+ S2 n7 r# s" f6 P       'dashicons-megaphone', //用于显示在菜单中的图标8 {8 K! r) Z; Z$ x
       30 //菜单项的位置
. X5 H5 A4 f; L% G   );
# u8 q; e+ X! T$ W! l5 Q4 u   ```
; y! n. T. ]/ a; E9 @0 `5 K. Z8 R/ r& q! P' U' W, R, j4 S- [
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
3 u. ?4 k1 T" S0 s5 {' H& O, B" I6 _+ ~( e9 f- M
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
* b# }3 J2 ~8 P* d( V
3 V$ q' V* y3 u, c2 a# x& s   ```
4 J- C' v4 k" I   function render_site_wide_notice_page() {3 D8 R: e# C  m5 M( |" S. s: k! R0 J
      // 渲染后台页面内容
! g4 c$ V4 Y) ?2 c1 c9 f6 [7 h      echo '<div class="wrap">
3 S8 J$ Z1 B* L6 G$ d& o          <h2>全站公告</h2>
2 H8 m; r: [- ?: z% Q- [7 k! u# u6 j          <form method="post" action="">
5 x- H4 D* P' t  q  v              <label for="title">公告标题:</label>- Y' z4 e" o  h
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
* }! v- E% |- @# ^              <label for="content">公告内容:</label>& X- W4 `. r+ C$ z
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
0 x3 i2 `* J+ H' S3 q6 q- ?              <input type="submit" name="submit" value="保存设置">
( r( e. x+ T9 n9 {6 R. E1 o+ Y( f% U          </form>3 g& Q! [2 c: R6 b, f1 V6 O) S& P
      </div>';
' j% w2 Q5 u  V7 V
! ~0 s8 N2 V4 `' e      // 处理表单数据
; o. Y% k; G$ S  ?, n9 y' ?      if (isset($_POST['submit'])) {& k7 q* J' l' [; v
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
+ V6 }& g3 n( k1 L- ~% X( M/ q          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));1 J3 `' Q/ r9 w" u1 G; U& X
      }; A$ M* F) G3 B1 ]7 l# b! B
   }
$ o) F; w# d. Z# [1 g& _" x   ```
8 Q( V+ q" y! P6 i6 V6 Q
1 s; E. z- H. ^! G   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。0 [9 A) X; [5 p  u
- g$ ~% p7 p! X) d7 H: q
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:  v/ H+ c& j( \8 l, c9 X7 M+ `5 u" D% E

& J! Q& v' v. r+ w/ b. S2 ^   ```
# o6 y' s: l. v5 `6 y  z. `   <?php
* f: \% i. K6 @& l   $site_wide_notice_title = get_option('site_wide_notice_title');
0 c7 {6 A2 h8 g/ ~) m+ _   $site_wide_notice_content = get_option('site_wide_notice_content');
1 F" {. j6 Q& u8 ]   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
4 O  P! _! Z. ~  J( H  c( u8 R* C9 U( c       echo '<div class="site-wide-notice">';; F- R' ^/ Z$ d' @- n
       if (!empty($site_wide_notice_title)) {3 m& L# G6 e" c; g' e7 r  f! V
           echo '<h3>'.$site_wide_notice_title.'</h3>';
5 v$ p" l  _: n; R( L       }  d8 p/ r' g5 h9 ~+ Z
       if (!empty($site_wide_notice_content)) {
* d+ I: d0 n% u8 `! ^, k2 V           echo '<p>'.$site_wide_notice_content.'</p>';
& n) V7 X  U, \       }
# x' ]7 m+ z, c3 ]1 v# n, o  b       echo '</div>';0 i" H: R- ^. `/ d( v( r
   }
7 P! w- r) G  N. U, |8 c, D, q" O   ?>
* C( @/ x8 P. z4 `# H1 p. l! A   ```
, V. g0 f0 s  b* F1 M$ T. ^, k& k) o9 X
+ Q& z1 p6 }4 u6 A6 ]   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。( M, Z4 y, g% z, D

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

使用道具 举报

335

主题

520

回帖

3429

积分

管理员

积分
3429
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
5 S' w0 }* ~% k$ z& b
8 F2 i% w3 f4 t您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
/ d- _: J6 _" |" Q7 a/ X4 \& o( t- ]! ^& R) S$ @. C
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
" l5 ~3 Z1 e7 v! ?7 C; M6 A& L) N! ?8 [+ d! g" k
```
+ o" D: P4 P' ~1 p/ Mfunction create_custom_post_type() {
# D  ?9 O7 L3 t! x9 }3 d4 x    $args = array(
4 m: t' H7 c5 f8 {: f  k  V" G! K        'labels' => array(# E( ]& Y. g: V0 r8 C1 x
            'name' => '公告',
' O. t/ j/ v2 i2 G& [            'singular_name' => '公告'7 q- o+ g' o" a& W
        ),& Z. N$ n1 _3 `
        'public' => true,2 q& T; o+ a# l3 l; W, C
        'has_archive' => true,
- x7 s' z' f$ ]& w* K( x9 |        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),. {; g( `2 Z, z9 a1 x
        'taxonomies' => array('category', 'post_tag'),+ {0 W# T5 b# X; C
        'menu_icon' => 'dashicons-megaphone',/ y0 ~  S1 P- ^+ W
        'menu_position' => 5,
# j! V. ?  s9 x' `  ]% G        'rewrite' => array('slug' => 'site-wide-notices')
0 r! H+ q% R( t+ [3 H7 _    );
& x5 q. Q' p4 V' N% Y: o) e! q    register_post_type('site-wide-notices', $args);* r3 G8 X7 E1 D
}: y) P$ @$ [# i; L$ W
add_action('init', 'create_custom_post_type');! c# u; T0 }" Y9 s* f4 U' M
```. z  A  `. X# p
2 w0 P) [7 b2 j% {
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。2 d% p( ~5 ]( `7 t

- I: g9 E8 i, b' n' ~4 [! w' ?2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
4 x0 l2 i( ^+ P! Q0 L/ X/ T: f6 A- i0 D
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:& j* K5 D3 N$ a
! c( ]# t/ V% @5 W3 z0 ?* J7 c( d3 T
```+ `7 _4 L! r$ i
$args = array(
- u3 R2 g7 o3 ]# _7 n; H6 m' e    'posts_per_page' => 3, // 显示的公告数量
$ l" j% B- m& o. ~: ]    'post_type' => 'site-wide-notices', // 公告文章类型
* q# p/ Z4 G' z* A! {    'post_status' => 'publish', // 公告状态
$ S# g- R$ @- i7 R  O+ d    'order' => 'DESC' // 排序方式2 M7 J; |* y1 h, [$ [0 y
);
/ \* a( `; X$ o
1 Y% G+ f/ e5 H; S2 z/ o. Q$notices = new WP_Query($args);
: z. T+ }( x6 {# E/ oif ($notices->have_posts()) :! ]3 v+ d5 ~/ J" e7 H; X
    while ($notices->have_posts()) : $notices->the_post(); ?>  t1 U0 _# g4 g/ N5 q9 W" T4 Q
        <div class="notice">
  [, e; }: b- V4 z$ U% [2 K: U+ X            <h3><?php the_title(); ?></h3>
) ^) l8 D  o0 }1 r* s# {            <div class="notice-content"><?php the_content(); ?></div>
8 a* C5 c* d# |  `        </div>
# [- e& _7 [; _0 M' ]( |    <?php endwhile;2 p  f2 s/ ]- T) B1 J* ]) }) u
else :2 Z3 |4 z9 ^. @
    echo "暂无公告";! y# {% i3 Q- H' @" r' y" B  P
endif;
. r# {# ?) H: W, q( t6 Nwp_reset_query();' A* s) V+ e7 ^2 q# x; Y( q
```
9 x% m& s0 i& X( e( @
' G6 f, l( p+ `/ A* {* m/ j7 ]- R这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。- v- T; o% O+ u

9 P: l7 d" q- k# M9 m) I" M; ^: N. P以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3429

积分

管理员

积分
3429
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?9 j6 u6 [8 n& ~5 @+ K+ R+ o# N$ c' t# H1 c

. M+ h7 ?. g6 s& D# g如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。. O" u- [6 S3 x
2 y% I2 V, p; v" \( N, I
以下是创建自定义插件的步骤:8 p8 J+ r- i6 k0 d6 S
, t4 v" [. c0 t4 e7 x* v- F% x
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:( }0 V: x+ d8 N; s, a' G

' e' n0 {* M4 i- ^. A, p. V: u, V   ```
3 w2 k0 K, q' t* x   <?php
* }# X: Y# g5 O% _   /*5 \% N) u6 K4 u6 d
   Plugin Name: Site Wide Notices Plugin, S" L; k4 q, J. X2 V
   Description: Adds a new custom post type for site-wide notices.
* M7 ?2 ?6 Z- a2 p9 Z& v- r   Version: 1.0
7 P2 _$ F- b% t; i   Author: Your Name7 j- h" \# w5 T2 s' F' x
   Author URI: http://example.com
" ?; }* {" L. A9 c0 k! n   */
1 b$ ^, z* D6 y  _% F4 |% I! C% n2 o. A6 S4 H4 \
   // Add plugin code here...
) l) F2 Y$ Q. R% R5 {   ```% }( @( K. z- z, o
! R8 `" Y9 P% z) x
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。$ X! E3 t# h* Q$ l& p
4 g8 ]' U9 d5 C5 T' B
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:) \) S+ p2 E) }/ P

, _7 M; J- ~- }   ```' t6 h1 X' m2 i0 @! r4 ]: B  g
   add_action('init', 'create_custom_post_type');
0 n* _1 P5 U. j   function create_custom_post_type() {9 G% L6 n' ^8 ~! f: L
      $labels = array(9 W4 O* R4 Y! E0 `+ s& X, a
          'name' => 'Site Wide Notices',/ {8 e# Y3 K1 V- }) U- _
          'singular_name' => 'Site Wide Notice',
' J( }7 y+ H+ E  u% j: i          'add_new' => 'Add New',7 R$ J. i8 _/ m5 y
          'add_new_item' => 'Add New Site Wide Notice',; t& ~: Z  |- @+ W$ I' m) A! _% d
          'edit_item' => 'Edit Site Wide Notice',
& \* k, {7 g- W# P          'new_item' => 'New Site Wide Notice',+ N% g  c: J1 O0 g8 B5 P
          'view_item' => 'View Site Wide Notice',- g' R9 M: l# C' Y+ B/ f
          'search_items' => 'Search Site Wide Notices',
0 s" }% m$ B, h2 s          'not_found' => 'No site-wide notices found',
/ o9 Z' W5 C1 X2 t' j          'not_found_in_trash' => 'No site-wide notices found in trash'
& J4 j* M% H2 t      );
4 O1 ?/ R: j# U) Z& d. N3 R% V5 ?. ?0 W1 f
      $args = array(
! H- U3 ~# g: v3 V; M; d1 I          'labels' => $labels,. N! u+ t3 {0 N4 Q/ ]) N, v
          'public' => true,+ m: _4 B, E7 s
          'has_archive' => true," x& @0 u5 S. j1 v3 V
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
1 {$ z9 g3 R3 R$ M: ]9 c, j          'taxonomies' => array('category', 'post_tag'),& F/ r. W0 y3 }! z9 I
          'menu_icon' => 'dashicons-megaphone',
1 L$ D* A9 T: e          'menu_position' => 5,1 _2 {. R  T/ `: Q2 Q0 [
          'rewrite' => array('slug' => 'site-wide-notices')
, y2 G$ V# [* \) P7 W* ]      );7 }4 u& H+ z- i# M- A  I
* F" l( S9 d; a
      register_post_type('site-wide-notices', $args);) B  k: X9 X5 x8 Z8 `4 J7 Z# r
   }
" O# U1 f- k/ e/ k   ```
5 F  |9 u; c" X9 T# P0 @3 G5 _4 l- F; k" W' t4 B3 T1 F
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。5 K: k) s& k1 D7 t8 F1 X9 K% d

/ t3 [$ {2 j, d% G& ^# ^% d3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
5 r( x7 t. J# T% m# d" T% c3 w# z/ _% J+ K) C. I& W. @6 l3 \
   ```; N7 P4 q5 k  G1 t  ?
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');% V/ I7 y6 {( n# S6 ?, j% G
   function add_site_wide_notices_boxes() {- \# h. b. m7 `8 }% {
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');9 b9 Y/ ~+ F* F* T6 e. r
   }
, Y- H* B. o) C; G/ ^. L( J
' N9 H$ l8 m' v; p$ V5 S   function notice_details_meta_box($post) {. h. Z  U5 b$ M7 N  u
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
* T7 X, A( V9 J6 g/ I4 _      $notice_title = get_post_meta($post->ID, 'notice_title', true);3 o1 o$ R: u* V/ f3 ]* g: I
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
" I* l. K9 U. c# K/ W8 b      ?>  y  `2 r% F0 t" X0 {# X& a% ?% |
      <p>  g" l1 Y: X: z9 M& {, {+ Y1 {0 @
          <label for="notice-title">Notice Title</label><br>' u  o4 g" i( g- ~/ }$ ~; A) T% r
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
7 p: A/ G- S' L/ b  Q      </p>
' J: o- U3 K# a& }! m; f5 }      <p>
  z/ ~/ f3 ^& I1 M! ^) T2 g9 c          <label for="notice-content">Notice Content</label><br>" A: O( r7 k  d" S
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
5 r. e7 q, t6 v, ~8 U      </p>7 Z% X: w/ y" {& z1 |
      <?php
$ @' U1 ^; T/ R) T; J6 r3 K   }
: Y/ z5 p4 C  ?& P/ M/ d
) o1 W6 a9 _8 B- ~# m   add_action('save_post', 'save_site_wide_notice_meta_box');
0 b' _2 W% O2 @" I* I* k+ w( x& c   function save_site_wide_notice_meta_box($post_id) {3 g. b6 u' ]4 o! r5 c8 t
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
7 b1 |. z2 b; |0 l         return;
" J) G. m- h) i" _( F( _# N      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
7 z& [+ @3 ]. M$ b1 u  V         return;6 v/ r5 G4 u+ p8 {
2 W3 [0 `  O4 S' [% Y1 B
      if (isset($_POST['notice_title'])) {  A$ C1 C# ]# R" L; V% b
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));' _; j- L% }3 q
      }' p9 n3 X# \4 R$ m9 X; l' g
      if (isset($_POST['notice_content'])) {
2 `+ ^1 h$ E1 ~' n' U- ^+ _          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
9 H, u: `6 N; b; Z, H4 L6 M3 h      }
) I8 p# r6 T# m   }9 {8 t2 x: E+ {/ u# T  N( k8 u# U
   ```+ j/ r0 Y( s3 g

, ]0 L  N+ j2 ]1 x# G9 d: k   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。4 `# x2 M0 T7 n8 `7 ]/ ~# L
  e- K" _& F2 Z$ \# @" c
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
" }8 m0 T# u. u4 g5 u) ~+ s% l( \" K1 }( u7 L2 r9 u
   ```
5 W5 k! F- N' N3 L7 v6 x4 w   $args = array(* g7 e2 ^5 h1 y+ L
      'post_type' => 'site-wide-notices',
; h$ J8 b1 e" T1 R2 A5 G+ T) d5 q      'posts_per_page' => 3,
) F' F7 v9 a# C1 R( C# Z      'order' => 'DESC',
3 b& c# G2 M  {( R! h% K3 E      'orderby' => 'date'
5 J* T) @7 t4 K( r: u! s2 z   );
; a" X3 U6 K. e! T   $query = new WP_Query($args);
/ Y$ p: A. B# t& e6 ~+ y0 t   if ($query->have_posts()) :  p/ {8 x0 d/ \) J$ ~2 W
      while ($query->have_posts()) : $query->the_post(); ?>% D) `" X$ B$ d& y
          <div class="notice">
' J! F1 K8 ^" y* t& o' z% c) j$ a4 ~              <h3><?php the_title(); ?></h3>- x. J: M  y& d% ~1 Y
              <div class="notice-content"><?php the_content(); ?></div>
8 ?' \  [' y" Y, m$ S; M          </div>$ n: e2 I+ J5 c3 A% W* Z6 A. o0 g& F
      <?php endwhile;; S- f9 `% T- d
      wp_reset_postdata();0 I7 x) M+ M, v( Y( q
   endif;
* ~' m" {- x& R% ~4 J( ?   ```1 I8 ]: O) a/ e9 B9 A: F  _
2 {8 R5 r8 E8 W
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 08:35 , Processed in 0.081253 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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