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

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

[复制链接]

346

主题

563

回帖

3668

积分

管理员

积分
3668
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
' E. i4 q4 L: s; M5 a7 ^2 g$ ^
5 Y$ d8 B' ~- w( Y1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。1 O- l0 ^8 y2 h: s- r
  }* w$ H1 f) Q/ k. S$ s  V
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
9 s' u6 I3 i: \4 ^. e- i# b# q7 f% ]4 D5 F% B$ V9 V. m
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
7 u0 |, I% F3 h+ D; ?/ K/ P- q, y( w/ T4 B/ Y
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。1 }: a' Y; f0 S. ^; m

2 [- ~  l1 i, W, P8 x, Q注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

346

主题

563

回帖

3668

积分

管理员

积分
3668
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
6 g6 l7 }) Q  H% \6 m
$ b8 [' ]: k4 O0 ~8 G如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:: Z( V8 }4 q) k
5 g( r9 p5 |8 G1 e! I
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
" e4 l0 I& o# }3 a: j" B0 `
3 F7 j: z0 x! ^" d* N   ```
: U! |/ Q" O0 R9 t   add_menu_page(
* x0 \& U6 X" s$ i% s       '全站公告',1 w( _3 \$ ?  Q
       '全站公告',
2 ]: }( {0 W3 G9 E       'manage_options', //需要的用户权限
1 m% Q7 a: C' A2 K: @' x3 U! k0 D( Z       'site-wide-notice', //后台页面的 slug5 t4 M) D8 `2 C$ x3 Q1 l
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数" q4 k9 U: _9 V, u1 A& E* w* G4 _( K
       'dashicons-megaphone', //用于显示在菜单中的图标. c  G; W' }' w. w* P" Z5 X" |
       30 //菜单项的位置
# U, V6 m4 a7 ?4 ~* w( `$ Z   );
' ?# m, j1 x+ F; v   ```" f' _" X% `  v5 L: |
# G5 _5 u" O0 b
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。0 X) ^5 P1 A: `2 M6 D7 J
: o6 x8 F9 }& `2 g/ {) A4 p
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
) w( \7 U" B3 d5 ~0 F1 y1 x( O( b( j* S0 Q! K: `" O- H/ s
   ```0 r6 ^$ A% a. ~' B
   function render_site_wide_notice_page() {
0 v- f  e3 f7 D. M- K& z5 |      // 渲染后台页面内容
, C) m' t2 G0 _4 y% j: k      echo '<div class="wrap">
' }8 Z, b( _# u$ }3 S3 J: U          <h2>全站公告</h2>
1 ^/ ]  j+ B% |          <form method="post" action="">* v2 m# u$ P+ [7 i: d( ?1 ?" G
              <label for="title">公告标题:</label>
" H6 L& m8 M% t( E% g3 A7 W  G              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>* a, c/ y2 t7 i+ E+ ~
              <label for="content">公告内容:</label>  a  s3 I! A  t- `1 Q9 W% W
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>: ?" U" n' G( F
              <input type="submit" name="submit" value="保存设置">+ g3 Q/ Q% D) B0 ?
          </form>
$ C, N  M  b4 Y4 @. f; A      </div>';
8 I. Z- n! c* Y# V( U. Y  [  U7 Q* q
& e/ y+ m* d2 P5 Z! {5 n      // 处理表单数据
$ i3 W8 A) }& Z  ^      if (isset($_POST['submit'])) {
1 S; ~/ G0 V+ a  `/ i$ i          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
3 b( N& T+ A( _          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
: N/ O* v; H" [8 Q; L& V4 M5 j! z      }
: q: h0 K: R; {1 S   }/ h; W/ F6 t9 K1 @7 l3 E) _# m0 }
   ```
& Q: o0 s4 T( S2 u& S! a# O4 _% X7 N7 D4 p, I% E6 Q7 p; {
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。+ c. f1 r8 N0 m  B: z$ |
% [' S1 a) g! @  u' f+ S8 }; E
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
4 E1 ^; y7 L# v3 ]' f+ n; r; ~+ a+ j+ q) F
   ```
& D1 b! X! x) |; E4 l   <?php# ~/ G6 I2 U0 o& C) a
   $site_wide_notice_title = get_option('site_wide_notice_title');
, B- |" |( o" R- Y/ R, v4 u/ u# k   $site_wide_notice_content = get_option('site_wide_notice_content');" X; w! Y5 K. b0 K7 e: z" Q
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
5 y2 o* D. b% n/ {% L# [       echo '<div class="site-wide-notice">';
, y, U, g. w$ O* i8 C       if (!empty($site_wide_notice_title)) {
. K5 G' B0 A) Z* x# E           echo '<h3>'.$site_wide_notice_title.'</h3>';
. a$ O% P: H4 l% ^. H' V       }. S0 L- F& F# x. Q8 q8 Z- A
       if (!empty($site_wide_notice_content)) {4 v7 k( O3 \' N, j% i% t4 ^
           echo '<p>'.$site_wide_notice_content.'</p>';/ g) G3 |3 r* [0 N: a
       }) X. L$ K  p0 K& K2 M; b
       echo '</div>';4 q! V2 w: \% A, u2 a3 h+ U
   }! |, Y' e7 `' v. u
   ?># A- B# J3 l0 z, {" Q* t  ^6 ~$ b6 }
   ```
$ e2 h9 m% i+ ^
) A7 y* i8 r% f2 h( ?   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。: m) k& t5 {2 ~' W; |: c& ?( Y: F
+ d0 `! \- }9 ^+ `$ q: v" T! Z
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

346

主题

563

回帖

3668

积分

管理员

积分
3668
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?2 ~3 Q% I! C- s/ o4 F
- {0 y. T; k8 b& D( ?7 }8 e) x, }
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
' \8 `* F3 l- h. a: ^/ p5 F3 {% @  f  d4 Q( I! U( o" F
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:; @% M: r% O6 t( k( F' {

8 t- D5 C' {& g```4 j% K5 o- u* }. {. X
function create_custom_post_type() {
$ o% G% j1 |* p) c9 D6 h! N1 X    $args = array(7 I: B3 M! F- ?% ^6 q& A. O4 O
        'labels' => array(
1 f5 n, E" y# f1 ]8 c: `- {            'name' => '公告',, A2 L% Y  }: D) o$ G7 F  a
            'singular_name' => '公告', A) [6 x1 n; s7 o6 C4 Y  W/ {
        ),& x- m$ E0 `1 s: @2 t
        'public' => true,
" P7 d( M0 ?# U- X9 G' {% m' W7 C        'has_archive' => true,
' j: h4 @1 v, H1 o  v5 V3 R        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),( b3 e' R, {; P- G- S
        'taxonomies' => array('category', 'post_tag'),; n+ d) E$ W& P- M5 d; y
        'menu_icon' => 'dashicons-megaphone',* p7 }; {! j" @" G1 `- ^
        'menu_position' => 5,
6 w+ H% v1 M5 I. w& s) n        'rewrite' => array('slug' => 'site-wide-notices')9 l0 T# D* A8 k  G! x/ N+ Y6 z
    );9 B; J8 w1 ?/ R
    register_post_type('site-wide-notices', $args);& O6 a, d9 z# `8 O
}
  ?6 ?- c. P4 y8 ~2 S( Aadd_action('init', 'create_custom_post_type');% c# n. j7 e. I$ C* i
```
8 j+ ~3 `) o; r8 }* C8 h$ }7 C1 s3 v. x) f! h; ^
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。2 W. t2 Q9 {2 f8 h$ D

& \' L7 }& n& x: Z) k7 D2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。9 C/ h" T) e( t% H% P, E

& C* g6 D2 h8 U  G3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
1 l; x! z$ o& ], U, g  x
7 \4 j- @& a6 \& z- P```: t% x5 z8 p% L: s  p$ q% p
$args = array(
& Q! ]2 g% H% H! a7 l    'posts_per_page' => 3, // 显示的公告数量1 c8 }5 H  M$ y. n! h& t
    'post_type' => 'site-wide-notices', // 公告文章类型
$ c8 P7 g3 T1 C3 j; D: k7 k6 {1 I$ o( _    'post_status' => 'publish', // 公告状态
. |, @4 \/ Q% }; I6 H3 _    'order' => 'DESC' // 排序方式
- O; S% |* w* F( N6 {: b/ G);
/ G2 }) l/ E1 d( Q& p3 p7 w' _/ R5 j" a. ^( [$ V( a+ h# T3 o
$notices = new WP_Query($args);8 t2 E3 |' W, ]) Q
if ($notices->have_posts()) :( h! }+ Z! }/ D4 o+ ~1 L! {
    while ($notices->have_posts()) : $notices->the_post(); ?>
$ p: ]$ v3 M+ g$ x0 n9 s" x        <div class="notice">
3 Y' V" h  ~* B- H            <h3><?php the_title(); ?></h3>  X3 r% l3 a1 U, g2 R% |0 X
            <div class="notice-content"><?php the_content(); ?></div>  [4 \5 g5 D5 t3 d$ h
        </div>" a, \. y( N6 V9 J* c
    <?php endwhile;; k# `5 @) f! e0 y( N, `
else :
' c3 M; G9 [; w4 e+ S    echo "暂无公告";. ~& M  K! E$ N. r* v+ Y
endif;
# Z! e7 m9 X" w8 L+ r& hwp_reset_query();. J+ M! t; `& i. O  M, Z0 `
```2 g; l3 {- C& F) K$ b7 q  B

1 Z* e& O, g2 P这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。8 E/ V+ i0 V( l1 k

, B2 E0 o- b9 R- v6 a以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

346

主题

563

回帖

3668

积分

管理员

积分
3668
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?; U) R% z/ a3 w' k/ \
+ [# Z" R+ c  H+ R& T
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
( ~+ }% l! U0 o" U/ ]
4 P& _$ U1 `0 n- @7 @6 ~0 \' u以下是创建自定义插件的步骤:5 p. @6 `+ K+ i$ e# G0 y; Y% U

1 {8 N' s" M+ w6 O: N1 w1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:  H. U; b% G; Q& t8 |* b4 M  g. C

! _0 O! C" M; k/ M$ ~   ```2 f( N, \" T8 ^: F, ^# `8 [
   <?php* H0 ~& o+ W/ v; C
   /*
. T) e% \- i3 Q/ M/ Q* V- N# X   Plugin Name: Site Wide Notices Plugin
9 ]* m+ N; h9 S/ Y2 a( Z2 Y& |   Description: Adds a new custom post type for site-wide notices., m, o6 r) g. n4 c- p( U+ I
   Version: 1.0
% Y* c+ H/ d3 |; @' B  u5 x5 q) j   Author: Your Name, |  V# o! j, g  V
   Author URI: http://example.com' j1 p9 D% m+ {0 y, p
   */
6 a1 L6 h4 J% r1 T' s9 ^/ O6 \
* K5 @  P; I! B" g6 i) E& t9 v# l   // Add plugin code here...
2 @6 n/ J3 Y" K   ```6 h3 D6 \3 M1 g9 ~# v# w

2 Z" E/ f% B- W5 `) w) {   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
5 F+ ?3 y& @% _- `5 V) ~! N0 o  j) m$ o" F
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:) b. B* a) X" C1 j$ x3 c$ L/ n

+ R8 m" D2 j) ]9 k$ b   ```
) t8 _# z+ o# b) K7 r   add_action('init', 'create_custom_post_type');
: v6 |3 A& h" t- N1 j! }+ l   function create_custom_post_type() {  {0 \1 ^" v7 @! h  {5 m2 a
      $labels = array(5 f* N' _5 x& d# \9 T
          'name' => 'Site Wide Notices',
+ b' P! A! \8 ?- R) w0 @          'singular_name' => 'Site Wide Notice',
/ V7 ]5 A: F0 @0 Z, _5 u  ^          'add_new' => 'Add New',
" E7 P' y) o8 _6 F% @1 O          'add_new_item' => 'Add New Site Wide Notice',
* y& n9 q1 Z7 A% T          'edit_item' => 'Edit Site Wide Notice',
1 s$ w' a8 L& c/ g! z1 `          'new_item' => 'New Site Wide Notice',
; X  Q8 g( s" o# N; `( x          'view_item' => 'View Site Wide Notice',
$ I2 I; @5 V# v, R8 N& p# X6 {% n          'search_items' => 'Search Site Wide Notices',
" T5 y6 G; H5 F: y( v$ ]          'not_found' => 'No site-wide notices found',& J$ O2 D; q7 n5 ]) b& @
          'not_found_in_trash' => 'No site-wide notices found in trash'
% o; ?9 g5 Y9 G# |; Y      );( M( i% c. ]0 g3 C
% f  ?  T6 v: a  z. b! D1 f" F
      $args = array(' C2 \& g; z0 j6 b( r
          'labels' => $labels,0 b' W, ~3 K0 j* d
          'public' => true,
3 F, U0 N2 ?# q- r          'has_archive' => true,; X) `4 _1 J2 V4 s0 W( i. y) o
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),' O# v7 S: ^/ ^
          'taxonomies' => array('category', 'post_tag'),6 W' L' J+ V" B
          'menu_icon' => 'dashicons-megaphone',) i. S1 o8 q# X1 s8 L( p
          'menu_position' => 5,/ o" d% P8 y* |& y
          'rewrite' => array('slug' => 'site-wide-notices')
" T: |6 W# M$ e' t      );' N& v. i, ~, F0 q3 w; J5 Q
/ f, d- v8 X( t! |4 A, I; r
      register_post_type('site-wide-notices', $args);2 x: x0 L* x( e0 \& p$ Z" A
   }
' S9 ~' A- b+ ~; d& n( U% b! A   ```
5 O$ e$ n! ?2 j/ i4 u" N
2 }4 R1 R; P3 h2 G% ?# {' o) B   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
& g4 {" {/ E$ l8 Z% C
: x( }# Y( z1 R3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:/ f; [2 y' L* [( Z" X1 [

8 z+ o6 ^9 ^4 \/ J' f7 q   ```
3 |" n0 q8 J; P. H# K$ w8 U. W. c   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
" D4 `  h  O9 m- H( \' Z   function add_site_wide_notices_boxes() {, s6 t7 k6 T# E
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
6 l: n6 I3 o$ u9 @4 U8 m! L% `& ~   }
) c9 R$ C  n" A) p; F, f& A! V, Z. H5 U
   function notice_details_meta_box($post) {& }, H6 H* h% O( M# J
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
! n" k/ C2 R( `      $notice_title = get_post_meta($post->ID, 'notice_title', true);
  l% R+ ]; f3 i6 Q; b2 z7 ^' ?      $notice_content = get_post_meta($post->ID, 'notice_content', true);+ v$ I5 ^' ]# M) G" c3 d* D
      ?>
6 A0 p" d( T/ }8 N8 Q/ Y( u      <p>) x9 x* y3 w. R; H% X& o
          <label for="notice-title">Notice Title</label><br>5 [' a& U/ a0 a7 A
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
2 p( O; X# G; y/ _' `0 ~& a9 @! t3 }% T      </p>& P' p7 @1 X  e! i' I3 }% d
      <p>
* t/ [- l% F! c2 |+ m          <label for="notice-content">Notice Content</label><br>/ [, j; Z" F" b2 l) a0 A) i: o* B
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>- S) G( t& D7 b6 y: `
      </p>2 a) J# \* K: t; s6 ]7 y+ Q
      <?php3 l6 P. L0 S. n* C  G3 E) @2 Y
   }1 j6 `0 s2 q. o2 I
4 o& K0 W3 y- i4 A1 m$ g8 x, ]- `
   add_action('save_post', 'save_site_wide_notice_meta_box');* k$ F( K3 \# G7 P/ v9 C
   function save_site_wide_notice_meta_box($post_id) {, s: I* i8 [! g( k+ |
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
5 p4 P9 A" z" I$ u% ?& H% Z9 [! ~         return;
9 a" ]* g  M8 y2 E      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
" ~3 f, |( q7 Z9 Z5 C8 O& @         return;
' }& q. L* F: L
* w% u8 g6 t7 u4 D+ K- q, Z* \. ~      if (isset($_POST['notice_title'])) {
4 d/ M/ W7 Y) m          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));. R# y' K( j+ [
      }
8 s% F( x. k4 O# d      if (isset($_POST['notice_content'])) {8 J# [! E  h2 {1 N2 L& ~/ y
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
/ b& z$ V4 V0 g- R      }
0 z0 f# G; Y0 c2 D/ {5 x+ ~   }) F3 q) @% |3 z" h# U
   ```
+ l/ y0 p1 `/ ^1 J, w% T9 p: |
0 T% P5 x" w6 F/ {# N   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。+ I  O. \9 P7 _8 C, d; N/ u0 |
8 n' g& h) D. N; I& V- N
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
0 \5 Z' T/ T5 k# z) K) L. G5 d
' T9 M! \3 \3 _   ```
, Q8 ]! C. x- R8 H! \5 d   $args = array(
7 q" d, H/ V' P  t      'post_type' => 'site-wide-notices',
  J- q( T* E9 ?/ j4 P  \      'posts_per_page' => 3,+ M9 |* R6 H4 i$ t" n: |
      'order' => 'DESC',
+ }& `: t( {' P* }+ {1 ?      'orderby' => 'date'0 c0 f2 ^3 h1 v# n
   );5 r$ e: |$ A( s# w; f
   $query = new WP_Query($args);% J4 k# e* B' Y# o) D
   if ($query->have_posts()) :6 U) |9 P9 S- }( s
      while ($query->have_posts()) : $query->the_post(); ?>5 B8 o& h( h" Z5 D5 p8 v
          <div class="notice">
4 D+ e3 y/ t! J1 D2 V              <h3><?php the_title(); ?></h3>
9 r! ]8 h8 t& U8 t  L# Q) r" P              <div class="notice-content"><?php the_content(); ?></div>
  _4 p% T7 r2 \          </div>
( X5 Z, g# V- ~% |- J      <?php endwhile;( t/ v6 k+ Y' u
      wp_reset_postdata();% |) _) a2 j' h# d- Y7 y
   endif;
3 ^  L2 n, ~/ Z' s, j# k   ```+ [) c; y* ~. r. {3 v* d3 [6 z
8 ^5 U: {7 ~: B. N/ ]4 w) e) r
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-6 15:59 , Processed in 0.015635 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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