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

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

[复制链接]

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:/ t6 k& a% V. G

& A" X1 _% p" k3 b1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。, Z9 T8 G) y( ^+ K
+ y6 p* a1 ^5 F+ S
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。$ Z# a+ e2 P8 H2 |) [/ x

) x  X& t" B' x( j9 n/ _3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
% X" {# e1 P7 V* o
" U- C1 w2 U) u, M8 t1 p& L4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。7 c6 X. J! K# E# g* V& }

4 e2 N6 u) L3 Q. [5 K/ R注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?  Y6 p3 W0 X% s) t

! A* r/ Z# {* g' m2 |" I如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:2 _2 F6 t" Z( g

. Y6 i( i, {. A# ]5 {( y1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
* o, n$ E# Q4 e/ M( ^5 a2 ?! ?+ z+ E+ M7 `
   ```
7 N) [% k! Y0 ]+ ^- u: b& O  R   add_menu_page(
; m9 |6 _) r2 l' ^3 E( v, }       '全站公告',+ Z' M  h) q( Z" G! f" P- e4 D0 R$ v
       '全站公告',3 z8 T8 Y7 G2 k9 T2 I! O
       'manage_options', //需要的用户权限
- p! ?: F/ b7 I, f8 Q1 `. }       'site-wide-notice', //后台页面的 slug2 _! V% W# j3 Q: [7 s! ~
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数8 C7 }, N; u8 j% k$ n
       'dashicons-megaphone', //用于显示在菜单中的图标7 m1 c7 s+ r; R- v! }1 N
       30 //菜单项的位置1 b; B1 j) \. v8 M$ O5 u% o9 P; f% P
   );
3 `$ F2 h# Y4 |) }3 _   ```
' k; z; A2 c- m7 U- g6 ^
9 C- v, \+ e. i4 b   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
" Q  b9 R2 o7 M$ w4 t
! S: Y% \/ n4 O3 C  y2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:+ d. O8 S# |/ a! M7 W! R
% y4 V  K  L/ J) t+ u( y0 X; \! N
   ```: J3 ^. V+ G& k' x4 O# r
   function render_site_wide_notice_page() {
: F" Q. K' c  [( i1 }$ C. R      // 渲染后台页面内容7 ?- H. v- x) z( }2 G3 i0 N
      echo '<div class="wrap">+ P2 c/ D% ^" }0 l, F1 y
          <h2>全站公告</h2>
  ?; d& T* y8 F7 v2 y) k* U" u          <form method="post" action="">
" Z+ l% U6 c' H8 e* I4 ]              <label for="title">公告标题:</label>3 C* Z/ `4 J" Q6 U3 N7 k
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
% \* q5 ~4 q/ T$ S              <label for="content">公告内容:</label>
9 `0 U7 _9 O4 s# y5 c: u              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
& A( m( J6 G& l+ G$ C6 y4 {              <input type="submit" name="submit" value="保存设置">* o  r* A# f2 j; j2 P1 t+ R/ B
          </form>' f, _* `2 n! ~1 ]
      </div>';* Q' I% P9 i2 P/ W

) x+ E, W6 ]! f$ N4 x      // 处理表单数据
2 W. Q+ w* y6 l6 ?      if (isset($_POST['submit'])) {6 ~! n, Y" e( S/ o1 ^
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
5 \" Z# r- t- G          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
- F9 y: |$ _5 s2 \9 n( ?. u      }
3 ^6 U3 Q! C! w   }
2 j$ @( t9 N. ?' p9 E   ```
( c$ L; \; m5 _# t7 G) b7 u! y
) D* p2 l& ]% X' u   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
% M" W5 ]1 S( `4 x- }1 Q8 _7 i
/ C" _& H1 }- G% s0 z6 M3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:) x$ z: s! O' n
% d+ m& M8 f8 Y# {8 X" ^1 M& R
   ```
) n; t+ a  A+ _2 a   <?php
! L: }1 v  V* Q# I3 w   $site_wide_notice_title = get_option('site_wide_notice_title');
8 f1 ]" b4 r  u$ s   $site_wide_notice_content = get_option('site_wide_notice_content');
; \% a; v8 B- R; M6 m- i   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {% P. K# t" K8 a% D7 B  n9 Z
       echo '<div class="site-wide-notice">';/ n' S& N8 C( c' R3 l8 {
       if (!empty($site_wide_notice_title)) {
. o5 Y/ Z0 [+ g2 K6 f/ G           echo '<h3>'.$site_wide_notice_title.'</h3>';
2 H( ?0 c/ ]" a5 K* H/ C       }: @% N: @+ v3 T, \5 a$ s
       if (!empty($site_wide_notice_content)) {
& ^: Q5 Z$ D! N% o4 Y           echo '<p>'.$site_wide_notice_content.'</p>';: g% q- x  T6 K
       }) ^2 F3 p6 d+ M! r4 n- k3 i# N5 q+ f. {
       echo '</div>';
- y$ Z# ]8 V! L( u) O* c1 C   }
$ w+ u6 ?/ m3 ]0 h$ K0 _   ?>
: g( A8 D" I) V0 Y$ l   ```
9 ^' u- s6 @# H' P% x4 z' G: M' @7 \- L" _2 \
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
  h+ L& _) m4 T$ u/ Q- e3 \' b3 m+ V+ p. L
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?( j4 r, e& z, s

* ~) O0 f( R0 e. ^( h+ R0 M+ Y, ~0 A您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
0 O1 B- ~$ A; R* B; T  @9 U9 O
6 R  [1 g3 T7 z1 s1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:+ h6 u1 t& Y4 Q" N! B
! k8 q+ t' B; q8 r( g
```' [2 W9 a8 v- x1 {. V
function create_custom_post_type() {' a4 E, C! Y8 K) |9 X6 [
    $args = array(
% X7 Y0 x% l0 W9 O4 e4 X0 A        'labels' => array(& P4 J" [. B8 `  p; H* B+ N& P
            'name' => '公告',  e6 M! a& @+ U# x8 @
            'singular_name' => '公告'
& h7 E* Q7 ]$ V+ |        ),% D& h) g7 E1 ?* @
        'public' => true,
