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

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

[复制链接]

346

主题

559

回帖

3656

积分

管理员

积分
3656
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:; B% k: r: W* i* \) c  o. W! ^
' \0 q$ ]) D5 ?$ t6 H
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。: O7 \, p1 Q7 F6 ~& X0 g. z% c

: t, {. r! l+ E( G2 Y2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。8 j  Z. A' b6 e
4 _  D8 T3 b$ G- w: h) \
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
# e( o( ]! e4 |9 X& W! N3 Z* y3 `$ c
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。  I' ~' H, }+ q- X. L2 ^5 ^
7 y( Q) \% t$ h7 T0 O" s
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

346

主题

559

回帖

3656

积分

管理员

积分
3656
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
- `3 Y8 ?, v+ ?8 c6 m7 B
8 c8 u7 h2 ]# P* Q. ~0 u0 P1 r如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:! t3 Y+ g+ V4 d6 l2 @( o

6 y! D# g2 j0 ]5 m7 r9 m1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:$ D( ~5 H. A3 C) h: @8 [. E# ?

* y7 S  y' ]- @% W- }   ```% P. l3 t7 B0 w' }
   add_menu_page(8 F- Z! |6 c# X9 `$ E$ n$ T2 \
       '全站公告',. I" N- w- Z. l5 n  V) {6 C2 _( G
       '全站公告',; n2 P" J6 g5 n* L% `, ]
       'manage_options', //需要的用户权限; x/ ~" v+ s  O: t7 `
       'site-wide-notice', //后台页面的 slug9 n- l+ ]* |1 @' Q9 [! g  x
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
$ b! D( h) e" j1 H: W3 L- b       'dashicons-megaphone', //用于显示在菜单中的图标4 Q  A; y! }0 Z: j) F3 |
       30 //菜单项的位置
: s! ~  M& o4 v( }1 V   );
1 _  p" w5 a$ R7 \  u& ~, i   ```# n) W5 t' p7 F. O% E8 {7 U
) i( I- G' r+ b
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。* u( u" y+ o# R

: S: }' D* {" V& O* T: Y. e7 U4 ?2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
' a% N1 u& L; X! {3 k$ L
8 V+ y+ {# u7 _! K3 P' N# N  F9 H   ```$ v% g/ J8 d: _0 R1 N8 f# D7 [
   function render_site_wide_notice_page() {
& c+ @2 |+ N; O" S/ R5 |      // 渲染后台页面内容
, u  ]* o6 ]7 N) u      echo '<div class="wrap">3 y, t. [6 H& `
          <h2>全站公告</h2>. a# |( V" c( G! g$ J9 j
          <form method="post" action="">
/ o/ m  A) m( }; \              <label for="title">公告标题:</label>7 x# M8 Q3 c+ Z% B: _6 L9 v0 I+ {; ~
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
% G% e9 i, M" Y  W, p8 ~              <label for="content">公告内容:</label>
" w# s! m! l7 |+ v              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>( V6 Z; V, e6 ~6 k% C( j9 M5 Z
              <input type="submit" name="submit" value="保存设置">$ b* E, n8 \9 P$ u
          </form>
