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

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

[复制链接]

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
9 N+ W& v- A! p9 v5 Z
7 g% R. a# r) y/ p: A1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
/ y: n# r8 Q3 c. z% @
9 J3 U9 S- G5 v4 Z* B$ {2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。5 Y* d9 {9 \( Q1 s; m

9 {& C. Q+ S: j7 k3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。) Q1 P3 i7 k' f, S9 H7 l: N/ E

/ n* L3 U# U  V0 E% [4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。1 _3 e4 A' F0 \0 `% v6 H# ~+ w/ W
, o" {* Q9 H9 s" j0 ]$ f4 d; A* n) S
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
6 Z+ F7 ]5 X& b- D& z% }+ P1 `4 L7 J& X
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:7 P! X5 I+ h* n: o( C

# u" H" k0 m/ @; v1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
8 z* o+ l) S/ V* \8 F: P' ~- y- E
% }/ P! x! k+ f, z: ]$ g. x   ```* c+ N! n! }/ F- M% c' M
   add_menu_page(( y/ W8 E& G  X) p. o6 S
       '全站公告',. o' _4 m3 K# F
       '全站公告',
6 `8 W; r; W( ]* ?. A       'manage_options', //需要的用户权限
& D5 L1 l0 J' |7 Z% B       'site-wide-notice', //后台页面的 slug! n" O6 B* m3 M- a
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
. @6 p$ C4 \! Y! R- l* k       'dashicons-megaphone', //用于显示在菜单中的图标% i6 K; F" K% B$ V6 Q
       30 //菜单项的位置
" A# L+ v- Z, z+ _! D2 ~   );' o* T: k1 d8 v) K: Y
   ```
# w0 i8 \- X8 a. d) H4 `$ ?% m5 t  ]. y& {1 L1 `  P" v
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。2 _$ _$ I  d# G  |+ K) c7 {2 f0 j/ a
. u4 @& X* _3 t2 M! ^+ y
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:, O1 j0 ~% {& q

* R9 q( k- W; q   ```
+ B' ]5 P8 C" j   function render_site_wide_notice_page() {) c5 e3 I4 I" e5 V/ S& d7 [
      // 渲染后台页面内容8 U& K& D# C1 U. c( ~$ ~( P% B
      echo '<div class="wrap">  h7 x, o5 ~% h. E& k
          <h2>全站公告</h2>
0 w, n+ V& w$ g3 p- e          <form method="post" action="">
5 Z  `1 [, F$ P! q              <label for="title">公告标题:</label>
. g/ X: w$ _7 D3 U: j              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>1 a9 G3 b* I( V4 Q/ G1 r
              <label for="content">公告内容:</label>
0 u' X3 i% f* z  w5 Z              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>3 o1 M4 G0 Q' b: R* p
              <input type="submit" name="submit" value="保存设置">5 j7 Q, `2 F: c/ R' O2 G
          </form>0 u' e( E3 H! u
      </div>';- z7 J" n. e8 c! L1 O  O

$ `7 J' ]6 m3 ^( f) l! c      // 处理表单数据
* ~# G! R) l2 h0 ]- g' o      if (isset($_POST['submit'])) {
) K, |; W- C. R8 q7 E- _          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));# p9 I/ y$ `# Y2 M
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
# ?3 a3 O* W% d( A4 E      }, v( z! c4 t% o9 o% q7 Z
   }5 w$ J7 I) G0 t/ J4 V% a
   ```' p% g. W7 w5 r4 h0 ]; }: D5 ?" H

% @) k7 K4 D" w" f! g# A' T, \0 X   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
& F. X% x) ?2 ]. a# M% c! y6 G$ E; [0 l
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:5 H" O4 }- l3 h0 H7 n2 ?
$ k, ^3 i9 K* T; Q2 v, ^
   ```' t( k! D1 |/ P6 a7 ]7 L
   <?php8 J  _" }  q* Y0 D/ F
   $site_wide_notice_title = get_option('site_wide_notice_title');
