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

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

[复制链接]

331

主题

511

回帖

3353

积分

管理员

积分
3353
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:& L$ M" S; A( G  D& |4 }  c# o4 y

+ K4 U9 ]7 I0 n1 \9 W1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。' s4 N3 y- ]& `
5 B* M6 O1 O* z* t- O) Q
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。, @; q) y6 k* L( b
/ W9 \8 g/ |6 L
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。# y. ~; b4 s# z+ V9 j
2 ]+ L# l% [! q# c; j
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
) ^+ Y) `' w$ j+ \! U+ p. D1 |' G" c# a6 h* Y5 s: g& @. ?$ E+ W5 p
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

331

主题

511

回帖

3353

积分

管理员

积分
3353
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
! C& V) @6 }2 K0 V- e6 @4 r7 Q" J2 R- J  G( Q- c% G. y9 F
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:' f8 d6 }& p* L- k, X$ U

  M2 E1 D% r9 a; L0 \/ t1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
+ \4 x& X. e* J! B
4 [& z. G" x5 w- Q# e0 ^8 W   ```
( a% ^! Q6 d; P0 v. J   add_menu_page(
3 b. I2 b+ r6 K  K7 \0 f: T       '全站公告',( |. g% Y% @' Z" t0 u0 [
       '全站公告',
/ v0 |8 l3 f4 \6 ?; e$ E2 S* T       'manage_options', //需要的用户权限0 P/ I4 S2 h2 s7 q- F
       'site-wide-notice', //后台页面的 slug* \) O1 k/ |; Z& S% j" s1 c
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
( K" l% p* m  z' e4 w       'dashicons-megaphone', //用于显示在菜单中的图标/ I# P( G' @9 s; L! D3 b
       30 //菜单项的位置5 @# j; o* i2 P2 c! C
   );% M9 x, M/ ^4 b% T6 o( q
   ```
- J% ]/ V. |* @* q" S
; f2 O% ^2 n" k. ?4 M; G   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
9 f% x; E6 c( V. R+ {( ^9 Q+ y" C  z9 A1 G! O$ t8 v+ w4 ?0 G
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
% k) X0 h* X4 l/ g. U: j9 E
3 I+ H' O( D% }8 d: p   ```! J2 I$ t2 e2 f. Z5 x* |
   function render_site_wide_notice_page() {0 Z! ?' j/ ]/ t! F  P9 a
      // 渲染后台页面内容
$ X* X1 d8 Q1 ?/ b0 x2 ^      echo '<div class="wrap">6 A5 n  R7 W  Z/ S" B  c% O  I
          <h2>全站公告</h2>
) n% a) z" ~5 B8 A/ [! [          <form method="post" action="">6 r' P% X' a5 ~6 e; g9 U
              <label for="title">公告标题:</label>
5 x* l" V8 [& v) ^              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>: d, D2 k3 y! I
              <label for="content">公告内容:</label>9 {+ U: T/ ]( g1 I7 Q
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
( R: ~: s% O6 \! U3 o9 X              <input type="submit" name="submit" value="保存设置">4 b3 r  i2 K" z0 _
          </form>5 ]) |  n& ?5 p1 C/ b$ J5 O
      </div>';
' w# J2 h1 ^8 h: f; K2 U$ L5 ~! d
- T6 l* u% c/ y# A8 x0 E- K      // 处理表单数据
1 e& `. T5 E% }" N# E      if (isset($_POST['submit'])) {& j: t& h3 U* I; b, `3 O) C! j
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));2 Y, J! s8 ]! x5 @4 O
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));6 T3 ^; A2 R# u6 y; K) V1 i3 w
      }
