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

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

[复制链接]

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:* k% N+ D* W/ T- j8 l/ r. I' t5 ?

. L, D, t' O, L$ ^1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
) f9 L! A) _/ B0 V) h$ n" R( P" G2 B$ p& a" B
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。/ Z% @, f( J5 g! p) D4 F4 N$ v" T

) M2 w: [" e. F  |+ K3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
6 {' z% M# h1 i1 p+ u9 f/ |! F4 g( j$ D9 x+ t4 J9 Q& f
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
0 ~$ I* ]$ c3 M
6 ~$ n6 J: J% ]/ w注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
6 _% ^1 }3 G+ `& n9 n. U, o9 a! I# Z; _8 S
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:' i4 F9 y9 A1 c+ _" z

/ ]7 i. M3 O& j" U1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
1 s" [, X+ N6 B* U/ ^7 I* O. Q+ Z# H& w- P% x- \" a! V0 N* C
   ```
3 v0 B0 m  o5 J' p   add_menu_page(
% G' l) c$ m  |' g$ N+ H" ~       '全站公告',2 c; A4 f; S3 ^; q
       '全站公告',
" q9 v/ ]& s! i, M, y5 L       'manage_options', //需要的用户权限
3 s9 m; \3 r2 U; |       'site-wide-notice', //后台页面的 slug
8 e" x( ^; z, E  o! y       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
9 C1 h$ x/ e' T5 a( Y4 w       'dashicons-megaphone', //用于显示在菜单中的图标
. [& ]2 s( I2 e3 R; O' ^       30 //菜单项的位置: Q, t3 G% Y. ]& e0 I7 D, w
   );6 a2 A2 b4 Y8 k4 N' Y8 ?
   ```
  V) x0 n) C) v% G2 R5 F. J% ?
- {8 s" i+ N! ]   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
# V% m6 ]9 ~- ?  [1 J. i* I% `. b& G: N8 r
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:8 }$ [; N& r( d% X+ c- y

# a1 @" [! ]( q, p   ```
, q- b* x2 R" S   function render_site_wide_notice_page() {
2 z1 C8 O8 v% U! K7 F* p      // 渲染后台页面内容# Q: n. D  {$ Y( n# M/ }
      echo '<div class="wrap">
2 N, B0 @3 y* [$ l7 D) E          <h2>全站公告</h2>
- O2 @) `2 Q% N4 U. }, U          <form method="post" action="">
% z; m9 ~' o, i9 M0 H8 Z+ _5 R! k6 ]              <label for="title">公告标题:</label>. ?  x/ g4 c$ q3 [! F4 ^# m, i
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>  l6 y4 T0 r" K7 w
              <label for="content">公告内容:</label>  g6 ~( M& z3 A# y. q- A- J- k
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
* X3 B. B4 @3 }6 d. [- ]              <input type="submit" name="submit" value="保存设置">
0 M6 v& {7 y6 @5 V; g          </form>
, F7 l- U* X) K2 e4 P      </div>';
  K8 J% b# J' B) g& D2 A
0 i- l- @  ^3 q* a0 F0 n      // 处理表单数据: o+ ~6 C5 X# R) u! K# q
      if (isset($_POST['submit'])) {
  L1 V3 r4 A/ K7 Y; K! p3 ]          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
6 `  D) g4 r5 x5 v" T& J          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));3 u8 K7 W! p# O2 M) ~
      }
. R4 ?. Z5 }( Z% J7 P3 A5 S   }
8 [: i8 p+ c2 b$ y8 b9 q8 p/ ~   ```
! n1 c7 E) s1 h9 G, L/ {9 I4 {* t
# x3 H( w$ e% s- H; R   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。% x5 i# j* Q; i( \9 w, Z

6 z/ o7 [& p3 Z) ]/ ]& H3 a3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
9 j2 D, O9 {; d* \; W/ k% B0 z$ P+ W" _" ]( E/ m5 v' t8 L* r
   ```2 l8 x* H" M. D, ]7 [
   <?php4 E, ]4 D3 D- d
   $site_wide_notice_title = get_option('site_wide_notice_title');! X# @0 o  c+ j' F
   $site_wide_notice_content = get_option('site_wide_notice_content');
: v: H0 J& v9 w9 I! P   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
' X2 ^  H3 u- ^# R       echo '<div class="site-wide-notice">';
6 G" H  b/ [; }' V, g, U1 D       if (!empty($site_wide_notice_title)) {0 x3 g0 x, R' U- O/ v; h0 n7 q4 i
           echo '<h3>'.$site_wide_notice_title.'</h3>';( {' `, r- T. ?4 `/ W- Q
       }
% f% C& F3 ?+ b2 H+ ]) ?       if (!empty($site_wide_notice_content)) {
8 ?9 d" q; S# s. {/ F- Q           echo '<p>'.$site_wide_notice_content.'</p>';7 V/ M9 B$ N6 x3 y8 H' {8 n, u- ]
       }
