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

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

[复制链接]

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:% m' ]% K' _" p0 V0 O- F# u$ i

# u  x& _$ p5 v6 [+ [& d# V  y7 D1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。* @4 }" _8 T, J1 B3 \' y6 ]
6 ?" r; A4 \0 v7 o" o
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
; V4 G  o! t+ W" ^7 t2 j. ]: T* a6 G) J
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
8 F3 @! Q' b9 `8 u" N  s6 p  {$ p6 @* E' P
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。9 a$ \, d! H" v5 K
/ F8 H+ f/ M( L: W. R
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
, O' r' i- ^2 M3 y* B  q
2 e, {5 @3 q* |9 n: O如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
, Y1 K9 e) P  `3 x3 U6 T
; P+ H, I' Q8 n  K1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
2 Q6 r; y4 S' j1 A, Q( j9 q' u& {) G1 z; z! W$ D
   ```$ e' @5 C. n/ L
   add_menu_page(
8 [7 _! z0 d9 t6 U7 M: p4 f( ^+ @       '全站公告',
% J0 V0 p# D  H& K4 u# C; I: Z9 _       '全站公告',# k) g6 P6 S1 Z  p. g2 m
       'manage_options', //需要的用户权限
9 W+ x4 V7 G) s) ^! i       'site-wide-notice', //后台页面的 slug9 o; u  z+ \8 A3 \
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数1 `4 P/ G( ^: j7 V. N
       'dashicons-megaphone', //用于显示在菜单中的图标! v8 A+ h2 _5 K- v2 d
       30 //菜单项的位置
% d$ I1 ?1 i  g  u   );$ U( @' [4 k" X, m2 q3 y
   ```
+ i- ^& @2 I6 \/ D# b8 K- {
0 b  p7 @. I% q+ [1 h  K   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。5 H$ B$ `' ~1 }; ?" L

1 ?- G0 ]2 K  z3 Y, [5 O* S& P2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:. }2 L  O7 b' o* J

5 f" v3 k6 q* ]* {+ A/ x   ```1 M, X: H8 j) ^0 b6 z3 q$ y8 L
   function render_site_wide_notice_page() {' T7 s8 d7 t% ~9 G/ V" a" F
      // 渲染后台页面内容- f) S- [; B9 j2 ?" D) z4 g
      echo '<div class="wrap">
; I4 E0 e* ^3 z          <h2>全站公告</h2>
' T2 H4 \" O! e9 V4 U; _# W          <form method="post" action="">) m5 ]. n( q9 h9 x$ k
              <label for="title">公告标题:</label>1 W6 b0 _: ]1 F2 v' z
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>2 n$ w7 Z% }" @  S1 v
              <label for="content">公告内容:</label>$ U0 f1 H$ s  _' d
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
6 A3 l7 O$ u  s5 Z              <input type="submit" name="submit" value="保存设置">
. P+ V" X  H5 U. G. r; v3 f9 v          </form>
0 \  x$ N( [2 s! K" I/ g      </div>';9 X! ]' p  p1 s5 z4 t1 U  |& S
1 i8 m. \% E0 b$ P2 N: A
      // 处理表单数据
  M  c/ t6 _$ u: N6 U4 ?6 {      if (isset($_POST['submit'])) {
3 a8 I5 ]9 j1 J, r) |% |/ K          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
4 e' L9 f; }: i& K# u          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
2 A7 N$ ?0 w& [2 ?2 \$ a$ Q      }* n! [. L; h: B6 [- Y) b) S- D+ V
   }" }) P% c! ]4 v7 x: p5 U5 W
   ```3 R0 H9 N2 [2 k8 B
# Z, D9 ]- P: q4 J; b
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
* @3 D+ w" w5 j$ Y7 S7 c: u4 ~6 M
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:0 O4 `- B! S7 s) s
- S& E" ]& w$ i* X- E
   ```4 ^  ^% ]# x2 m. A$ R5 N
   <?php4 D% f  W& l9 z, X4 c5 M7 O$ W! c- j9 O
   $site_wide_notice_title = get_option('site_wide_notice_title');, X) S6 b# _* ^. y% ?4 `+ d
   $site_wide_notice_content = get_option('site_wide_notice_content');
+ K$ L$ e" S7 T" \, t8 d1 J1 {   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {* W" Y; [' ~1 G/ V1 `- ~
       echo '<div class="site-wide-notice">';
  M/ y2 }$ H+ i7 d/ J       if (!empty($site_wide_notice_title)) {
, M4 B0 g1 E! f2 x! C" e           echo '<h3>'.$site_wide_notice_title.'</h3>';
' j; S3 x4 `1 ^       }
# e3 e' b& r- ^+ P       if (!empty($site_wide_notice_content)) {# S$ w0 Z8 w* a
           echo '<p>'.$site_wide_notice_content.'</p>';8 U: U8 A6 [- ?+ `9 K
       }
. A( y/ }( n7 a( n       echo '</div>';
+ A7 A$ S$ f' g4 _& B3 h9 e' W   }& s+ a+ Q1 G* |9 s; r# ?, s$ O
   ?>
+ O% {; v) P8 m7 e   ```' I% |2 L! B% v, ~
0 i) ^7 e6 O5 Y) O) G
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。8 _2 p6 Z5 R# s9 J7 L+ H2 Q
: U- O% J& u9 ?) O) u1 D6 F2 w
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?$ r7 k: J6 C5 T0 U0 b
1 I. O7 e9 V; W
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:$ E% B$ T4 K- d" B
3 S$ R$ P6 x2 d9 h3 B
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
8 E9 L. e- o' `- o; i% z
' L- e+ {0 x  v$ Z' |: N: ````
! U# s8 w. ~& c) e0 Z% h' n( Hfunction create_custom_post_type() {6 x! i( V( P/ \5 Z! ^( x/ k6 D9 w* V
    $args = array(
9 l5 _8 R3 Z' j2 k2 N9 y        'labels' => array(9 B6 I( n5 s3 @) g, D0 O7 A
            'name' => '公告',# u9 L, |6 x3 R/ L; O6 Z, T
            'singular_name' => '公告'
& E! |; A9 y& `" R' a        ),4 h8 r- k, g# x: k$ q. w. p
        'public' => true,
/ [5 O1 {% p. X        'has_archive' => true,
! S0 ]$ `7 K" H: m9 r( N/ ]$ j        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),( `/ f! ~9 e+ n7 _) N8 n$ B! r, I- q- Z
        'taxonomies' => array('category', 'post_tag'),2 x) T0 Q& g% T; s4 g+ I
        'menu_icon' => 'dashicons-megaphone',