0 F  M8 Q8 C( d2 s+ X   $site_wide_notice_content = get_option('site_wide_notice_content');6 [9 D" }5 m/ v+ w
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
. C1 w- x) U* W7 h5 ?% T       echo '<div class="site-wide-notice">';+ i0 t5 |* k& w; W( o8 \
       if (!empty($site_wide_notice_title)) {- ]1 n2 M; E3 N- A  I! @1 j. B3 m/ f
           echo '<h3>'.$site_wide_notice_title.'</h3>';
& z% G' ], H0 K/ g3 X- [) N! O       }0 B! L8 {7 o; B0 H9 e
       if (!empty($site_wide_notice_content)) {
% C/ A3 S  q' [! k% a0 y  z           echo '<p>'.$site_wide_notice_content.'</p>';# h4 P: I9 G* I2 s1 T* W
       }' u( h/ x) @" g! Y  F& b
       echo '</div>';' O$ V4 p6 y, B/ H! ^( u
   }# s# ]! q4 i4 ^$ l! ~5 F& ?
   ?>+ ]8 q% C  j, a; m. O( u
   ```: E# R' p. p' J: e$ ^5 @$ j3 C
8 |4 I  G1 K( \, H" H, w: [: o% @0 F
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
6 Q2 K6 u# X& @$ P
5 N. W9 Y6 |3 `  q' w4 [- @请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
# H# j* P$ |4 @2 `; ]1 s/ D
% C: s7 V9 E+ P- }2 ]; V; Z" E您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
' ]8 e7 t0 A6 q% G+ ?- E
3 X1 m/ D+ y+ u& I  s" b6 h$ f! g1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
" u2 d8 v( Y/ x9 ~5 l0 b
1 i2 E% h! c& K2 T, v```
. @- a1 j5 v7 T& v4 b: L- ffunction create_custom_post_type() {
) K8 i. s* d' f) V* r    $args = array(
% L+ S: Q1 A2 v$ m/ C& l        'labels' => array(
- |! J, h2 l4 u2 U! m            'name' => '公告',
% U; |4 v3 y- V# r' Q& F% @1 y            'singular_name' => '公告'
/ ^# G$ S! A: |1 |" S  U' @' T        ),
# C  H, i0 O- z' M- d& N        'public' => true,& j$ d" ^. [/ x) B2 S  e" ^; o2 e' j4 W
        'has_archive' => true,
8 b' U' b+ Y8 \; m% r5 X        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),2 C7 y2 F7 o7 v2 z
        'taxonomies' => array('category', 'post_tag'),
% j1 c" q! y+ U8 f        'menu_icon' => 'dashicons-megaphone',! i* j' o" I" o$ V& f& F; d; ^
        'menu_position' => 5,' z8 N+ |* Y5 u1 Q- d4 F3 N; Q
        'rewrite' => array('slug' => 'site-wide-notices')
+ y( _' o, h$ s    );
- O7 k$ @: U9 n$ H) r5 w    register_post_type('site-wide-notices', $args);; m) j, }" F5 x% H
}. k' i. s3 C3 P4 L' ?, I  y$ l% p7 f
add_action('init', 'create_custom_post_type');
% Z% r% U2 G' [  l```* U+ {" [( Z2 R* q. x4 E' f

: w4 a* V% W, @# p! O; |- u在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。* {7 k* o- ~# `, {: o- V- o+ E. C. f

3 B' Q$ l1 _& h0 ]2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。$ o# h) T1 N9 C9 ?) ~* n- u

7 _- T7 k+ \8 O& \6 U9 s3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
9 H* G9 v$ ~) O' W7 }$ O! d1 n9 `
```0 S  `+ e5 O0 e9 E1 Z
$args = array(. U" J: k  i' h4 ~* ]3 u2 o+ s
    'posts_per_page' => 3, // 显示的公告数量' U! ~4 @. b# U
    'post_type' => 'site-wide-notices', // 公告文章类型( L2 Z1 A$ j: F! j4 |( s7 v
    'post_status' => 'publish', // 公告状态
* V; M. L3 W( F; _& n2 Z# z    'order' => 'DESC' // 排序方式
! @* {9 R+ n7 A. h: m);
. ~0 g- n. a1 W8 n) R; p6 t- Q1 ^9 r2 a( u. b% b; L% v& T- B. y
$notices = new WP_Query($args);
8 v1 g! Z5 e# G8 `# F& b+ i; rif ($notices->have_posts()) :/ l9 o8 W  @; Z$ e& K: q
    while ($notices->have_posts()) : $notices->the_post(); ?>
) ?+ a$ b6 ]$ O+ W# H2 Y        <div class="notice">
/ o& `5 U. a; I+ |- D            <h3><?php the_title(); ?></h3>; L  Z) n8 R" e/ h' D* m9 y
            <div class="notice-content"><?php the_content(); ?></div>
/ v. {  ^, a# g0 G5 P) r1 \) }5 B) B        </div>
2 x  I5 x  \4 A& C  j* D9 ~    <?php endwhile;2 U# g5 h0 t$ K7 h1 G/ B$ v
else :
- x) e6 n: M0 K4 W- r    echo "暂无公告";1 G( ?5 p0 E. W( o' ]3 L
endif;! @% r% {$ r& S. ~7 `% w) i
wp_reset_query();  u/ p! E/ M% k4 [9 z3 O. |
```
# ~0 Z0 m" ^$ [$ v- R' w0 p! `4 }$ m1 V! d( |
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
; E7 @) m/ z* _0 ^* O  r* o& b; {; R" s9 D0 M2 g, g& ~1 `
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
: @3 k; m8 t! V. S6 u
" \6 v3 T$ P. X如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。  o0 ^9 B' s9 y8 N0 h

, A! q- b% R& R0 `以下是创建自定义插件的步骤:2 T$ ?3 W* s) f& [+ x5 R  u
0 i: W/ u: E$ q+ Q* t/ }0 |7 i3 Z/ C
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:/ ^& f( G! t) o. m1 T

1 G0 P% a# \/ {   ```. b# F2 ]1 h. r& [
   <?php
5 {$ D' Q) i6 p! E; U   /*% z6 x8 k( u4 M5 J' b
   Plugin Name: Site Wide Notices Plugin
- n# `3 @8 s. ~5 _0 S   Description: Adds a new custom post type for site-wide notices.( U  `9 ^- y7 j7 h* p; x/ h( `* Y
   Version: 1.0* a8 |7 P- L4 O% d, I3 S) _
   Author: Your Name5 K. }$ X1 K# G' s; }7 o4 c. e
   Author URI: http://example.com" R5 k4 T  c; }, r5 I7 \
   */' n# s( o# u* F9 N% d& ~- ?
