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

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

[复制链接]

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
8 P9 `* I' k1 p7 d6 f6 S: g( U9 P5 Y/ P$ V, B6 D
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。! H9 i/ b! Y. Y- ~% v  y& H
3 y1 }4 N+ f" q0 A9 {, i" w/ k
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
% U2 q6 m* o2 {. T
# d4 C2 s, o5 ~4 }3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。7 y8 N! I; s0 G5 r, w- P

+ }) `& E' u: A0 H4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。' X. `$ v! T' u! K1 L& _7 L. ]; q
0 V$ W" {' B1 C& K* J# ~! u5 ~- B4 U
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
5 J6 l. |1 T" B0 _; h: `5 I* C% w' m1 l' O' H
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:# b% D8 W/ k; y7 B
5 {+ G7 Q2 E" w! m: C* b
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
. B6 _8 P, `1 N) G- U$ V) c! t! f* y7 M  }( b. E, h
   ```
) Z: `  p; t! v3 P' i4 @   add_menu_page(0 l  A3 z, p+ w+ X
       '全站公告',
! m% L- A; \* c6 z* U2 c8 m6 k; A       '全站公告',
+ Z, o3 e5 q# e       'manage_options', //需要的用户权限# M% x( _* j5 Q
       'site-wide-notice', //后台页面的 slug
' m, B4 P1 o: ?. ^2 A       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
6 }& t" g- O8 s* S       'dashicons-megaphone', //用于显示在菜单中的图标  Y* F4 j' N- `( W( K: d4 A
       30 //菜单项的位置6 x+ L% d# C1 S& i4 c
   );. C8 `0 O: ~. o+ w
   ```
3 M0 N6 h8 v0 p: y: J
2 `- P9 P9 O- ?6 ]% V7 r   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。# c6 s8 N) c( m0 j2 @2 y( p# G
) q0 s* M" S& X7 H& H4 g$ l
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
6 ~# g5 u5 A$ d% I2 C  M7 i) B9 x! `# D% k" O- \  Q
   ```" }% q$ m7 g! H
   function render_site_wide_notice_page() {
6 p* d, C& G4 t1 z# B8 n1 s) q: @( O      // 渲染后台页面内容9 e; c. p7 G5 D  J4 f4 A  {0 e
      echo '<div class="wrap">1 F: A/ A, R4 e$ [) K+ ^
          <h2>全站公告</h2>
1 w, S& c/ Q2 \- `5 d7 Z5 O# T5 W          <form method="post" action="">
6 |8 A3 ^% }1 R              <label for="title">公告标题:</label>
, @7 C6 ]' U% m. X$ v              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
. w) B! c% `% R  x8 g: O) W* f) s& @              <label for="content">公告内容:</label>- f$ m3 B, J6 F$ e& j: A
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>8 i* k) f) @  W$ J, Y. I
              <input type="submit" name="submit" value="保存设置">
) p) d/ w5 a4 |          </form>% W4 F, w/ `! o+ w. p% n2 f2 X
      </div>';9 h# C' q. z* f8 |+ }