* U# o3 X; b6 u5 l. F3 i, |        'menu_position' => 5," s8 b4 n8 ~1 m) q$ P4 K4 _
        'rewrite' => array('slug' => 'site-wide-notices')
3 F; b( }/ \+ \0 ^6 t' `    );
( }% M3 Y1 ]9 \. R    register_post_type('site-wide-notices', $args);* O& T6 T% i1 u. M5 E0 S4 `
}4 _8 `; L0 I+ F! S* R: S
add_action('init', 'create_custom_post_type');  q# U! ^6 g* [+ ^
```2 e( B2 Q+ R" O) @- n& j7 t

8 Q* W: T+ J% t' m' y在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。- L6 i( O& g! {7 s. L+ {2 w9 n

+ H+ t& A* |; b* V4 K2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。) R8 k& T/ J6 i! s! j- }

' g. l' K0 `" b' ^, x$ @3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
- A! I9 x7 L. ~+ m- S- u; }9 E  _; ^
```  @* W3 S3 u& ^, u' H/ I1 E; E3 V
$args = array(
% p- t) r2 f0 @! n: K* E  R+ v    'posts_per_page' => 3, // 显示的公告数量
: C+ i* I% f8 Q! l2 I% r+ f    'post_type' => 'site-wide-notices', // 公告文章类型9 ]  `6 t: V! }
    'post_status' => 'publish', // 公告状态, i( g/ b0 L) u3 H; V$ _. v
    'order' => 'DESC' // 排序方式