% j" V% l0 q' t+ J$ D" J   }% u" }( i6 @0 g
   ```
/ B: U1 o7 u) T* V! y' w' {( B0 b% ~: R" F8 S
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
7 S! a* _  i8 W! ^  n' A3 U- r) V
( n, c* ?( P1 @3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
* x7 [, u: T- `( E+ {
' F. C2 S4 }% |5 z1 O   ```% y3 }" v, {  W$ q, M+ V
   <?php
! E/ a: |. I7 X" y8 Y" [   $site_wide_notice_title = get_option('site_wide_notice_title');
( m$ d2 @  K! q) p% Z6 t, q# P" o   $site_wide_notice_content = get_option('site_wide_notice_content');
5 T  W$ |! e5 ?4 L% t4 W; b' c0 ^   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {7 U1 h. q* V  }' s' l
       echo '<div class="site-wide-notice">';
5 d5 y# y  ?4 q; l* i       if (!empty($site_wide_notice_title)) {
7 A0 I  a  ?' [6 I$ P$ F7 X           echo '<h3>'.$site_wide_notice_title.'</h3>';. D5 N, p4 a4 u! [* {
       }
* {+ Q! j# M  a0 a7 _       if (!empty($site_wide_notice_content)) {3 i  G2 K3 I& q$ |0 T0 N+ B
           echo '<p>'.$site_wide_notice_content.'</p>';, q4 G4 m( |" X
       }/ ^6 x% U8 M% K! Z- N$ ]6 W
       echo '</div>';
* W+ ~/ k) S8 H0 T& x( v   }# X9 i3 I% l5 d7 v( F
   ?>0 m. ]2 @$ g* K0 J/ i9 o6 x/ V1 E1 N
   ```
9 ~! S; `& J: J& Q6 y3 w$ v! n9 K$ ~& C: e7 ^  J$ ?
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
8 Y/ K4 R- N. F% Z& G' W
. U3 {; w4 r: X, T: g  {) |2 j请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

331

主题

511

回帖

3353

积分

管理员

积分
3353
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
5 a, S9 e4 R  ]) Z1 f0 K$ E3 D& q
/ b9 V7 R  S- O" d6 k& Z( @: A0 z您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
; G  k$ U7 ^% @7 g4 N: r1 f" T# d4 B* Q) b9 z
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:! ^" Q; D7 i; M. H0 c

0 R3 i. H0 ?" M. J+ {```
  J1 X8 V" Z- U* I8 k5 i5 sfunction create_custom_post_type() {3 p* l) q5 i& E2 y6 {; |/ m
    $args = array(
/ V% n3 Z# x3 P  l  H        'labels' => array(2 ?$ f: `  \% M; E( |4 u; H
            'name' => '公告',
, ^7 r1 m  J( v% R, N1 ?  T; @+ z3 T            'singular_name' => '公告'6 j6 ^. s+ K. b+ Y
        ),- ]3 H, s0 N( @' {2 b) I. d
        'public' => true,/ t% t9 K3 J' C9 e+ Z$ U. f
        'has_archive' => true,& ]; r: X7 p4 H* R) y0 v  Z/ O2 W
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
% B. A5 m" X( S' z& s" |        'taxonomies' => array('category', 'post_tag'),) H& K! D7 ?- M
        'menu_icon' => 'dashicons-megaphone',
6 D  k1 f3 v# S* O- `, Z        'menu_position' => 5,
$ ^% U. `" x$ O% |) H        'rewrite' => array('slug' => 'site-wide-notices')
4 h/ I" t1 H8 b. Q& h    );6 j4 ~5 C: b2 V% `4 y- Y/ w
    register_post_type('site-wide-notices', $args);
