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

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

[复制链接]

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
# Q8 f2 q! u+ ?6 b4 b9 ?9 b% [. R, [, q
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
- J% X0 [. }7 p, x- r6 |' |( b4 s  h) c7 U/ k; \& ]
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。- [# a8 z, I* f; l9 U* U: m' u

. m$ W9 n3 Z5 s7 X8 B# w% |3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。  w7 V( x( }2 `  ?  [1 c

" e; Q8 s! a+ I! z& u. O1 w  Q4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
! j; w8 ?0 X. p% i9 }, \9 K
9 {/ t) l1 ^7 Y9 s8 P" P8 L注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?& e  {9 D2 H) Y5 i

$ m- J7 |% L8 k3 J/ E. v# B: d8 K如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:4 X3 B2 M: v- i8 L

9 [" Q$ ?4 b3 W0 y+ k2 Y7 u2 g4 i1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
6 I( P- S; f4 H! q* r
$ r8 z5 A4 g# N6 |0 n' L  q) h& T   ```
+ O- }0 a& \" J* q( i* f' I   add_menu_page(
! U% ]. k& X! r( Z' M       '全站公告',1 Q. }! @3 L+ l
       '全站公告',4 I. q! O% e- n, a
       'manage_options', //需要的用户权限$ P& ^' c$ m: o9 R8 }: P8 o# r# z
       'site-wide-notice', //后台页面的 slug
: k3 Z& j, ?# [1 w' r% Y2 d% v7 _       'render_site_wide_notice_page', //用于渲染后台页面内容的函数* w+ z" T% T$ I. D- E% @0 e
       'dashicons-megaphone', //用于显示在菜单中的图标2 Q7 q) P. a6 A& _, }/ w+ T
       30 //菜单项的位置5 t8 }$ j! e+ N3 f$ j
   );- u/ L) j; F. Q+ \# P$ w  h
   ```  _4 Z4 `, Z: O$ E6 d% O3 x