* ]; x$ ~* C9 j4 W        'has_archive' => true,8 n: K& J' A+ }, S
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),4 X: r; E! }( L" A! Y7 u; P% x  e2 s
        'taxonomies' => array('category', 'post_tag'),
/ z. g0 I4 V% E1 c7 J& I9 a9 K' G- ~        'menu_icon' => 'dashicons-megaphone',6 i! v/ }3 [; C0 A
        'menu_position' => 5,: u% O# L  n1 K3 n1 ?9 f
        'rewrite' => array('slug' => 'site-wide-notices')* G$ t, {# o/ {% L: Q* s
    );) l* _2 v, |. [; T7 t) ?& d
    register_post_type('site-wide-notices', $args);
# \4 g) U6 c0 C+ C/ J}. X' f0 J- g$ v3 P) N$ ^2 t
add_action('init', 'create_custom_post_type');
* R7 U) w8 K$ e# Q" I8 ]1 A% |```* @( L  |, ~. p2 O) z
# ~# S  `# X2 _& g) c; F
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
  h' T& l- }$ D! W& b% q6 l
3 H* L4 t/ d8 h( t- W+ W2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。& _3 b3 `7 k' N) J) @* V7 _8 G; H
" @8 ^1 j9 [1 x, \0 |2 t
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
: _; A# u/ d! h4 t( I! @* I8 c
# }8 u- ]; h: c6 {# A0 r```/ _/ j& a( \  n1 c- u% `
$args = array(! D2 n) e, b! s& K, V) n' @
    'posts_per_page' => 3, // 显示的公告数量
+ \4 u+ q3 M) Y2 m/ ]9 B  _9 ]    'post_type' => 'site-wide-notices', // 公告文章类型0 T2 [. J- N: a
    'post_status' => 'publish', // 公告状态8 O) k4 a* q  Z* G
    'order' => 'DESC' // 排序方式7 ^5 D- B, W1 b/ R  V
);
5 V" ^. [& S  |
" R$ n1 B2 O$ m) z( Q$notices = new WP_Query($args);
: q7 Q8 u' |  gif ($notices->have_posts()) :
- w* N; I9 n0 U0 y    while ($notices->have_posts()) : $notices->the_post(); ?>  g* k' r" ?7 v4 K; |
        <div class="notice">+ B, }4 H/ ?. M# B
            <h3><?php the_title(); ?></h3>
" E. `* T+ [+ O' ^4 q" X# `7 n            <div class="notice-content"><?php the_content(); ?></div>
! ^) d8 g! w: _( s6 O        </div>7 v$ w" P5 z' G; B4 ^( ]9 z
    <?php endwhile;
+ {( o0 I  g, l9 R( w- |+ Yelse :
+ E' o& x$ j& `% N9 @# A    echo "暂无公告";6 b) k1 D4 I3 ]) {
endif;
; Q# y* J0 e% l" Awp_reset_query();% [3 E- A( P3 \7 f' ]# B9 b
```
% _5 e' e6 V; K6 W+ }; Z, ?8 u6 ]' A3 }" U7 Y3 J3 X
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
" _' S& x8 V3 K1 X# H! ?( \8 Y6 Z6 h9 L
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?" i" b& u+ ]1 s+ [3 |2 l

+ i) H8 ~/ X* U" P/ K1 Y如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。9 A! v  r* \* P1 [4 ?
( O4 v% t) c: o' c6 Y7 _' i8 D, L
以下是创建自定义插件的步骤:
% C9 `5 l1 p  n+ ~8 X
% q$ c+ x3 D3 k: ~3 E1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
% K5 X0 a, f% Q+ e3 V  N9 m  o0 u# d; `6 x
   ```
$ q" P) {$ ?; V/ j   <?php
* `1 A* T: o5 l  O9 P% j- t2 e: e   /*, D* @- _$ a4 Z+ f. B7 |
   Plugin Name: Site Wide Notices Plugin3 A5 ]- Y, {& G: ~' M4 |! k
   Description: Adds a new custom post type for site-wide notices.3 e# E& C; Q  c% A3 |8 @
   Version: 1.04 \) _1 k2 ?9 E) ^
   Author: Your Name
  Q# ?5 p2 q8 \5 K* ?% I   Author URI: http://example.com9 O- N' C; ~% t4 q# x' U/ T" u
   */) L0 B3 n; T8 q) M! q& m

! _6 [: j& N& j" |2 b   // Add plugin code here...  w0 g8 ^7 D$ Y2 S1 o/ Y; Q
   ```4 [+ ^7 A' [! [2 ?5 p
& R5 x. A: s! S! M8 s3 `
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。, o, O1 Z) i1 P$ j8 n# o! p8 ]( \2 U
4 u/ `" O8 d4 W4 I0 r$ d
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:1 z- o0 C1 J' H, p) x

* m5 c# }, J* z9 r# K( ~+ A" i   ```, \# n. E# L7 u# v  b+ h- h7 e6 P
   add_action('init', 'create_custom_post_type');; e1 l. T( V" |
   function create_custom_post_type() {  m$ C4 e" o+ C( t" S/ O
      $labels = array(- S8 Y' q5 @8 t7 {9 C
          'name' => 'Site Wide Notices',
$ [+ I% \& P8 C4 |, w; \0 Y/ r          'singular_name' => 'Site Wide Notice',
6 R* e/ ]! V' H2 u3 x  c          'add_new' => 'Add New',1 C. ~( P, s; O8 c
          'add_new_item' => 'Add New Site Wide Notice',$ W" q- a1 U5 t! p" t" k! W
          'edit_item' => 'Edit Site Wide Notice',
, T" U0 C3 e6 m8 \; d- k          'new_item' => 'New Site Wide Notice',& i1 |6 E9 S5 W( H
          'view_item' => 'View Site Wide Notice',
( \. ^$ @7 B" `! W/ E) A          'search_items' => 'Search Site Wide Notices',
6 j, }& Q0 Z* T0 I5 j- j0 U          'not_found' => 'No site-wide notices found',; x7 `/ p" `2 }0 T7 v5 w
          'not_found_in_trash' => 'No site-wide notices found in trash'
- g$ d2 S8 c9 }6 Y# v3 h# k      );
$ ?- f7 f( T  a7 Q2 e+ B# d$ X- F7 F4 Y3 ^, Z3 u0 i$ ~1 z
      $args = array(8 l* f7 u& L% Z; P
          'labels' => $labels,
; s) W* j% J7 V# w; q4 }3 _          'public' => true,5 }8 A/ b, G( l) Q1 {4 z
          'has_archive' => true,$ Q& i5 b2 C( Y4 b; v+ M) a7 K
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),' }! b- j' t" ~6 B2 O
          'taxonomies' => array('category', 'post_tag'),
4 [& n2 O+ d# @2 i  i          'menu_icon' => 'dashicons-megaphone',
7 q: W/ b2 o$ H2 N  W) O9 d9 a1 g/ ]1 ~6 y          'menu_position' => 5,- ^( O5 f6 |# n/ o! Z- Y- s( b
          'rewrite' => array('slug' => 'site-wide-notices')
) q1 [1 b2 j$ V      );2 Y# c3 A* e, A$ x, T7 J8 I

3 R% F' ]/ A5 V0 P1 h7 `      register_post_type('site-wide-notices', $args);
$ h3 c6 S7 ~2 L) b: ]: x; E   }" o( _+ L6 n0 V$ [
   ```; J6 d, u( [7 n; G6 F& k, n+ F: G

8 f3 U9 a  U) l   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。* l: Y. J9 \4 B( o8 f$ Q. ^

) ]' _- @0 c8 x9 s0 d$ u+ j3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:0 v% E/ n1 |- J( t! w& L* ]  N4 m
$ y5 @& m( m/ p
   ```
- k' n5 Z7 x$ }7 t' J' P   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');% Z* ^) `! K5 y8 X
   function add_site_wide_notices_boxes() {* t7 X0 W: T4 e! A' N0 u
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
2 n4 B2 X7 F* n; D- ^$ y# `8 p   }
0 A% m' N1 I& P4 I6 ~- w3 v! |, t% I- m; N
   function notice_details_meta_box($post) {  I: g' A( [  r" {
      wp_nonce_field(basename(__FILE__), 'notices_nonce');7 K7 S8 s) X# M, O, m& v/ D/ N
      $notice_title = get_post_meta($post->ID, 'notice_title', true);" F) r! K) S" p( M
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
, K! S' i% R$ G. H( f  }' _      ?>
' K1 ^9 C- f$ m      <p>7 N5 T3 a" j# B4 r- y
          <label for="notice-title">Notice Title</label><br>. B  g0 N6 Q: _. o6 l
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">: Z) r4 m5 K! e, n5 W2 ]4 v
      </p>/ x: G- d+ C" Z+ i$ Q5 ~
      <p>
" X3 K3 h3 _2 y+ s, N" _          <label for="notice-content">Notice Content</label><br>
6 k, f! \/ n8 _  }* ], s% Z          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>/ A! C  M7 ?5 P- t4 M" |8 X) I+ x7 O
      </p>