6 X/ [. N7 J9 D/ H& b      </div>';! R8 T% g3 d9 C. ?2 e" D" I
" N6 K5 S7 G5 b$ S/ R
      // 处理表单数据5 Q/ s) l7 D6 W
      if (isset($_POST['submit'])) {
" j( x' P+ F, }5 _5 ?8 Z  y          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
% T7 u3 w) u: [$ Y9 y. N          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));1 A3 O* G! T% z/ N' L6 X6 u
      }0 Z, X0 X! E8 V; J- k% {/ ~( s$ W
   }
% s! w4 F! f9 _: G5 N" [   ```
3 e4 [8 Z5 f) h  A% _+ w0 L9 g4 z7 m: B4 l5 R9 O# F: U6 R
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
; R1 d4 n& |- i9 \* H$ n. l' k/ o1 u9 |( p5 X6 }* s2 N
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:* d! A) N1 w% d  J. \
( J/ Z  B, e, p3 r! o
   ```
9 |+ S5 s+ m$ h/ N0 x% p" \- m8 d   <?php  [% T6 c: e% [
   $site_wide_notice_title = get_option('site_wide_notice_title');
& W" y" Q- {& s+ X9 C: e   $site_wide_notice_content = get_option('site_wide_notice_content');$ k& o8 J7 J1 F' J& y
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {; B, {& t7 @& [, @: a- O! @5 h
       echo '<div class="site-wide-notice">';
1 [7 z3 R- U+ E( N: H       if (!empty($site_wide_notice_title)) {
) [( {  E; K$ \6 }" [! r; ?6 C* ]$ ^           echo '<h3>'.$site_wide_notice_title.'</h3>';
+ v7 U. j, x, B4 I2 S4 l$ o6 p8 C       }
; p& ~+ ?1 x  y       if (!empty($site_wide_notice_content)) {
$ x8 [+ g  p, y8 I' I' i3 R           echo '<p>'.$site_wide_notice_content.'</p>';
. a) @, L3 n6 U$ ^3 Q2 A% Y       }
* z: l! P' t. i! F       echo '</div>';
% }) E8 \% B9 u9 A/ [) z   }
  n7 H. W# V5 \) X  q, a   ?>
9 D* f; U- s  N0 t4 ]   ```
& G  p# G1 c3 p: ^0 s) i
6 t' l* r$ Q5 o3 k- i' t' }   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。0 r( F9 \& Q; H$ y* g
5 _6 H  a! h* W# R, y$ I1 ^
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

346

主题

559

回帖

3656

积分

管理员

积分
3656
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?* f/ C5 S* g3 W
" v: a  t8 D' ?/ o3 E& e8 x8 ^
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
+ K- {+ B) g8 U6 z+ q$ [, }) b) v# K4 a) n( {  ]
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
1 c( M+ U3 ]6 R. `$ d
) M) z& ~6 E9 b4 Q9 m```: H, ~) `1 S+ S; h
function create_custom_post_type() {
/ s3 `" F6 y2 ?1 G5 `& z    $args = array(
. y9 f* s& n, ?2 p- }- b8 J9 F1 Y9 ]        'labels' => array(
, s. C; W& }# C9 n            'name' => '公告',7 B' y( F! P$ O6 D
            'singular_name' => '公告'+ i. b, X0 |! |, w
        ),
0 U0 n7 ?& v* z; \8 v        'public' => true,
% g$ H9 H) Z6 p: I- A! f        'has_archive' => true,
  a  J2 M( e0 }        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),- Q1 k: Y( S; E; r+ W" S" \
        'taxonomies' => array('category', 'post_tag'),- k0 _% y) h( k$ b
        'menu_icon' => 'dashicons-megaphone',
0 }( _- y! ^9 D* k* C        'menu_position' => 5,
# c. Q# _3 Q5 o( L        'rewrite' => array('slug' => 'site-wide-notices')+ e# Q4 O2 Y) @. k7 Q) p8 J6 s
    );) D7 s& `. A! \3 b6 k
    register_post_type('site-wide-notices', $args);
1 R/ X' A& D- X2 H$ o}' G8 @5 H' B# D: E1 l# K# ^
add_action('init', 'create_custom_post_type');% q. H6 [) B: ~2 w" f1 D& ?
```0 T) R2 p6 g1 m" k2 D4 W6 a
# m* w" ~+ I' S, o2 I% T  M! }
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。6 i- r3 S3 x; ^0 X$ L1 z- {2 }  o

& a* J: F3 p+ s# n; f3 q2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。6 A0 i1 E$ E( K+ U. Y8 W

. E2 _: h& S* s4 d3 S3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
0 J/ T7 ?, r- P+ X5 O" }* c; h
" ]# R! @- m5 c& x  n```
1 r; G4 M$ \$ t( L$args = array(
0 F3 I* [4 Y$ c; O2 t  p3 a6 S) L    'posts_per_page' => 3, // 显示的公告数量/ f+ y- U- n) v( {4 f( k$ l
    'post_type' => 'site-wide-notices', // 公告文章类型# O/ L& i8 v' Y% }$ a
    'post_status' => 'publish', // 公告状态
7 B- J5 I0 `. y. Z    'order' => 'DESC' // 排序方式5 y5 I4 a3 [! O  ^8 G7 f
);
4 z) O, t5 Y- p% Y
1 _6 ?/ [, L! `8 a) S- _$notices = new WP_Query($args);; \# a+ O6 `- a; j5 K+ Y
if ($notices->have_posts()) :+ @  l% q( p: w) g- T
    while ($notices->have_posts()) : $notices->the_post(); ?>
# V& \$ k" t3 {4 T/ Y        <div class="notice">
$ Y& T& `3 X: u  M5 R, A            <h3><?php the_title(); ?></h3>
" {* L) {' R+ O            <div class="notice-content"><?php the_content(); ?></div>% s. a" X9 m4 J: ~  W
        </div>
& R5 O3 t" A: h1 F5 j: j! R    <?php endwhile;
: U8 Z& ~) i2 K$ h2 y, jelse :
" i1 E9 ?6 C2 G* N    echo "暂无公告";& @5 u9 n0 y$ ?5 L
endif;- K4 k0 \7 p5 F- r7 q2 N$ q
wp_reset_query();$ u0 o( k7 ~" j8 \* F! B
```9 a# R* K) a* h. y# _
1 F1 H4 g! N- U' {
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
  m% Y. f" P& Y+ e" Q# K. _6 K, d3 o9 L; _0 g2 U
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

346

主题

559

回帖

3656

积分

管理员

积分
3656
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?9 ]3 y0 f# o4 E, e; o- g5 G