% }, H( F9 Z  G9 r: E/ u" g
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。7 C* [1 I* b* `

( P* p: J3 Z9 d8 E2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:( L, F& S% V5 a. Z
2 B/ C' r2 }: U
   ```
6 g4 s' Q6 A( h; Z   function render_site_wide_notice_page() {
! N  l+ Q  x3 c, A4 L1 }& G      // 渲染后台页面内容
( o/ A, W4 S7 d/ {- F* }5 g1 m3 Q      echo '<div class="wrap">3 t4 a- u. P; L8 A2 ~% C
          <h2>全站公告</h2>" }6 z# x" Q/ o; l
          <form method="post" action="">
/ x8 d! E6 X  H# t6 B. M              <label for="title">公告标题:</label>
  s2 s. G& F# B4 q& O2 X- g6 S  ^              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
& e: j  m2 ^9 I) ^              <label for="content">公告内容:</label>) ^* o2 ]" ~; g8 U4 R4 `
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
: E% g3 ~3 O( K* U5 B% Z% F              <input type="submit" name="submit" value="保存设置">
' G- ^& R- X' Y6 `. r* ~          </form>; z4 r1 v& F3 ^3 g  u- S. [5 K
      </div>';9 ]5 M. `( C! J# w/ \7 a

( e1 g2 ]0 F( f( l& W3 h# s4 q      // 处理表单数据" O, m3 z( t2 f& B, `
      if (isset($_POST['submit'])) {
% y* {: I! c0 K/ K- |. Z3 {          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));* \* c3 m5 W* D) U( o4 @
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));0 e0 K1 @+ Y# E) V
      }
5 o+ Q: d# b  e   }0 Y2 S, f7 P7 A
   ```
0 i) F; V# M. M) O: o( f# Z" |, t3 N2 R1 Q9 j3 r
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。' }. L" e) Q* }. f: B) l; T

. B: q3 C% b$ z) i8 p3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:8 o" v+ D0 Q& k3 d& A% n) Z0 x
- G% p; z' z8 S
   ```
, p) Z) ^+ q1 R3 k' M- r" n. |8 ?   <?php
4 A7 ~& W- s- C# \9 I/ b   $site_wide_notice_title = get_option('site_wide_notice_title');
( S. m1 K; l  H0 A6 q1 e8 z5 [8 y   $site_wide_notice_content = get_option('site_wide_notice_content');$ s4 i7 l( R/ t/ f
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {6 p! {' V* a5 S+ I' A7 v- E
       echo '<div class="site-wide-notice">';
" i$ `/ H4 s5 F$ B       if (!empty($site_wide_notice_title)) {! L0 T  W/ V- O. _  j
           echo '<h3>'.$site_wide_notice_title.'</h3>';
: \) Q, n- E' H, D4 V; w       }8 w2 y. A# v2 s
       if (!empty($site_wide_notice_content)) {3 W7 L8 K5 G$ C! G
           echo '<p>'.$site_wide_notice_content.'</p>';
. X# c* }. F4 ~6 V$ U4 E6 h       }1 }. }6 J3 M6 p; V) f
       echo '</div>';
5 n0 ]% G' a7 u/ [% G/ n, _   }
4 @8 C/ q6 K+ @: m! S   ?>( E% c( Q4 N. Y- w
   ```  R5 Z& X4 V( q
4 R2 A& ?' R/ p/ b
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。* `7 o# d& h! _" ~8 r& q$ S
% @- b1 N: ~( k  Q! ^$ H6 J
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?2 J* b1 ^% V0 e6 P2 j
; Q  n! }& N- b9 x
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
$ N7 {8 s! w* E$ K8 \4 y$ V
0 I  e& I- R& z) t! V1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
% |9 I- t, w9 d' S5 @3 z/ L* ]0 a: p% T; S: D1 `4 n) l' x
```/ l: e" _' L$ d# A; d7 {
function create_custom_post_type() {
$ K) q3 F& ]  l    $args = array(! b  q! O8 Z! \( C3 B1 y
        'labels' => array(4 L" V1 E9 g. p2 A
            'name' => '公告',
/ Q* Q" w4 M8 t/ ^1 W! {            'singular_name' => '公告'+ ^+ X9 _( s  E1 ?0 ~6 [! N! |
        ),
; o" L6 t; l" X7 E5 p        'public' => true,$ z  e# v+ R3 v  o4 B8 A$ S
        'has_archive' => true,
" K$ r; G( ]6 R0 H5 ^        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
$ b8 P- I9 ~7 `/ [9 N: a  T        'taxonomies' => array('category', 'post_tag'),
9 w& _! m. n0 \: T2 v9 C+ P        'menu_icon' => 'dashicons-megaphone',
3 K# Q$ G1 F( W/ t2 X        'menu_position' => 5,! T4 T% q5 c1 t" p6 Y0 H! C
        'rewrite' => array('slug' => 'site-wide-notices')% _* f- P: v) A4 W: m1 `
    );. f3 f( s9 ]8 M$ `
    register_post_type('site-wide-notices', $args);" R& e/ B/ a2 f7 r
}0 @' m1 s: y0 I$ @5 a! ^( r: c
add_action('init', 'create_custom_post_type');4 l4 P' m0 F6 _6 `
```, E  }- d6 }# F% o( \, ]" T

% Q5 |2 Z4 t  U8 [在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
) J  m4 j" H$ s: l" E0 \& K5 {& M) K! T5 J
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。; T- E$ x  m1 ^# n, y+ j8 V, T) i( ?

* I* N& T# ]+ a0 h$ p; f3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
# o8 F5 v; s) g4 q! b( e+ N4 o" t0 ~7 B3 I0 m9 |4 ~% @& j
```
& q( @# j5 ]8 a$args = array(& d6 a) H% b4 A2 e/ Y3 o
    'posts_per_page' => 3, // 显示的公告数量* P: m. M& _8 m$ s7 z) k
    'post_type' => 'site-wide-notices', // 公告文章类型0 j. x% U2 g' \$ n8 ^
    'post_status' => 'publish', // 公告状态
9 I5 T( H, p* T/ ?6 X    'order' => 'DESC' // 排序方式
! k0 O# ]& V- U4 S, F0 y- W! O);
7 }7 {0 H% V( W+ B. t5 X! p- M- ]; m
- H/ r6 Y4 O& ^3 w: Z/ m+ U$notices = new WP_Query($args);
0 X. K( j- C# J6 c! h0 |if ($notices->have_posts()) :
' b6 z' t' D2 _6 g: I) p    while ($notices->have_posts()) : $notices->the_post(); ?>
9 x% `7 u+ H8 f7 m        <div class="notice">
! a3 v, |; O( u+ e5 v            <h3><?php the_title(); ?></h3>& u' a* A; F8 Q8 ~' \! T, W
            <div class="notice-content"><?php the_content(); ?></div>: X' p& n& j0 W, S' J9 `: E
        </div>6 J; ^0 [" a; |& u
    <?php endwhile;
: Q/ ], b) p: V2 @; D- k5 r6 Telse :8 h7 W- D) h) u" z/ e$ m
    echo "暂无公告";3 P* w9 Y: }! l1 D- A' ~
endif;# {$ }' E) e- b) z+ W3 j
wp_reset_query();
% T2 b  C; q) h```* j; N; G& {) J3 E

# w" q* c) z: Q  H9 z" [6 z- N3 e这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。# p: I! a; s+ `) }3 A, g
0 {; L4 u5 j5 T' A; i0 o* t
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?( a/ P$ ^; i" O  a6 W
, n' u$ m! \& c
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。8 c0 x3 J0 G5 e4 V0 b( u& ~
3 \% I4 Q% a; c  H& |1 ?
以下是创建自定义插件的步骤:
8 _4 |$ V* j& M7 {
" p4 Y6 l" ], |. {) g* o1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
8 ^+ P" K. J0 f6 ]. D" c  Z1 `% \3 L! ]+ Q, ~) j" a; S
   ```
: K% `9 O: ?6 N1 _   <?php
$ d8 B# ]6 [7 U' r, h% ^   /*
6 ?& z0 G3 x5 [0 q, Q   Plugin Name: Site Wide Notices Plugin
9 K  c* Q# w$ P1 d& P1 ?0 v   Description: Adds a new custom post type for site-wide notices.+ }8 R) a$ ~) D# a& Q
   Version: 1.0
4 i2 P1 k) y. q+ K$ b$ S8 n" ]+ k   Author: Your Name! R- k3 u  o: [" c( v
   Author URI: http://example.com5 S5 A# F+ c/ l; A- I
   */
( T6 q$ d0 e- E9 \# q2 T* ]. |1 r$ D3 C, i
   // Add plugin code here...
+ P; j. t! T( @$ ?5 }   ```
* W% W8 [# K& N8 t
1 D2 W; q% F4 b' T* t2 o& p   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。4 {) D9 m8 o8 t' r7 u- z
7 a/ b! T0 z) s  ]8 p1 q3 w
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
1 t) v* Z! Y" F/ {, B  V( L8 h% V% l5 z. Z
   ```
- Y& q3 K2 x6 a   add_action('init', 'create_custom_post_type');
  L) b6 L9 {) v9 n9 ^% y   function create_custom_post_type() {( Q/ s6 F- K9 v. n6 m
      $labels = array(+ e  e9 J* v1 i( r8 ^/ D- b0 p8 F; C
          'name' => 'Site Wide Notices',+ ?! ]6 }7 v1 j1 r& U( Z
          'singular_name' => 'Site Wide Notice',
- Z, e1 M9 |1 ~2 x7 U4 K8 |          'add_new' => 'Add New',
' e* p1 T8 [0 R          'add_new_item' => 'Add New Site Wide Notice',
& L, ]0 S0 q# z0 {5 y! f/ J7 t          'edit_item' => 'Edit Site Wide Notice',% B) M4 }' Z" _2 ?0 r" a5 D
          'new_item' => 'New Site Wide Notice',' A, N# i9 K+ B7 P! R
          'view_item' => 'View Site Wide Notice',, F" h. }0 d. [
          'search_items' => 'Search Site Wide Notices',: o3 S# A/ \! {1 X! U, U
          'not_found' => 'No site-wide notices found',, d: @& U. _+ K2 o& c. G
          'not_found_in_trash' => 'No site-wide notices found in trash'; w4 m, N- Q' D8 R; P( {& Q. R( u8 J
      );. D8 d8 g. N  y& ?! O1 p% @( X: C2 q

# N- s+ \& C3 R/ e  X      $args = array(, V8 l# _% R8 m1 R1 p( q7 l; i
          'labels' => $labels,
2 e' b9 e0 |2 o0 r. H' a          'public' => true,
' j2 w/ i/ \& N, h2 j          'has_archive' => true,
- [3 g8 w6 w8 B. u          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
% g1 H( ]) I' q# C) g; w. H3 ~4 M. U          'taxonomies' => array('category', 'post_tag'),$ y( D, G! {8 N4 ~. J' _' i
          'menu_icon' => 'dashicons-megaphone',
3 P& m; T+ Q1 z6 Y          'menu_position' => 5,
" e* j- K3 W7 G7 y, P0 A          'rewrite' => array('slug' => 'site-wide-notices')% i! t6 b' j* A( j
      );
6 H  {. \* g# ?- y7 c) I$ G; P
      register_post_type('site-wide-notices', $args);
  C+ @" X( I) Q" o9 V   }2 _) j7 H- g. t$ U
   ```
5 w9 x9 r3 v1 m3 r2 L3 T& r# n' R4 T0 |& @& F8 n; {: _
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。6 t) P7 s8 F8 H0 _
* b) q  B- `$ ^2 @
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:/ A3 z" w" c3 c& {7 z: w3 Z
3 F3 Z! A4 T1 C) R2 C& e
   ```