& Y3 W$ u& G. g: S" K);
8 |2 e0 q& l6 ~* r5 H6 j( N8 _* z" _: R  F5 |( f; ~; H6 s
$notices = new WP_Query($args);
6 s8 N2 h3 r& r8 z. C  Gif ($notices->have_posts()) :
( m7 ~5 q* ^5 ?3 ~( q    while ($notices->have_posts()) : $notices->the_post(); ?>/ J# M3 d3 w  g' |+ Q
        <div class="notice">* _6 @8 O& \. \! t) E  Q; [
            <h3><?php the_title(); ?></h3>! _9 `& Z5 c+ B) t( p. F
            <div class="notice-content"><?php the_content(); ?></div>
6 t. u3 M, p0 K3 d        </div>
9 F. m. d1 m# [    <?php endwhile;! h, b# h7 t1 q" |& e
else :$ K$ D, U& w1 [( w: s8 V, E
    echo "暂无公告";
. P, b! g+ m- }/ E+ t3 Uendif;
  [8 |/ G" u) R  `wp_reset_query();. x  x) H/ }. E, R' w2 V8 S
```
7 h/ }& \/ ^! X8 D# o
/ |+ m8 N% K, \这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
; l# V: s4 k6 ]: }& g1 P! Y: R% n/ L& i& ~/ a
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?- }; d9 B7 E, E6 t# W" V
+ D9 i9 f( O) U9 q4 Y
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
& ?7 }# w" P7 Q& \3 y; A, p$ }+ N5 o4 S( n
以下是创建自定义插件的步骤:" `7 \6 A+ K5 r0 P7 k; t" }7 j
& {& p: f0 E) B- {5 h8 u
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
! [; K$ C' H; u# j
* C8 o' j$ I3 @8 p6 p   ```
; Q0 V  U9 A6 p  R7 _   <?php7 g' K# R) P8 i% C% }0 r! T2 A
   /*  Q( U5 y- d3 e6 C- |$ Z
   Plugin Name: Site Wide Notices Plugin' u- W8 T$ K7 I+ P7 f
   Description: Adds a new custom post type for site-wide notices.% o# Q# [9 a! N$ ^* ]' V6 x
   Version: 1.0& W( o1 Q4 V- I1 h
   Author: Your Name5 \2 G4 [. S! u
   Author URI: http://example.com
) K* V2 w1 Q. z   */- e) v! W8 o9 N/ \3 q. W
, Y/ I. M: N  J( T
   // Add plugin code here...
# y# C/ J/ i! I$ Y% l, C   ```
; W! T, O' Z6 T% p, i4 t* D( Z7 N4 c! H5 f
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
, d8 Y0 e" r4 [, y7 ^- m. X
" s) I! D  R! |$ S, S2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:/ N! J  X7 |9 W5 D- z1 W
  W6 U7 S' M! ~: y* k& `, p
   ```
& l+ n! L- S9 J1 s5 {1 Z5 ?   add_action('init', 'create_custom_post_type');" e2 u- W: }' S4 k9 p9 A
   function create_custom_post_type() {
0 r6 D, B3 B( J& o+ `      $labels = array(3 ]. u) ~; g+ J, n2 T+ d
          'name' => 'Site Wide Notices',( O$ `) T" R' k# L. T
          'singular_name' => 'Site Wide Notice',- k9 _2 e/ ~  E# K9 [
          'add_new' => 'Add New',
8 {! y% |2 G  W6 M  b* S6 F/ y          'add_new_item' => 'Add New Site Wide Notice',; N5 I6 V) i( b6 P* N
          'edit_item' => 'Edit Site Wide Notice',
- a5 m- d% |4 _9 |          'new_item' => 'New Site Wide Notice',( X  D9 Y6 _1 D$ D! L' v
          'view_item' => 'View Site Wide Notice',) ^9 L9 G" h6 K! J' g
          'search_items' => 'Search Site Wide Notices',
6 J( e6 J* b8 x6 r1 v4 x. W9 W' W. E          'not_found' => 'No site-wide notices found',. N- X& O! O( @& V2 }+ x4 _
          'not_found_in_trash' => 'No site-wide notices found in trash'* x" e, ^7 s3 q8 {; ?
      );7 Q% U0 A8 ?# H+ @  e8 L
! t( |4 y0 e+ W8 @
      $args = array(
2 b6 \* B4 G/ H8 ^          'labels' => $labels,$ {( b7 Y2 r7 T- R' M, d& \* u& E
          'public' => true,
: C! Z  s9 y# p& h          'has_archive' => true,& J  t9 N, B' B8 P
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),. W7 `) X0 S; h2 `
          'taxonomies' => array('category', 'post_tag'),
  K# L' S- A% ^  ~9 E' f# b. w$ e          'menu_icon' => 'dashicons-megaphone',9 c% p8 t7 w$ e* ]% o  K
          'menu_position' => 5,' Y; b& y9 Q4 V0 U9 F$ t7 M
          'rewrite' => array('slug' => 'site-wide-notices')$ y) r/ D- u9 s: F9 d7 ]
      );0 x3 w' e4 E" ^
. j/ d7 [$ Y& |
      register_post_type('site-wide-notices', $args);
8 Q- ~% r# [! z  T" p   }
: D( g* {1 Z4 E' \9 y   ```
% s( @; p% L, S7 q, m1 u2 Q, c2 v: i. [: @* S2 I0 t. M* Z
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
' b3 @8 o7 }+ }
+ P" P- G& P0 L' F: x3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:, E+ s, I# }, d- ?4 v7 K1 F' j

  q6 B' u6 Y& X: ^& j5 }* V# m+ p1 `   ```
% |! u0 b  k, p+ i0 @   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
0 Z0 d8 C$ R2 Y4 K   function add_site_wide_notices_boxes() {
6 l! g& h5 Q) s% r& \7 y) |. c! F& G      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');5 I' _& E1 W) W7 w- W
   }. w- n3 N# H- j4 }3 k5 M5 I
9 M% U5 n; X, s+ }! J
   function notice_details_meta_box($post) {) h, M7 H  _$ P' k8 L  i
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
4 R9 K7 \/ m( B$ W      $notice_title = get_post_meta($post->ID, 'notice_title', true);
' n0 D3 x8 d4 x* F/ R      $notice_content = get_post_meta($post->ID, 'notice_content', true);
4 I/ A- Z+ h" Q+ P. Q& N5 e& L& I* k      ?>
' O7 `4 m6 k% j      <p>* W: z" e( s* _/ r" x! X) K
          <label for="notice-title">Notice Title</label><br>  u/ t* w, s' _% h  p" w. f! I
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
1 e7 z* q( ~! A9 S5 R7 V      </p>
5 M0 m* B7 `' Z1 o6 Q      <p>" e& B( B% [+ \- i) U# J( {. c9 \
          <label for="notice-content">Notice Content</label><br>: ?* ?. q0 u- W) X$ L) g& L* F0 w. K
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>- k0 a- r- U5 `- A
      </p>
7 `4 e! w' `* o5 k" u      <?php
+ n8 @! I$ ^6 C* S6 q   }3 l+ V# q& @# j

7 W* ~& f2 N0 w# A% H# H   add_action('save_post', 'save_site_wide_notice_meta_box');8 W9 p& u0 Q. X- J/ z* q7 W
   function save_site_wide_notice_meta_box($post_id) {. f! ?+ v- h: p. \8 ?; V$ a
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
3 \) V! Z$ H! E  \0 v         return;# p" i2 ?0 \$ ]3 B4 q" |8 W6 }
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE); s& A- \" k0 J* B
         return;