: ]" n! D% S5 J- y$ W" y  {如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。5 S% q, |1 U% T5 {) ~- H

" s; Q! a- V$ [! i4 @以下是创建自定义插件的步骤:3 z2 I% ^3 l2 x! |; {" P$ p; f* B- s6 p
' V2 t5 z( S' d( ?1 G
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
' W/ f' a2 U0 D- C- U. v/ T* z8 @) c1 r
   ```; \: ]4 @1 b2 A- {$ n& ^$ O
   <?php8 z6 r( b& Z5 I( w* B  l* P, n
   /*
; \1 ]! J9 f! Y0 O! Z2 |   Plugin Name: Site Wide Notices Plugin
' h5 `; D. a' m* K& K   Description: Adds a new custom post type for site-wide notices.
/ a# Q7 u) H' r8 b7 H0 Y% n   Version: 1.06 N3 a, S" B! J; c0 A0 T4 _4 T% k
   Author: Your Name5 h% \; V4 Y9 w0 O% U) m4 M
   Author URI: http://example.com
2 [! T5 k% o7 P8 H   */
  @  v! \6 r0 y5 _7 X+ M
+ q8 j& `7 W# h, O2 m9 X  |$ i& n   // Add plugin code here...  _  x/ l/ h4 o" Q, M- f$ v
   ```
% e: p. g- J: V; a) n+ z$ t/ T) K! G3 K3 |! {4 s! n
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
% p( y9 n) r  ^7 F: p+ W- y
2 f4 U# _0 u4 \" x  S2 e( A0 I2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
) S0 ?/ v8 f, X" B6 ^3 r1 X
% C( W& Y' ]% ~) M/ m   ```. O4 }+ J9 t; V3 Y% ]
   add_action('init', 'create_custom_post_type');
8 s$ ~, m+ S5 `4 j+ W$ g   function create_custom_post_type() {
9 p5 x) q) M' K' b1 K' n# i* i      $labels = array(* \) \2 j" E! t+ _
          'name' => 'Site Wide Notices',5 p( ]1 a$ q+ v) u$ e  y) z
          'singular_name' => 'Site Wide Notice',
4 ?( x2 j9 {2 h. L5 E% y          'add_new' => 'Add New',
4 T$ L  A0 @( Y2 ]8 d0 G          'add_new_item' => 'Add New Site Wide Notice',. Y' c# |- Y0 T% |2 M# w
          'edit_item' => 'Edit Site Wide Notice',
& K8 W. u4 b2 A' a8 m4 s" I( w          'new_item' => 'New Site Wide Notice',/ p  x' m, _- O3 \+ W
          'view_item' => 'View Site Wide Notice',
0 O5 ~2 D8 O: h          'search_items' => 'Search Site Wide Notices',
3 N" h" q1 Z& @0 |  r$ u) {' i          'not_found' => 'No site-wide notices found',7 M  h, T. t2 l/ c8 R  `: ~
          'not_found_in_trash' => 'No site-wide notices found in trash'! a, s# Y  K: j0 w$ E
      );
# L5 M$ @  }( D5 R+ R4 q2 w$ o4 H" k% _/ L5 o- _
      $args = array(; ?  G, |- S5 z$ ]8 G6 k0 M' x
          'labels' => $labels,9 X! _# H* O  f! J4 p; e7 x% B
          'public' => true,& X4 V# U! ~- u
          'has_archive' => true,
5 I& A- y' Q$ i: M# n. a          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),/ x: ~' w0 @# M/ U# l# m! z5 Q
          'taxonomies' => array('category', 'post_tag'),
0 C: R/ J+ `6 V9 q7 g" }9 g7 d          'menu_icon' => 'dashicons-megaphone',
9 E7 o4 p; i% l! b. `4 v          'menu_position' => 5,( r. k+ Q: i; k( m" S
          'rewrite' => array('slug' => 'site-wide-notices')* I% g) _- P/ H3 ?
      );  A4 H; T9 |6 U7 X* r. h

0 e) r- c  m7 P. O* {/ q# T      register_post_type('site-wide-notices', $args);
  J& R* w' b# X) L' O   }$ p& y5 n, C' T$ ^. J
   ```
, t; v3 x& G" ?/ W
- `9 O# V7 U$ a% ~. g7 P" F. G   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。, @3 _  f/ P% x. C# b1 ]$ J, M8 N