& H; M5 D* z+ [( M( i+ x
   // Add plugin code here...
+ p6 K8 {9 [; {4 [  M$ v   ```
6 Q; V! n% c& p5 _5 D. X. O( x3 V
) _1 i1 ?: I! r0 n! |   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
4 ?$ Y: w+ s9 G0 a2 S. Y
  N8 u3 ]; H# l6 |2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:/ H2 k6 ^7 I5 g: U* C7 N. J

4 i$ ], i! s# w7 t   ```  \5 m3 q! f/ P* ~) y$ V. [) n
   add_action('init', 'create_custom_post_type');% w- Y& k) @4 h& A" O! ~$ c0 D3 W
   function create_custom_post_type() {
0 @) W$ O% R5 n8 F9 k2 H% U, Z      $labels = array(
8 m& N# A  G" Q2 O# g9 k0 d" k8 c7 p          'name' => 'Site Wide Notices',
* \7 t/ E( T8 }2 y% U% b( p          'singular_name' => 'Site Wide Notice',
+ f* ~; Q: Y/ W          'add_new' => 'Add New',' r8 d: P& M, {
          'add_new_item' => 'Add New Site Wide Notice',3 B& v) U$ T- W: u. ]+ E4 L+ Z8 S. j
          'edit_item' => 'Edit Site Wide Notice',
2 ?5 j# L# \, \0 o7 @. e6 k7 [          'new_item' => 'New Site Wide Notice',( Z( w5 b$ B5 u. y/ h+ W% b
          'view_item' => 'View Site Wide Notice',
$ S  c/ }7 ]2 l+ E+ G" Y1 X          'search_items' => 'Search Site Wide Notices',
; R* G1 |' ]7 Y' B) Z/ h4 R          'not_found' => 'No site-wide notices found',
: Y; V9 [- c# b3 d          'not_found_in_trash' => 'No site-wide notices found in trash'
/ |# q6 \5 V! U# F      );. J/ U& x* h! r0 H2 j& U; s
- p. c/ Y, i4 G  D" {+ f* ]! u
      $args = array(
$ s! o. u6 |, o4 e! c          'labels' => $labels,
+ b4 n2 z, L  s2 P: r0 X* ^          'public' => true,
  i9 w  y% g& R9 @5 ]          'has_archive' => true,0 V7 H+ U5 ~/ B2 q( \
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),0 ]' D3 Q& I& t% \9 g
          'taxonomies' => array('category', 'post_tag'),
7 [' m* d$ {* Y, r4 f6 j4 j7 _          'menu_icon' => 'dashicons-megaphone',
( Y% F: g! B; }          'menu_position' => 5,0 @, C/ i9 A! @( ^4 r$ P
          'rewrite' => array('slug' => 'site-wide-notices')- Y0 Q+ w& Q  _, I/ h: j
      );7 Q3 b/ \' J" y0 S* s: w" I; T9 I

4 |) w- k8 Y$ F" H* O$ O/ n1 E      register_post_type('site-wide-notices', $args);# L; Y% e6 }8 J8 e0 K
   }3 @0 @$ ]6 b7 q5 i+ I' B: }8 I1 j& a
   ```2 _( i: _# U8 w
( ], j5 C' L( ~) C" b
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。0 f6 {# W/ ?% G1 N0 K; S
. F7 g8 b9 ^$ V5 E' W1 S: ^
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:; _  X6 L# o, }  K

6 b! I# Y7 c3 Z  I+ J4 V2 @   ```* o$ f5 N1 H, ], _# @8 B4 B) P
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');4 l* k7 @, T7 s0 X) u; R* o
   function add_site_wide_notices_boxes() {0 h2 M( B0 o3 T: B6 M+ A: O8 w
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
+ d9 ]0 |& V/ G   }/ e" m1 u1 v- A" v