, x, \, r' J2 @}7 |6 m5 G7 a5 ?( q) |: g8 [
add_action('init', 'create_custom_post_type');
! I" Z- }0 I. g& q/ @# E```
1 @5 c5 M7 W3 S
( ~) w3 O9 X0 b+ }在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。* g6 Z- ]1 Q) }- V: U( x
1 g7 }  S; T5 l( y1 W
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
% r; {  Y5 ^( _! C, F' w  b
9 S, Q' C/ [4 j# N8 e- O* J3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:" g8 ~! J$ T3 r3 R
3 R, _& p5 V- R7 c  V+ L" h
```. }* }6 L; X. f$ {  k1 u* a  U
$args = array(* J; }6 {' t, o& |1 M0 S
    'posts_per_page' => 3, // 显示的公告数量
5 k) z' T, j  F  N8 h% h" ?    'post_type' => 'site-wide-notices', // 公告文章类型
( D& u/ U$ T) p0 y5 q3 d    'post_status' => 'publish', // 公告状态
. x9 E% j( X7 P! p+ D$ i' m' J* N    'order' => 'DESC' // 排序方式& c8 K/ s! L% Z. C) v( O1 a0 ^( q
);
; D- l6 I! _0 X, |
3 k) S6 F" D0 X' p, n$notices = new WP_Query($args);
7 n, g. n' u  S7 l- Q3 b) x) ]/ g6 M, Iif ($notices->have_posts()) :
5 _! F' E; q, D& t3 l) h& n: C    while ($notices->have_posts()) : $notices->the_post(); ?>
" S2 ?$ d# W, v0 X2 Y7 Q        <div class="notice">
3 p. ^) ~' i$ G3 u/ f" v4 J& N% G            <h3><?php the_title(); ?></h3>& }& f1 o- ~) f  p$ m% _* n5 ]+ L$ l. z
            <div class="notice-content"><?php the_content(); ?></div>
1 L* R% ^: k8 U) z* M1 D        </div>
7 g2 U! e' U( B0 a! O  v# l    <?php endwhile;
; Y4 x9 f. y) k+ O  |: Zelse :6 e2 G2 p4 u: {
    echo "暂无公告";0 X  o+ `7 W7 [2 O
endif;& W, r0 O3 a; f% v* P
wp_reset_query();! O7 g5 D. [( J; Q
```, J1 y; o# ~! m. w  b% q

& |; ~, }3 B0 l! l) t; d, J9 |这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
. h, _* X1 \$ z% ?+ b" Z
! ?6 T. ^! b& T* f4 |: b以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

331

主题

511

回帖

3353

积分

管理员

积分
3353
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?1 k  U# t5 \8 X- q

2 g7 z! n6 [6 ~/ ~: N4 o& l如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
0 l2 G- l6 p! S. u
1 E2 h7 Y4 E. G. L5 D2 e0 D9 P以下是创建自定义插件的步骤:5 C% O3 b$ h) b

& _8 [$ t, e3 ]5 a1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
( D3 u6 L; G$ i* ?, B5 h3 N
* ~0 n/ p. ^  r% n0 M2 e   ```7 o# `% s: ?+ x3 G+ o8 ]
   <?php) y0 a/ ^& r# n6 {
   /*% d' S* y! W. o
   Plugin Name: Site Wide Notices Plugin% O  H+ c5 j% Y) h" V+ p% a8 w+ Z6 F
   Description: Adds a new custom post type for site-wide notices.9 _1 l4 O5 R& q1 j; h
   Version: 1.0, e+ T* E5 k9 r+ j: }7 G; c
   Author: Your Name
+ y! [/ n* I3 k% m   Author URI: http://example.com
/ V! j, B# n) j' e, g+ ?# i7 Z$ ^   */0 a, {) X6 e7 R& X5 Z' l& I' ~
9 Q9 ?8 y3 v9 C  Z. X2 @
   // Add plugin code here...
  `+ Z" E/ e* R& ^0 W   ```
% |4 H9 Q; Z2 V; L: r7 k7 d% h
8 i# y; w: ~- I$ Y$ J) Q" _# p   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。- z% r/ y; E% i2 A& v' a) m/ ]

* }- t- a9 ~4 r9 L- C2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
/ I% J8 B6 ~2 A8 \% X6 `+ n- m7 z, @- ~. P; \8 ]
   ```, T% w0 [' d. H! T/ S, \' s3 [6 g
   add_action('init', 'create_custom_post_type');
% p$ S8 k+ m6 H   function create_custom_post_type() {! `6 ?7 P3 Z  |; Y5 Y
      $labels = array(
7 @7 G# L; ~) \. i1 F' q: J* R          'name' => 'Site Wide Notices',
/ [8 u1 W% K( |' f" k4 [1 T          'singular_name' => 'Site Wide Notice',9 ^5 {1 h/ z' J8 A4 i7 X: b
          'add_new' => 'Add New',
5 c6 ]) H' P' e' I1 l          'add_new_item' => 'Add New Site Wide Notice',
6 s9 F6 P9 R- P9 H; |4 ]          'edit_item' => 'Edit Site Wide Notice',3 p$ K3 q1 s8 f: J+ p# {
          'new_item' => 'New Site Wide Notice',
* I1 J1 j) Z5 x8 J( Y          'view_item' => 'View Site Wide Notice',( U, T5 ~: I  s6 [0 l  A9 m8 s
          'search_items' => 'Search Site Wide Notices',
( @  h1 K; t1 b& L/ l9 f/ S          'not_found' => 'No site-wide notices found',
) f; r. J9 R, ^% e          'not_found_in_trash' => 'No site-wide notices found in trash'
1 i7 ]+ G0 o* T6 z) ?& u      );0 \8 E& k9 N+ w4 G2 i( J1 }, q: r

/ T- I: _, \/ P- ^      $args = array(
8 I) q  ]6 t- [          'labels' => $labels,
: l  Z1 N. S9 F& S9 e# q; x! @          'public' => true,5 a! o' j8 ]$ G! x: H
          'has_archive' => true,+ o7 H# U; @, g* f
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
( U" e/ N& d0 V7 [# O2 a1 \          'taxonomies' => array('category', 'post_tag'),
) \2 S5 ]; B, i8 P0 P& K5 [$ c" \          'menu_icon' => 'dashicons-megaphone',
: C- c4 P( N  ^+ L( x; N          'menu_position' => 5,0 Y+ h5 k; m  ^" c7 [: C7 L  Y
          'rewrite' => array('slug' => 'site-wide-notices')9 o+ ^6 f" H  I4 @1 l' O' S
      );
& `: Y4 a# y3 D" |* t& f2 s4 E3 Y9 ]6 N) x( ~
      register_post_type('site-wide-notices', $args);
6 i! y* {! W6 B0 q1 s' E! J( x   }
6 u8 f( y, [( T+ n   ```9 [) L- I# v+ {+ y' ~
! Z( v6 Z7 t0 ]. E; i* z- x& }
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
8 H* f# I! U8 g& g2 i# V+ d' j- I
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:+ W. U% Q2 @  f
3 R9 J/ O7 y3 {+ ~/ L( b
   ```
" e& Y' H7 i. n' {0 B   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
0 O6 I* P$ `; j0 C% M" b) F   function add_site_wide_notices_boxes() {5 s, h% r2 `( C1 y
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
; a9 J( m5 c- z' Y8 I# F4 D   }. o, v8 l6 I' u: i

7 v4 Q: x7 d! f: p4 e* d2 U# G   function notice_details_meta_box($post) {
( N- y1 I: L0 F+ ?0 i      wp_nonce_field(basename(__FILE__), 'notices_nonce');8 H/ u) A4 k1 u) ^
      $notice_title = get_post_meta($post->ID, 'notice_title', true);, u* z- b" w+ c; g
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
& Z" J# U/ p! Z  A5 {- `% U+ Q- x      ?>
/ T% F, P4 i, \9 X4 y$ Q3 f7 `      <p>
( j! ?8 l1 B2 k( r6 X          <label for="notice-title">Notice Title</label><br>7 }0 d, G  ~) V  ]
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
$ v  `: l4 q' l8 {# e! s      </p>
, A+ V0 p' \5 l2 a  a+ H      <p>
0 w  G8 u& |& C3 }          <label for="notice-content">Notice Content</label><br>
, W$ t9 C, I4 x+ b% k+ I          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
  U6 {  X$ Y8 l      </p>) H- u$ J: y2 j5 B
      <?php4 ]5 v# J& H6 G2 H8 F
   }
7 W) Z9 X; h. n  B/ B0 ?4 z( r# R4 U9 w& ]3 t! L9 z
   add_action('save_post', 'save_site_wide_notice_meta_box');
9 ~% h) h) x$ P& _0 {) K( \   function save_site_wide_notice_meta_box($post_id) {: O. ~) _& B9 b6 J. O+ G4 D3 Y
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
8 v& K2 k7 N" O/ A5 h- k( l" K         return;  A' o4 p2 O8 d" O
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
9 D2 y/ ^0 f* C6 q, r: t, V/ A4 @         return;
5 y$ B2 p. u! e! t! N4 u. w: ~1 a, f/ p' W( z' p" t4 n
      if (isset($_POST['notice_title'])) {9 e0 C$ q6 I% I
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
7 O" R) f$ H! \# K      }
; [0 w/ R6 ?  r      if (isset($_POST['notice_content'])) {
! W: l, @; O% A  j6 J" O          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));- J: c2 w, u9 [) J3 U6 M4 j
      }
3 l$ M8 W* Z) B/ m   }
" X! E, J; S& q- t3 B; Q& {   ```1 ~6 t- M' ?* i1 F1 i8 K

  ?5 b$ G  k, a8 z2 ~: I4 b  ?   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
- A! A# R- g' @( @& G/ u: C1 H
: A, t3 H4 V  Z) \" \. ?4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
; }% y. R, w$ I+ ?7 L3 o1 E( M( u" X# Z+ T" r2 V
   ```8 j7 e. S# A5 m# Y0 u$ p6 |, [
   $args = array(
; t2 y& Y- E8 S# W  I      'post_type' => 'site-wide-notices',% g: C( A) x- ]2 \6 h0 @/ H
      'posts_per_page' => 3,/ h9 f# a0 C: W* }  K3 Z1 E8 d6 O# ?
      'order' => 'DESC',1 T  X0 ?" Y6 i8 U8 N# Y
      'orderby' => 'date', [3 X+ w9 U! U# {  R3 j: [" b; y
   );
& M1 y/ H& Y! j   $query = new WP_Query($args);* b5 F; P3 t  x2 e' q8 [
   if ($query->have_posts()) :$ L5 C7 v% M; r& n7 Z* d( _7 c
      while ($query->have_posts()) : $query->the_post(); ?>
" A* j( p# X8 u$ h          <div class="notice">
" L6 w; b5 H- d4 S9 \9 ^( J, v              <h3><?php the_title(); ?></h3>& i6 S& s* }1 t" @. _* z
              <div class="notice-content"><?php the_content(); ?></div>
0 c% n" O: z8 ^- }7 L& I% G          </div>
" M1 q8 M, d, F+ F0 i( D1 e      <?php endwhile;
0 P/ e. [1 @* i  i( M      wp_reset_postdata();2 Y. R- o6 X6 }, {: Q2 c0 B  X: O; \' \
   endif;5 D% @% _8 M* l, D
   ```2 I1 C3 r) _' E& w
1 M) [1 _0 r. w. q
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|通达产控投资 ( 粤ICP备2023021749号-1|粤公网安备 44030402006137号 )

GMT+8, 2025-11-20 07:48 , Processed in 0.084501 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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