- T+ E- ?2 Q3 ]* c3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
/ i  P9 g! ?  I  k9 ]  B$ F# Q, p2 k
   ```. y6 m2 D2 G8 t" Y3 s2 R, [2 q
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
1 c7 _* ^# H% e+ r8 s+ D   function add_site_wide_notices_boxes() {
3 x+ h# M; s# C% H3 d3 }      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');. |; G/ k; ~- Z4 e* x) t( `4 D
   }
7 O: o. e- J& ?5 U2 a7 r, L/ ?; M& z
   function notice_details_meta_box($post) {
; B* L0 F$ ?9 P      wp_nonce_field(basename(__FILE__), 'notices_nonce');2 U' R* `  h8 X8 Z0 H" e) x5 S5 B8 i
      $notice_title = get_post_meta($post->ID, 'notice_title', true);. U* X3 ]  y- q* O
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
3 E3 A0 d% j/ [      ?>
& |" D/ w0 Z# U% y3 o      <p>
8 \! \+ D. j/ B# V) D7 K          <label for="notice-title">Notice Title</label><br>
( `6 a- O1 a* M  u          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">' E/ N% ]  G. D4 J4 b* B
      </p>
5 }% ^$ m! v  E8 q      <p>
' n; H8 |! S. y- \; i8 u9 n# q& M          <label for="notice-content">Notice Content</label><br>
4 e; |3 N& J3 N# U6 r  y          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
) n/ k3 b) \$ n- f      </p>
% @6 r# a, q/ L% S$ y+ c8 M      <?php; d) A* I* E1 U  ~7 f( {
   }
+ B# m, v  s* W" k7 `# `- H, K2 j) @5 A
   add_action('save_post', 'save_site_wide_notice_meta_box');+ R7 e  Q3 ^; e' O* H4 Q4 v
   function save_site_wide_notice_meta_box($post_id) {
6 Q- @$ |' ^) _# ]6 b" G- o      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))3 T. S2 b* g: T, |  H8 Z
         return;
0 d1 S, z" ^, I, U5 p      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
  Z" s  D' N+ R& ~- q' t         return;
0 @7 h# h+ l( I3 [2 K; B7 x- Y" U
4 P9 O. I$ V- V* k) ]# Y      if (isset($_POST['notice_title'])) {
5 L/ r% T6 Q% D- O  d1 q          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));. |% ]; u6 v5 H  A# w8 D
      }+ t- @3 E$ s3 b. J# `- U
      if (isset($_POST['notice_content'])) {. m) f3 C& S3 l
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
5 W6 Z; Y9 C7 q6 k      }6 z" r' I1 D  a3 d
   }
6 r- [% ^% V/ d! r   ```
* r5 @% L* f; i# b3 U9 K) C) h  N  U$ d1 a) T& a+ [; c( @# J
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
& v! `9 A! E( U- ~2 ]! U, E3 L0 z# x' M
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:6 H" ]) D! Z( l3 ^6 z  Y8 ]

3 c9 C, Q) q# k  k   ```
  u( E) g% z+ f+ k, E  ~0 P/ T   $args = array(
4 p! e2 c7 Y4 t; ]7 S& V1 n, Z/ I      'post_type' => 'site-wide-notices',
: f5 [! \* ]% h5 p8 S      'posts_per_page' => 3,8 Z! C, W' |) d" r/ O; H
      'order' => 'DESC',) I/ ~8 ~" o& g
      'orderby' => 'date'
* D# P4 q! f  K6 ~9 P0 ^7 o+ _   );7 Q3 \7 l" Z: o* D; B, u- v0 V
   $query = new WP_Query($args);
4 r5 c+ T5 c  }% y   if ($query->have_posts()) :
7 H. g& W$ K2 t$ B      while ($query->have_posts()) : $query->the_post(); ?>
! X" _: _8 p# N5 {2 T          <div class="notice">
' W5 H/ t6 d, O% ^/ V              <h3><?php the_title(); ?></h3>) i( r" X+ F. b+ U
              <div class="notice-content"><?php the_content(); ?></div>
7 ^3 V# ~' R7 B/ x8 K+ L          </div>+ Z8 y: z3 q# X' O6 i. e' s
      <?php endwhile;( p; ~/ H+ @8 b* c5 L" o5 S0 s
      wp_reset_postdata();2 F% s1 v; O* j3 Z3 j) T/ k0 F& a1 l
   endif;
4 J( x0 N, Y8 Q- b2 D9 ~   ```( n- w5 ?& T" m$ Z
7 d- R# G2 a1 ^4 h9 z$ P
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 14:45 , Processed in 0.014968 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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