; K. \. h) }3 Y5 P. t9 N2 P   function notice_details_meta_box($post) {; V! O% Y( ]9 Z3 J4 Z/ n. g
      wp_nonce_field(basename(__FILE__), 'notices_nonce');1 d5 m8 N: a0 {1 g) D
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
* c& o/ I- @( @5 q, Y      $notice_content = get_post_meta($post->ID, 'notice_content', true);6 T9 C- N2 @$ _
      ?>
; H. s; E1 @: Z* ?      <p>1 j) K. |' d: s
          <label for="notice-title">Notice Title</label><br>9 ~- f0 r5 P4 ^7 v4 m
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">9 ^: F2 d' r. h& x" u+ g
      </p>' s. O# b! Y6 B0 ^* }9 S
      <p>9 k: h% ]8 D; R; \" ?
          <label for="notice-content">Notice Content</label><br>8 L/ o: h% t3 l2 ~
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
, I8 E0 @" ?, M      </p>9 u  C7 C; f6 ^2 s! z& W
      <?php
+ X5 ^# l$ j8 u   }
5 C# P/ ]+ i- H+ h9 h+ S9 M
1 _  z9 J4 @0 {: V; K) D& y) z   add_action('save_post', 'save_site_wide_notice_meta_box');* V+ s2 S) f# m1 R, Z8 r) e, r
   function save_site_wide_notice_meta_box($post_id) {$ B8 `  \7 ^" h
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
* P3 P; m. F4 U- A         return;
4 h0 @( X9 o+ i/ w& @      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)9 T, [- e( d( I5 `% Z/ f6 F% ^* O3 G
         return;3 t! f% k: d) Y9 ]7 R+ U
, [2 D3 t: A8 D6 s  y, B& a
      if (isset($_POST['notice_title'])) {# D+ E# c- f, b
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));; d9 Q9 q- g( g& r8 S
      }0 V7 N4 q  J, ]0 x; x; G! F6 X
      if (isset($_POST['notice_content'])) {4 _# P  r9 k* \, O- g
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
8 R3 m6 {1 @; {3 q1 j& l3 w      }
  e! O% B+ }. i1 a% t   }# h5 u7 P, I( z9 p: e( ?
   ```
6 ?' z# f! W4 p; L- C3 e1 T& P5 l, [0 M
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。; \3 W5 ?  A+ L7 v& C6 V

2 K% c' D1 s8 l! d8 H4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:6 v3 H- ]- u$ D( w- c
' z1 R- r$ ^& X' h7 Y, Z
   ```/ D! {/ i) ~3 g5 }- j7 f
   $args = array(
6 V9 S2 K# S# |, C5 L+ K, B      'post_type' => 'site-wide-notices',. f' n' w+ ^" F. k3 @; ~2 ?
      'posts_per_page' => 3,3 z0 q3 B& c/ e3 L1 Y& s
      'order' => 'DESC',4 \* S7 k* P9 z1 e
      'orderby' => 'date'! w2 i% p: t/ d( f# O( N
   );& y- l! l5 H& \: m; f2 ?4 u
   $query = new WP_Query($args);2 R! H0 P* c+ V4 b# n4 ]3 J( w3 j
   if ($query->have_posts()) :0 L* L2 G2 ], C4 I: }2 I* C0 G
      while ($query->have_posts()) : $query->the_post(); ?>
) o8 S# n7 x) k' {          <div class="notice">
8 g8 |( m' K, y! j. c1 S              <h3><?php the_title(); ?></h3>$ k4 E4 [& o( [' \% `; j. e& D
              <div class="notice-content"><?php the_content(); ?></div>
1 D5 Y! q+ f, p; ]          </div>
6 w5 y7 j, Y% j/ [9 P; b+ \+ S      <?php endwhile;; w& I$ F6 `+ |: ]
      wp_reset_postdata();
9 C" x. d& _8 }+ o, \( _/ i5 _) g7 H   endif;* b* |' y. g$ ?5 m
   ```
7 b2 h' X% ~; [$ h3 Y: ]7 X
) ]& r) T, t" s/ N   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-20 12:09 , Processed in 0.013246 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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