' V0 z. V% D' R7 N. j/ b      <?php
6 K% I6 d) W0 ~; n' D9 m1 p+ w( t' f   }
4 d+ h% X8 O& e* G- d, m8 Z# [9 U! s& Q
   add_action('save_post', 'save_site_wide_notice_meta_box');
3 t' u# i) I+ W6 W   function save_site_wide_notice_meta_box($post_id) {
* f& W/ E- E- P/ M" ?' B      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))1 @$ F* [' q" t! J
         return;6 f9 U1 b, q% Y% F5 z  R
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)+ U- C5 ]2 J; e! f( P9 Q6 ~# I! \
         return;  e8 k4 ~: X, |8 S% p" x& [! J: ^( C

$ K, C! J) `  [' |$ R( h2 G      if (isset($_POST['notice_title'])) {
0 w8 A0 O: ^7 M* w7 r2 C          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));0 M$ ~3 N  E! |3 ?: w& B
      }
  s. m8 `2 T% {3 k0 t6 m/ A" M+ k      if (isset($_POST['notice_content'])) {
9 `3 V; ]3 A& W7 i& o          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
3 x3 [' |4 Y; M( ^, ]3 G# F      }
$ I, N3 ~/ ^$ M9 N% P0 P$ \: ^( O   }
( U7 Z5 h0 v7 M! x. [5 Z- ]5 @   ```% F1 S0 e2 Z* y; `, U

6 ^# p' n$ J  @8 Y   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
; F; ]: F9 T9 T" w2 c5 Y! Y7 Q
* T9 Y9 \. U! |$ w" }8 V- `4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:4 z& {; X7 u5 V  W) r1 A/ D
! i% G. _/ Z- m# v- |- B) }% ?
   ```
5 Q" d/ |8 Z0 f; a: Z4 ]- W   $args = array(
" @+ l( ]6 R9 A; J' ^) \+ y8 t      'post_type' => 'site-wide-notices',, ^; J2 g  r7 D# C! O4 C# O
      'posts_per_page' => 3,
9 i2 V' {% W. g' V1 p      'order' => 'DESC',
& T& j$ z2 z" ?0 Y+ D+ H2 z" e; Q      'orderby' => 'date'5 c' F9 Z: `" I
   );
4 z- @: R. k; E% ~3 A& W   $query = new WP_Query($args);* R+ H, }; N# f1 _
   if ($query->have_posts()) :/ n6 U9 T/ f: K- j5 c
      while ($query->have_posts()) : $query->the_post(); ?>: v5 _9 [' s5 o! y" I
          <div class="notice">! r3 t3 q/ }8 q) I* V9 }* u, ^
              <h3><?php the_title(); ?></h3>) K& r2 H! `, e  b1 y
              <div class="notice-content"><?php the_content(); ?></div>: Z. `! N$ F' l2 w( ^( n
          </div>  {* u! G* [: B3 t5 H9 _
      <?php endwhile;4 o- D% }) {0 ^' ~# N. P
      wp_reset_postdata();
" I" {* Q+ d6 B7 g1 v4 y   endif;  r( G4 A' l- x5 p
   ```
- Y7 {- O. E6 p
9 L' V2 R3 n; F' X& P4 ~   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-10 16:49 , Processed in 0.011720 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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