2 U* `# e- z0 T6 J+ P       echo '</div>';$ p" Y) n5 ?  U9 b
   }
* d' I% H/ z0 g% @' ~. D) _   ?>
' y' m/ c/ @( K   ```) D; u5 _/ `, Z

) f1 d9 J# l: g% [   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。* @5 ]6 v. w1 N3 M$ j: M
# N# H7 H, n' i' J0 C7 g
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
6 {& N% c4 Q( M- d
' n! t( l( A) o- G您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:9 P8 G) ?0 A( H
! u( H3 X. W; [" x8 G
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
& g# F3 [. {& d: g5 _/ d
& @: W8 O0 ~6 o' H# j. d```9 ]2 N- i* R! G# B0 B
function create_custom_post_type() {$ Q( E5 c+ V/ s8 H
    $args = array(
) ^) ~: V) F8 R" g        'labels' => array(
( l- p/ N8 D( m+ m( |            'name' => '公告',
2 u0 \9 A; z. a            'singular_name' => '公告'- Z8 T+ i3 O8 }. X: l" S0 R# R- H
        ),* E/ b- k8 M$ N9 R
        'public' => true,  ]3 B5 X! f' w, F. `) p2 Z) R$ _
        'has_archive' => true,
  p6 {8 ^6 i$ ?$ d        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
( q) o; C% G. S# G        'taxonomies' => array('category', 'post_tag'),
% J/ _! H* L6 p) ?5 N        'menu_icon' => 'dashicons-megaphone',
: {" q# a( O# d; Z/ v+ s        'menu_position' => 5,* g7 U) m3 w% O! ~! f
        'rewrite' => array('slug' => 'site-wide-notices')
8 W3 {. L! E. Z! {4 x, T    );
$ B/ r: c: j) t- O( |; K    register_post_type('site-wide-notices', $args);
! T7 H  q9 `7 R/ i: J}6 W' l* w+ D, \+ [) z
add_action('init', 'create_custom_post_type');5 d( _# A5 X5 m& m: D- I# @
```
4 h% z5 m! C/ C! ~0 F4 |4 n$ m" f" a: B% z" U; ^" l1 Z
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。* R- `% |7 L& D2 X; k
+ e+ }) I( Y5 Z/ q% ?( _2 N
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
4 U6 b3 Z  m- F+ q! c$ l6 V: f1 H! L5 r/ @4 L, L1 O- s
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:( Y7 V! ?7 h" ?7 u, N

9 B% u8 Y! k0 R6 ^% V. _6 ?```
2 {2 q: E! m  Y9 D7 [( ?, D$args = array(
1 }2 |1 Y4 [4 V' H- o* W    'posts_per_page' => 3, // 显示的公告数量
: [0 C) I; \  [8 c    'post_type' => 'site-wide-notices', // 公告文章类型: o" S, U. g- O
    'post_status' => 'publish', // 公告状态
  I4 K" w8 s: G! c    'order' => 'DESC' // 排序方式& u- h. `2 j9 y/ E6 n  m
);
" a% S/ {/ {0 e7 X
% T4 r; g: M0 N4 _8 D! U$notices = new WP_Query($args);( o; _. ]$ b1 D6 [1 i- P
if ($notices->have_posts()) :, R- g( J5 b' T+ p  l) G
    while ($notices->have_posts()) : $notices->the_post(); ?>* d2 a! D$ K2 x' I% r
        <div class="notice">6 ~0 d# o. ^3 S6 x: j$ A. [* T* p
            <h3><?php the_title(); ?></h3>3 s1 Y4 }4 c4 L7 m  z9 Q/ u3 A
            <div class="notice-content"><?php the_content(); ?></div>+ f: c& n5 F- u) T, ^2 x$ v7 @8 f
        </div>
& G* ]% s) ^2 A, b& G! S    <?php endwhile;5 c0 q; v! w: t+ T! d1 h
else :
! v2 @/ N8 W. d& Z8 F0 u1 V& ]    echo "暂无公告";
) t2 `! g6 b+ ^* S4 l7 S# wendif;
1 z9 @; e/ v# G. F5 `. C7 j/ {( Jwp_reset_query();
3 r8 `8 N5 q% M. L$ v5 f( I7 _```
* b# \2 \' E) s, X7 ^& z
8 V& r1 J& K  [7 B1 x+ n7 ?" I  V这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。, y# `3 Z. `. ^2 t* h

! w% N# u; e* f/ \1 e* J以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3683

积分

管理员

积分
3683
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?1 m9 `5 A4 _! h  a

) D+ V3 z" T$ J8 K9 k如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。. S7 K# I) }. ]2 \' L0 [2 k9 W

- J% w* G/ K5 ?$ {2 B+ S以下是创建自定义插件的步骤:
* F0 ?0 S* G' m: S
. h& X3 Y" w1 {: j1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:  h- _8 _% B- U4 x) v

: b" j" _% \) c  \7 l8 k7 L) ~! E   ```
. s9 Y) x* o# U- y6 B7 \" C   <?php/ R4 N; h/ G7 i7 A+ B4 D! t* `
   /*' W5 n. E6 B% F& ^$ P' c: I, S- R
   Plugin Name: Site Wide Notices Plugin
$ ?$ F; q# S! Q8 ~   Description: Adds a new custom post type for site-wide notices./ k; @8 l% {) c6 d% [7 S
   Version: 1.0
5 m8 ]. I- h% h( h8 ~   Author: Your Name
: N$ `% h- V4 |( L; b. Z   Author URI: http://example.com  V4 L, A/ @; j2 q! A) J1 l' K- g0 u7 h
   */7 A% {. h4 _- R: O5 S' P
9 }* N/ a4 Z' O8 e4 W! Z
   // Add plugin code here.... e1 A# ?& }2 F
   ```: N4 N( j/ q# s% I, W7 |( l0 Z. k
% P$ ~( q! m- U& h
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。; Q7 M2 Y- g0 k/ \/ b

" b* h" ]+ R& X3 w- s2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
! i/ h+ z* Y% W$ K$ N2 W% Y
0 P3 o- \1 w9 e, ?* F  K   ```
. q+ ~7 m. R6 i: W; r# f   add_action('init', 'create_custom_post_type');+ y; t5 d) I% i' `; i
   function create_custom_post_type() {
% P" W6 X. X$ G- {0 o      $labels = array(4 n6 V1 ~7 T# u8 R! A! J
          'name' => 'Site Wide Notices',
) |0 y5 V( M5 ]! d, q# L; _7 O          'singular_name' => 'Site Wide Notice',
2 C' t6 a1 a, `- @" a( P. R/ S          'add_new' => 'Add New',
9 G( ~* Z8 t0 \  z          'add_new_item' => 'Add New Site Wide Notice',, Y8 w* H6 l0 z+ ^3 k; \$ o3 [
          'edit_item' => 'Edit Site Wide Notice',! [7 v2 E9 c: w5 |& d, ]
          'new_item' => 'New Site Wide Notice',0 s0 d. n9 v' G% F
          'view_item' => 'View Site Wide Notice',
( g' v3 e  k/ W& p! C+ @  X          'search_items' => 'Search Site Wide Notices',
) f( ?" P+ p5 B. i& \          'not_found' => 'No site-wide notices found',& o" E% Z7 U/ a- U6 x' V3 ^
          'not_found_in_trash' => 'No site-wide notices found in trash'
7 y# O' _6 p; [+ j8 C      );
" H1 V9 z. [" M
, Z6 e; n- v4 T' n; q5 S; `      $args = array(
3 {% e) l3 k/ P  ^1 h$ o1 u          'labels' => $labels,
5 E5 F9 ~& t: f$ ^* C+ A# V6 c          'public' => true,
0 s# o$ w& ~6 V5 ^, Y1 g1 {          'has_archive' => true,
" R$ l0 x2 X6 l7 r& r) ~9 P          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),# F- x- W" }* r" X9 L* ]
          'taxonomies' => array('category', 'post_tag'),* C. u' u' _7 Y4 |; J9 A
          'menu_icon' => 'dashicons-megaphone',
6 F. D5 R# Q6 `' u( G          'menu_position' => 5,( w; g9 R5 Q/ J8 G
          'rewrite' => array('slug' => 'site-wide-notices')' \9 d9 R0 {4 L0 ^5 n
      );
* e8 F# `! E; G& C1 I) m, C% E
: m0 J( b, e5 {3 `  l4 A      register_post_type('site-wide-notices', $args);/ B; C4 P5 e* P+ y! c4 B( b
   }, {0 y6 P& Y1 e/ R9 H- R  Z
   ```: k0 w8 v8 W+ Z9 v
5 b4 X* O! _* Y5 ^5 u' Z0 P
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
7 P$ Y# S! d8 i3 d  A  `2 o+ A+ V0 J. o- a( B
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
1 T* O3 s2 [+ Y4 R- Y
8 |# Y8 D/ A- O7 j+ l   ```
8 P8 j4 {5 ~' H" D" \3 \   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
: d* W, s+ Q3 |! J, ]9 k2 M( ~   function add_site_wide_notices_boxes() {& v, b  S% s7 l5 F2 C# T
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
% R- Z/ o; T) d. Z3 Q2 V8 L7 i   }! q/ r5 d( N# R2 [- l  W: j# i
0 h1 j) O6 l( S
   function notice_details_meta_box($post) {5 ~+ z& D: _, H& Z( q
      wp_nonce_field(basename(__FILE__), 'notices_nonce');+ `( B" p* r- m) y9 h# e) G! Q
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
( }: |" t( v' ]8 h, p      $notice_content = get_post_meta($post->ID, 'notice_content', true);
2 h) S* C4 f0 K3 e      ?>. x3 B" J5 p  ]9 O9 m6 V
      <p>1 D8 M0 M$ N7 K) D1 ]: @0 p
          <label for="notice-title">Notice Title</label><br>
9 c" b1 M: \, J& h, R+ [          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
4 B( b+ j- }8 g) x% z      </p>6 V# E( z* }" E# s
      <p>
" L" W4 p0 g& j8 u; N9 {4 M          <label for="notice-content">Notice Content</label><br>( s1 t. t7 {/ J+ N, S- U4 g
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
& H! T2 Q- ]1 u8 H( C4 X4 s' k      </p>
$ d( V! D+ f* ]+ ^0 J$ E      <?php9 e3 d# _( F/ X, v1 ?
   }1 }/ h* o7 f" ]* j1 o4 D( ]/ z" t
' t' l- c5 N( H
   add_action('save_post', 'save_site_wide_notice_meta_box');
- D7 W3 \1 R5 t% [% f. @2 g   function save_site_wide_notice_meta_box($post_id) {5 c  H; s0 a( T; K+ i' q3 t! n+ S; z
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))8 d3 @: S7 G7 r1 u; e% f% ]' r
         return;
  G! T' f, x0 }  D      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
7 |7 V- H' k! z+ M; A$ P$ m2 P1 @         return;9 p( [7 V/ O4 W1 \6 E2 Q' f
) X; f+ F- c/ U" d9 e1 W8 ^
      if (isset($_POST['notice_title'])) {5 a- F' p% @% Z$ w
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));0 }/ D; O0 p8 Y* k
      }: s( c4 T/ x, }" S6 ?/ x
      if (isset($_POST['notice_content'])) {
" ]9 o# ^9 Q4 p4 @* s/ Q          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));6 U. e8 ~6 y( R. X
      }
0 }3 z1 b9 ]2 _! i  z0 b- [   }
+ M% F/ D2 M3 E   ```
: z& Y$ X. S* u2 j7 u$ x" k7 M, k2 ]$ ~; Y" B
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。+ V/ Y* \- `+ r  `
6 I& c, h; A" A, S
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
: C* @4 e, k. c: M8 n
5 e: B% v2 P2 _7 K   ```7 o( S6 V' o; R/ W8 @
   $args = array() q( w; K8 Z6 `* A* m/ G5 t" z
      'post_type' => 'site-wide-notices',7 r; S" M- z0 o. I0 e! m* G
      'posts_per_page' => 3,
8 m5 J. G0 B4 I$ |8 g+ h: `      'order' => 'DESC',
! J( H) M& {$ A- E3 }      'orderby' => 'date'+ v/ Q5 R. k! @7 w
   );
  f1 L4 ]/ }5 A/ L9 O   $query = new WP_Query($args);
% M4 O9 C" }  B6 d# Q. Q* X   if ($query->have_posts()) :
3 q% Q: i7 o+ Y      while ($query->have_posts()) : $query->the_post(); ?>
" L! \6 a  c$ D; N3 o' x; w: W          <div class="notice">- j3 n/ y- B  s" y: n0 p
              <h3><?php the_title(); ?></h3>
$ i  H, D6 B1 p+ x( v5 Z              <div class="notice-content"><?php the_content(); ?></div>1 X, ]) ^( ]/ ]  k8 w
          </div>1 M% q6 U8 Z8 z" P1 M# e% s
      <?php endwhile;
0 ]5 U' U4 {& `2 z9 l      wp_reset_postdata();" U1 {9 s3 ~; M* W$ ^! _
   endif;0 s6 R2 u% E$ ?6 y3 |) O/ ?% ?
   ```7 \! L8 t" a* X# U- w3 l

: H. x8 I; x# B   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-11 15:46 , Processed in 0.012897 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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