* _; M: Y$ r* X: h' g      // 处理表单数据0 X8 q* z: h4 ^* c- \6 K, ^  A: m
      if (isset($_POST['submit'])) {
9 m6 c+ A! e% X5 O          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));( }4 z! {* ^! Y, A5 k6 t7 o6 [
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
# }' G; }0 k+ W" x* ]& o      }
( _/ b0 l* W0 ^# [3 ]   }
- c( u* ]1 h& e$ w   ```
, G# W4 t8 A5 t* v( h, s) `( K1 r0 _" A8 t0 ?0 v) k
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。" W. n# P3 A6 {- I5 l$ I& r
) B$ V7 ?# }: q4 a5 `, B" h
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:! v. X/ j8 h+ k
0 C7 S' p2 b+ w# f
   ```, q% z; M( T8 w4 }
   <?php9 V3 m4 _( x) R  z4 Y) H/ ], D
   $site_wide_notice_title = get_option('site_wide_notice_title');
& o& W5 P: b: r4 Y" _/ p3 T   $site_wide_notice_content = get_option('site_wide_notice_content');# R" P- W. h' `: H: ^8 B, ^
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
8 U" E% c, g+ e/ t# |8 O6 l       echo '<div class="site-wide-notice">';
" ]7 }, a; q" |" z5 A       if (!empty($site_wide_notice_title)) {
  L# g) o2 U2 n+ P( h5 ?# b3 Q           echo '<h3>'.$site_wide_notice_title.'</h3>';& k6 {4 e" _# P$ M7 m$ p! K# S8 E
       }3 ^" y- y+ }4 L6 ]% E6 x$ x4 {# q
       if (!empty($site_wide_notice_content)) {  w* g! i6 I  s& r" J( Z
           echo '<p>'.$site_wide_notice_content.'</p>';7 L, S% m6 R0 i8 c, Y- P3 s
       }
! X: T7 Z' S5 n- @       echo '</div>';
9 l7 D0 d- u5 j4 Z5 ?   }# }7 D9 ~+ B( w, h1 |7 ?
   ?>) ]: S. p4 A4 U7 w: V$ u' _
   ```4 Z% D) K& n2 t& V6 C9 \  w8 O& R# n! [4 k
6 k' q# d0 E& r, R  i+ r' N4 o- a
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
% @* A9 G, Q: `  ?( C, n! W! V4 O+ n! G* [7 J% z
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?; l9 K6 z9 a0 \. e8 n

7 q2 M0 n; |0 y7 [% J您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
2 i* a5 Y! g  e* m7 Y$ j
; O7 `6 A4 i; l, F* v1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
8 G/ V  y- j1 b6 C9 m" K5 C! [; d1 Z. w9 Q
```
$ O3 Z0 F, c; Y# @function create_custom_post_type() {
7 t/ ^+ T6 f: Q3 {8 s  t6 I* A: ?    $args = array(
: F4 q! w# `% n3 S1 w        'labels' => array(, i' y% v2 _% ^# d1 k
            'name' => '公告',6 D, c7 S- q$ d8 I
            'singular_name' => '公告'
- w) k8 f& V- b9 }        ),
. ]1 e, B% Q; a        'public' => true,
$ z" {- B. a6 Q# m" M        'has_archive' => true,/ y7 n5 Y0 E2 R, K
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
1 i" n4 [* M6 ^) r2 W        'taxonomies' => array('category', 'post_tag'),
0 r/ Q0 T' |, J1 ]2 a7 h- b% N        'menu_icon' => 'dashicons-megaphone',+ s$ x; @5 b& [+ F' c' K, }
        'menu_position' => 5,
/ P  X. d' Z. {* z2 t' W# g        'rewrite' => array('slug' => 'site-wide-notices')# }  a$ u5 b, t0 B: x4 L
    );% T1 y/ h% R1 z% y; j
    register_post_type('site-wide-notices', $args);
; Q, [' t8 h4 G0 G4 x}
3 i. a% }1 J$ f" P4 |5 Badd_action('init', 'create_custom_post_type');
- U1 u9 v$ ?5 o: X7 P```
( D0 E- K; ~9 v5 W4 R9 {& i) @7 D. l5 Y  Q: U
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
, j; X$ B8 _' F# c0 Q& u1 H* m
& L8 y+ @3 o* w" L2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。6 N* Z1 t+ K  @

! q5 ]: V( }* D4 M; ?3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
2 c1 f! j0 q6 a/ Q! |4 N2 @  o9 u6 o! x+ l
```3 w# g/ |0 U" _0 e& Z. l6 o1 d
$args = array(
% T" B/ |# i% m) V    'posts_per_page' => 3, // 显示的公告数量' ~* T  R1 f5 J: D1 S. t. j
    'post_type' => 'site-wide-notices', // 公告文章类型
4 Y. {6 w9 w/ d5 a8 M    'post_status' => 'publish', // 公告状态' _& y1 L9 R$ X' v; U! i
    'order' => 'DESC' // 排序方式
; Y4 E7 s# v' U1 l& Y) ~);' C6 y9 p9 p7 L" h* O9 i  Q

5 O) q) N' H- C$ C$ G$notices = new WP_Query($args);+ \4 ?8 m; |" e
if ($notices->have_posts()) :
+ R: ^- [9 B' ]    while ($notices->have_posts()) : $notices->the_post(); ?>% O" J2 N2 X  \" s+ D
        <div class="notice">2 l1 J. a% V" X, G5 F; M7 R& X
            <h3><?php the_title(); ?></h3>! c) [- g6 _% a  i% a
            <div class="notice-content"><?php the_content(); ?></div>
; {( {  @5 P2 y2 }, Y        </div>% s) g) V! C4 p: M9 j* H
    <?php endwhile;, c- I. R( V+ j5 x
else :) K# N! }5 n$ A8 d1 d: x6 _
    echo "暂无公告";
$ l! Z6 n7 P9 n6 o% qendif;
& H- r. }5 E3 u& k! `wp_reset_query();+ E2 \# v+ }( z
```* J7 p; q' P7 n3 L' @2 ?. L