0 J; r, c5 q  H, R   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
& ~2 i/ P) C. W8 F   function add_site_wide_notices_boxes() {
& u' d% B# ]8 [8 a* B& I! J7 o      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');4 }$ \. i/ S6 B2 h
   }- ~. |$ g8 F) C7 h# D8 Z4 R
( K( O, Y) z4 ^6 `( k0 x9 c9 f( L
   function notice_details_meta_box($post) {, Q& O- u5 c/ i1 b+ N  e
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
; O9 t& [% W& r5 a5 g8 R: @      $notice_title = get_post_meta($post->ID, 'notice_title', true);  h+ H1 u: F; c1 t. j6 H) \
      $notice_content = get_post_meta($post->ID, 'notice_content', true);. K% W. ~2 Y# S& U) i  w# Y: |. \
      ?>1 f* j+ Y/ V7 T( B$ @5 [- |+ @# L
      <p>. k3 h  Y: o3 n: Y) T% T
          <label for="notice-title">Notice Title</label><br>
2 t- g( B& j( k: f* Z" k          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
; m, G" l; k7 s2 M& X      </p>
/ C9 l0 c+ A3 O# C0 `7 m, i& a5 i      <p>
# t" L( ^' @$ D          <label for="notice-content">Notice Content</label><br>' ?% _/ z; l: Y) Y2 B
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
$ F) D( v; v! J  B      </p>; o& V2 u, W* m( N/ I7 F
      <?php0 G1 _% c' z+ S: v# k& h/ d+ w; [
   }
8 B2 p$ ~2 o- h+ J8 p! {4 n9 i/ ?5 f6 W9 x. R
   add_action('save_post', 'save_site_wide_notice_meta_box');
% K7 j5 @" y2 j( z$ }: _- S   function save_site_wide_notice_meta_box($post_id) {
& v7 `( O: C5 c3 F      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
. ]# q  m  ~% r" m! B( b5 L4 C         return;* G- `, ?; S2 g' u
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
% ~6 O" [8 I" k$ l" x8 e- E3 k+ H         return;4 e1 d/ T3 M6 j7 {

5 j  l/ x0 H( R1 L1 [      if (isset($_POST['notice_title'])) {; u5 }3 a! d" s3 g8 }* ^1 X
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
9 u; u0 T0 ]) \- y* M6 a+ x9 T      }  j: {8 g4 o# |+ v- F' r6 g$ ?0 _7 y
      if (isset($_POST['notice_content'])) {
( q) B1 _* f9 F& j: T          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
( d. a5 p1 n# X      }' c  b5 F( R6 A+ O; X" M( c
   }& x1 a$ z( g* c" f; {% `
   ```
& ?$ T+ t6 l5 G4 d+ [2 a5 l1 v! B% Z
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。& ]8 ]) {; d: I! `9 A9 Q1 N
, t( l9 B, n/ t- |8 L
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
+ F8 i$ X+ Y6 e# |1 N# b3 W5 g1 S. U
+ \  s% a3 q, f, L- p% s   ```
( D5 I- \' j9 o5 J+ q   $args = array(2 ?7 C2 E5 L+ W6 m# Y: `7 [+ o/ }
      'post_type' => 'site-wide-notices',8 a* w+ e/ A0 T6 l
      'posts_per_page' => 3,
  C0 r+ o, o; K* [) |      'order' => 'DESC',
0 A( a# j/ ]/ a$ B+ F# n9 P      'orderby' => 'date'  @& t. P) O# d6 `& P$ s5 \2 u1 E
   );" Y  u7 [8 ?* H  E! @. k* C( v
   $query = new WP_Query($args);& c: P+ |, V  K" m2 b9 |
   if ($query->have_posts()) :
* i4 d# T$ w, M8 B) O5 [' Q      while ($query->have_posts()) : $query->the_post(); ?>
) G$ o# {9 B% r' D/ h          <div class="notice">9 V- w0 V2 n: A, d; ?
              <h3><?php the_title(); ?></h3>( B* G; l' P. C: M& Z: z& O
              <div class="notice-content"><?php the_content(); ?></div>
& s) L! R+ u( }; ], C% p' j/ Z  B          </div>$ N' F; a) @- i# d7 c. N) k8 z: x
      <?php endwhile;( N/ F5 m4 u: w" ~, q8 Z, ?
      wp_reset_postdata();
2 B" y0 \7 z& c) `' Y. `  t8 S   endif;4 h6 n3 E- L- E
   ```# M2 `2 e: S+ c+ U/ V4 e4 _

' Z) N4 b3 ~8 h0 l4 q0 R% A   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-17 23:13 , Processed in 0.013409 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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