. j* ^' A1 h0 V/ }. e. V' i3 f" e# k% G" o* J& e$ n* e
      if (isset($_POST['notice_title'])) {7 z$ {0 Y( K: x- E1 J) n( a1 n
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
/ p/ ~" h* r& A      }
: N: S3 x4 ]0 Z. A: p      if (isset($_POST['notice_content'])) {
/ f7 ~) D0 H' g0 R% w6 [( N' W          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));/ e) g0 K3 v( b0 K$ f0 _, D+ u2 x! _
      }
' a; H" o/ M" B! x' B3 s( \# U! s   }. I; u1 r$ x6 E7 B
   ```
+ C* n" B2 L" u! G2 u# @( ^- ~2 u% V* c4 j; X! e
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。6 Z3 _1 |( r6 Y0 V0 @% v
! i  c6 Q( R% m9 o* N
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:" f8 [$ f' ?, n6 B2 l# B% p) R1 Z% j

& @, _. y4 m. c# Q$ R: h- U$ E   ```3 J6 }& B* }7 g9 l5 Y
   $args = array(4 z$ U( k7 `; X5 q4 s& m# \! u
      'post_type' => 'site-wide-notices',- L% d/ F  r+ v8 S/ c& G# f
      'posts_per_page' => 3,+ G& U: \, X) _- i1 g1 o& W- Y
      'order' => 'DESC',) G* ]) [. @3 b8 [' B' }* ^' |; v
      'orderby' => 'date'3 E! h2 o2 l7 Q1 _6 t) c# e
   );3 ~7 h- g; Q; ^  K
   $query = new WP_Query($args);, k2 C6 _5 X1 J0 T) {" w) z! O
   if ($query->have_posts()) :
* b* ~8 j; q& F8 `2 `      while ($query->have_posts()) : $query->the_post(); ?>
! V7 s! @  a0 [7 x! D7 s. q          <div class="notice">
' p  e  W$ }& [2 U: G9 P              <h3><?php the_title(); ?></h3>% S4 f9 S5 {2 h2 B# P5 t  b
              <div class="notice-content"><?php the_content(); ?></div>( d! Q6 p) m7 O' j# e
          </div>) i% @+ O: T+ t& m- f  q& i
      <?php endwhile;6 g7 ~! ?8 A; _) h9 M
      wp_reset_postdata();
- U% a5 Y+ d9 z! S+ t* X1 i2 ^   endif;8 ]9 U. m" f, G5 a! P- M
   ```, E7 {; `1 S. I  w! n3 g; L5 m
/ L- g) \4 j5 f. _5 V
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-21 13:27 , Processed in 0.014474 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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