. i6 N4 f1 ]) E+ t3 t, U  ?这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
) x0 {* L$ i! K+ h3 [# S) ]9 a
/ U5 I0 N4 ~( C以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?0 M" p( W$ P6 C- H& y5 F

1 h" ~* {* F  I, x! h4 ?如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
# l8 {$ H# p' y! h6 W. c, c
' _8 i4 u9 O) A: B$ s! P以下是创建自定义插件的步骤:
8 b* i6 A' ]+ ]+ O( m3 F3 K8 L( i6 a' u0 R" t
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:3 m( e) m/ m- \. I& u' q
5 E8 l1 j- Q. T, r* ~2 k
   ```
% l+ o. x6 m  H) I2 W   <?php
$ y, b+ B% m& W& d1 _: _  v   /*
0 [% C/ _+ l% A1 {, n8 W$ m   Plugin Name: Site Wide Notices Plugin
5 ~/ C( n5 D/ Z5 H# ^& ~   Description: Adds a new custom post type for site-wide notices.
/ |3 ~4 E# T" b8 N* k3 r   Version: 1.03 H  P" f3 o0 H) t7 X
   Author: Your Name
6 u9 [  a) `3 y5 o; G7 J   Author URI: http://example.com  K, N& Q+ T: g, {: X
   */# S: \/ H; i; T0 S. `

  N. G  z  Y) c# m3 F   // Add plugin code here...
* ^  I. o, h5 E/ I- d- V   ```% o. O" Q+ y# [4 H7 s& D
% p, Q! E/ a  D! k
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
4 y$ q" U% ^1 u* O6 D7 }$ x0 x9 {- _) R0 M
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:  Y2 V- t$ t0 T' |
7 C1 d# z; X/ q7 x
   ```
9 Q# E/ G, Y0 z. ~& \. y. h; j   add_action('init', 'create_custom_post_type');; b4 C) ]7 y5 W: @/ p* _
   function create_custom_post_type() {( T8 p) a8 S2 C. h/ [6 f  Z: j5 U* Z0 ?5 a
      $labels = array(
0 N: g8 ?; c6 Q$ ^, @5 Z4 M  e: k          'name' => 'Site Wide Notices',
- i* r5 ?: F+ j: u0 ]2 v          'singular_name' => 'Site Wide Notice',& _+ S: j7 ]3 C1 \, b" X, G; S
          'add_new' => 'Add New',) E$ e" ~" f6 T" x7 N
          'add_new_item' => 'Add New Site Wide Notice',
4 C% P9 o+ s! {5 A0 W: H          'edit_item' => 'Edit Site Wide Notice',
! l  C( o+ A- S" J' o* D0 n9 x          'new_item' => 'New Site Wide Notice',
# {8 \8 ]. D2 T2 g! ^! j          'view_item' => 'View Site Wide Notice',
6 r7 c' r. P( m- P          'search_items' => 'Search Site Wide Notices',3 s4 W: b* u$ c8 h
          'not_found' => 'No site-wide notices found',6 }& i* A% N7 b$ Q) F- ^1 [
          'not_found_in_trash' => 'No site-wide notices found in trash'9 @6 R" v( ]/ d* D7 Y* p0 S+ W
      );8 j8 D9 T' V3 [$ }1 k7 E
# n# w$ [8 c. q; q  t
      $args = array(! \$ I% j# a/ l" i
          'labels' => $labels,
" Y# r) v6 c& ]( U5 j$ g* X          'public' => true,4 r2 A6 U; {5 b3 k! [0 q7 l
          'has_archive' => true,  D  g7 r4 u; q, z- B
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
1 t% {- ^" m3 R6 y- `          'taxonomies' => array('category', 'post_tag'),
5 ?$ D4 ?! C7 }& n          'menu_icon' => 'dashicons-megaphone',  x0 y7 G0 }4 w" s6 J. f& _7 f5 K
          'menu_position' => 5,4 @2 W* U0 A1 o4 E5 @( n
          'rewrite' => array('slug' => 'site-wide-notices')
. I# n& f, C  u& O- g+ v* n, J      );4 R% l: V) y* b/ u2 e

& C3 r1 T. Z0 Q- p- k      register_post_type('site-wide-notices', $args);
: Z& c3 W# B& q9 M0 J5 [+ d" W2 q   }" b/ H& _0 u& O3 }
   ```0 H( F2 Q8 g/ j5 J
4 D# q! i' l2 r( L  C8 n4 N0 }
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。; c" @% A0 M+ J

$ [4 `0 e) K0 D3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:0 H; k. I: ^' }, g8 X

: X0 p: g# _3 h, Y   ```, W+ h3 V7 [4 m% k& l6 m
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');* ~5 t% k# ~( }3 B3 |
   function add_site_wide_notices_boxes() {
* G9 b! p9 ]/ {1 B. t      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');: n- c+ X  c, {
   }. d) ?1 {& i9 }# V9 B, y/ [% k

* }% O: s/ Y3 k0 K8 S1 |+ \   function notice_details_meta_box($post) {/ J# v+ `" H; Z( T' `' f3 u8 _
      wp_nonce_field(basename(__FILE__), 'notices_nonce');- i$ `, C: k5 e/ a9 u4 `+ d0 q7 q
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
6 D$ k9 l" [2 `      $notice_content = get_post_meta($post->ID, 'notice_content', true);0 c7 j* q1 ?; |/ r) A6 F" L
      ?>
' t0 F) X1 k( O      <p>
& N: c) s* F- H9 q& s  M3 r1 S          <label for="notice-title">Notice Title</label><br>6 t: U9 j0 ^! J/ L
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">& V  k& f( E0 A# K
      </p>0 g8 @" |6 Q, k' v/ c0 l2 b
      <p>
5 Z+ u5 K- ^- F  c5 k' B          <label for="notice-content">Notice Content</label><br>
& _2 M9 a% z* ~          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>  B' c. U* M& x2 Z" a7 m
      </p>
- U' _% e4 @" l7 a- L& t      <?php8 ?9 M' c/ F$ r  ~$ y4 A
   }2 B" _8 C# h1 B( ?: ^

( C4 s# `: m3 o8 c/ h# c   add_action('save_post', 'save_site_wide_notice_meta_box');
+ a( i) Q7 h1 F) H  M5 G. N0 d6 }   function save_site_wide_notice_meta_box($post_id) {
' t6 s4 C4 G/ n" z5 l      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))8 I% z+ S) u' K. D
         return;
; I6 {6 L3 J4 [  R7 f% ?( @      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)1 {- H+ T5 n1 q2 k# t
         return;/ z! u- l* Q6 g1 a$ S/ F
1 N- U& U$ Z: o' W& Y9 ^, C0 _
      if (isset($_POST['notice_title'])) {
# l: ?/ z( x9 ^7 p" w/ M- T; f+ Y" r          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
1 T) k/ X( `/ g5 O8 ^% P5 ]      }
) [: M7 o9 Z  w4 Y  Q      if (isset($_POST['notice_content'])) {: N, ~* H) {* {& V8 e: |+ {' j
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
# g' g; ]9 E) j' }      }# [1 W, j, z  }1 g8 E0 s
   }
" ?" {/ Q5 K: [: E7 G' z) a   ```
( ?2 K4 ~7 U, |% S$ G! ^7 `* }6 ?* U
6 p* r: W: v/ @# M; X   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。- v( }9 E, a4 x1 H
: x9 a4 i5 P: t$ `) T" t
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
( R+ S, }+ ?8 a) w' W. r5 ?
0 E: j$ D7 L) I2 U) H& J   ```7 O1 o2 D) B0 ^/ i) A$ P
   $args = array(
8 w- H8 ?! o# r2 b      'post_type' => 'site-wide-notices',# P: d( U) T- G2 ^. B* a
      'posts_per_page' => 3,  `" F5 u, `" e- [
      'order' => 'DESC',
  G3 H& ?  g6 K4 S+ i6 h      'orderby' => 'date'
# ^& S* Y$ D  a( I! }1 X   );" r8 @, L7 d9 ]- K/ Q6 o2 Q
   $query = new WP_Query($args);4 w- I) z5 A2 j3 G! W7 x: \
   if ($query->have_posts()) :
8 q- d/ t7 x6 x% J$ \" d      while ($query->have_posts()) : $query->the_post(); ?>, U/ I. N( m& l
          <div class="notice">& E0 ^/ W$ q0 i; \, Y* C
              <h3><?php the_title(); ?></h3>+ y9 `" u; s" F8 Q. @
              <div class="notice-content"><?php the_content(); ?></div>
: I# G  Z5 K, |) u* j' A/ e+ `          </div>1 b) a1 T0 G0 a% g' z8 X
      <?php endwhile;9 V8 U+ s  h/ ?! B& p$ R
      wp_reset_postdata();" k" @; L9 i7 ^3 J1 F; X. I) n
   endif;
9 G1 N9 Y' Z( @8 ], ?# r" q   ```
0 S+ d  ^5 e! T) _) u4 ?7 a9 \. q+ e: J( R8 j/ x8 R+ n
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-9 01:52 , Processed in 0.012532 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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