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

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

[复制链接]

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:' }) p+ d" Q+ p) E" w9 k7 w! N* x6 }: S
9 v& L3 \8 R6 c- K
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。+ ?6 F5 Q5 U" H% b1 J+ o* M5 H. H

1 a& Q9 _) Y- N6 L- |5 q& @! ]# t" s2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。' e) q6 B9 a. C
& [0 D  G- W4 G' s
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
1 F) Z# X! r9 H
7 r- y, r5 `1 J2 U- i4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。  M6 y% ]6 @9 \4 n% U* S3 i
6 [' z7 C" \& |- v& X- p' V
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
" V5 c  W8 u, u/ W& P3 R$ A9 C7 P; L
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
" b1 q& }1 [. W. g* y+ W1 \
* K$ Q. @1 V- h) u: @1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:8 S- Y  P* [1 }" {5 {
. T+ j9 @6 Q: G; i7 A! c- O
   ```
5 w  S+ D. e; P7 g1 B; S   add_menu_page(  g2 ?: m+ r1 M$ F7 y
       '全站公告',  p9 P; f6 @8 C+ ^
       '全站公告',
* O2 l0 }9 V" a5 `+ e* D       'manage_options', //需要的用户权限4 U7 q$ l3 v; u. U( }& r2 x
       'site-wide-notice', //后台页面的 slug* ]) f6 e- f( A2 p5 e
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
! J8 u6 n5 d0 M# H1 l/ B       'dashicons-megaphone', //用于显示在菜单中的图标
" C) K8 b8 u/ y( y$ _       30 //菜单项的位置/ C: f5 \4 U" n( \! L/ J0 }5 i" @
   );: j) k: w' n- E* M- ~1 M9 s2 o. S* U
   ```
+ a1 ^0 w; p6 B! W
8 Y9 p3 M+ ?9 K% S) G3 e   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。$ t: _5 ]2 J6 O6 C3 b+ h& i, F

, m* h2 R2 {( v  X* B4 @, A2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
6 C4 {- l$ g0 p) _% i4 A6 X9 F: X9 K9 I. U6 C; c
   ```' g2 a0 }  b# Y' o2 S* k! r1 U( o
   function render_site_wide_notice_page() {8 _/ j$ q1 o( Z0 Y6 J8 n
      // 渲染后台页面内容
8 I) j) o. i1 [      echo '<div class="wrap">
% H* |$ h* _+ B. k* `% N' c8 v% {          <h2>全站公告</h2>
* m' T. ]6 P- ]- F8 R* o          <form method="post" action="">+ @$ s& M7 r- s. @8 Y$ j1 Y
              <label for="title">公告标题:</label>0 X0 ~2 F: Q$ w) D/ M. `% Z7 X+ A7 R
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
" n# s7 A1 L5 j$ d6 v7 x; a              <label for="content">公告内容:</label>) }4 m- M  R$ x- K. b# t0 D  S0 `
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
3 ]& g  P/ q. t, j( `! V              <input type="submit" name="submit" value="保存设置">7 S; ~" N9 w! q( A2 r5 I$ K
          </form>
  z7 T" L8 D* u. S# u      </div>';
/ u! S3 [. ~" [5 A  E3 W  O6 k& I8 q! {: T% u  ]" B; I
      // 处理表单数据
- h7 Z3 F8 B: m: n. p      if (isset($_POST['submit'])) {
! A! h& C/ ]# F- w& [# m          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));6 {0 [! c8 b1 Y% X" e% {$ F# W5 O
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
9 q: Y7 v  f1 D0 F4 A# j0 B      }
0 Z0 n1 K+ y5 U$ p! `   }5 h; M* U8 Z3 Q8 l
   ```
8 N$ m1 V; y: U& E! e, F4 j3 E. i8 Z0 s9 R+ f
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。' g4 }: ]0 m- f) X3 f6 L. F: E0 X

7 `* k! M! a6 E, }* S+ @3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
8 ]% c% \" A  Y. K6 ?7 K7 f2 F
) _. N7 C* [+ h. H   ```
7 J& ?/ A0 j3 ]( \   <?php% |+ O) `( N$ a3 c6 B+ Y5 k7 W# F0 K
   $site_wide_notice_title = get_option('site_wide_notice_title');
6 ~1 x  h( d( V# H1 D' c" b3 s   $site_wide_notice_content = get_option('site_wide_notice_content');4 c9 r6 O6 I& @8 ^) C  E
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {' Z& x8 Y4 W; P7 h% O% x/ N+ W
       echo '<div class="site-wide-notice">';
8 N, R- N" ?' I       if (!empty($site_wide_notice_title)) {5 u; G: |" K; [# O
           echo '<h3>'.$site_wide_notice_title.'</h3>';
2 h8 g/ f4 q4 u3 f       }
- I" W4 Q! n+ v3 z# n/ m: f  J6 D       if (!empty($site_wide_notice_content)) {
) L; v3 u  L+ E           echo '<p>'.$site_wide_notice_content.'</p>';
4 f+ C/ F9 ^6 m9 v# ^( V       }- d' p7 o% ?! O. d+ a+ o
       echo '</div>';
* a: R% Y$ Q/ y+ ^4 ^   }6 [  B  C& N8 R+ l/ j  G) z& F6 e
   ?>9 k! o& B7 @# J; Z5 ~& V
   ```, x4 O- z4 N2 d$ K  I

% `" I5 f8 O) n; I1 D3 P' b   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
# @, x$ \- J* D) y  w
9 u1 l! v  f  Q% e' H- L1 W请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?4 w; \0 A% j0 u! V3 h3 g

; ^/ _0 U7 d  s' o您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
8 [# D) u# W* F" [2 E: A- ]
* K9 c# G/ x+ N# b+ W# U) I3 T0 V1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
& ~0 @  I# I/ h9 K( g1 V% H$ T/ p- N2 B) a  T' p% r+ ^3 m3 f
```
2 U9 ^+ O( e1 `2 }/ ifunction create_custom_post_type() {" a2 k" U$ W  O3 X9 Q$ M# Q
    $args = array(# Q) D, h& K& M
        'labels' => array(% L$ s$ [7 V  Q+ {: O+ `
            'name' => '公告',' x  E9 S) y) n% A+ g0 B
            'singular_name' => '公告'. h4 }& U, o$ w- c/ \
        ),
4 N( E* W/ Z6 ~( S1 O8 V) n" t- s3 ]        'public' => true,
# H+ ~4 h9 n3 z" Q        'has_archive' => true,( N: O$ q& n  q! i5 q, y# x/ L1 O
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
1 }- d3 j# I. C: {* P+ j* Q        'taxonomies' => array('category', 'post_tag'),
6 \. H/ h, s# C! q9 R        'menu_icon' => 'dashicons-megaphone',
4 a) \+ }9 @: V        'menu_position' => 5,
7 _% ?/ n" r, B4 W        'rewrite' => array('slug' => 'site-wide-notices')
% M) @$ c; }% L4 _3 Q$ C9 c5 u    );: I7 B6 T4 K7 m2 i4 |
    register_post_type('site-wide-notices', $args);" H& t  R0 r$ E  Y
}! b, S3 Z# g1 w- o/ O
add_action('init', 'create_custom_post_type');
/ y; i3 Y* k3 U; H4 ]0 d( E```
0 K+ Y, S/ _+ M# I2 M3 @3 i. i2 I( m
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
% s7 G! f! Y' P+ O7 x. G0 k
: ]: U5 C2 l. ]) e6 _' L) i2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。# P. L9 ]) h; n( N( A8 x; s3 `3 ~* D+ N: E; H

1 c1 _2 o9 N% e4 r3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
+ c! D4 F$ d0 W! v; q+ e* x1 A9 Y; d- z! K5 B9 {8 s
```5 R4 f# _5 K3 w5 a
$args = array(
! E% b3 X. k/ ~% J$ I! h    'posts_per_page' => 3, // 显示的公告数量
( f6 c! w4 G' Q6 V    'post_type' => 'site-wide-notices', // 公告文章类型/ ^4 a. W; u3 o" W' r# K
    'post_status' => 'publish', // 公告状态
2 R/ F& R- S" r0 Y8 O+ J    'order' => 'DESC' // 排序方式
: @1 ^5 v: ^/ L6 x8 x5 _);; w/ o% g0 O! P; m1 _& n2 Y
9 ?: I6 B# ]* N' M/ ~, T2 ]: b+ k
$notices = new WP_Query($args);
$ k) J6 Z* l' S3 G/ b5 J) Oif ($notices->have_posts()) :# s0 G, s/ k  \6 Z: h4 d& Y5 y
    while ($notices->have_posts()) : $notices->the_post(); ?>
# L. {3 A' P$ w5 ^# C        <div class="notice">
. U4 f9 O! }, l/ Y  F7 w            <h3><?php the_title(); ?></h3>
6 M3 A0 C( T1 i2 s8 n            <div class="notice-content"><?php the_content(); ?></div>
  i. d5 \: w5 @5 }0 B3 e  ^        </div>
2 k! Y- d- e# z% \* i& a# {' G    <?php endwhile;
. v& K9 h8 L; `1 H8 J0 s$ Delse :
- s) O$ Z4 I- n! N7 p  a    echo "暂无公告";
$ c$ [' V- M) p" L! Vendif;
) o7 [& O0 W7 \7 ?+ P; }6 Bwp_reset_query();
5 P3 a0 N' n; ?0 N/ w* G: }- \& q```# s# a4 f. F  N
1 ]) h' s* k- g
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。) B' f/ e( e- K: e0 @; l( |/ r9 t" b' u

- Z* w" J" X/ e1 |: w4 O以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?% ]4 i5 s! \. o  Y( H

, }, \% S/ Z; s. j如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
5 Z! t. ]5 k1 ?; ?; G" f. ]" }7 ^  F& o- G3 ~* J5 H& k
以下是创建自定义插件的步骤:
- V6 p- r( ]$ X4 W- z1 n- {5 A: f$ Z+ I* S% I
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
. _  T( S* K5 C% U7 X+ b( p7 c- d' e
1 k+ f# G; c  \$ W9 K   ```# d3 D1 X, j' w- g' R9 [6 u
   <?php
+ L$ l4 {3 a% R  d: c   /*  X- I* k5 ]* f- C2 I! B7 L; y
   Plugin Name: Site Wide Notices Plugin
, u. m0 g. h- d- \9 J. M   Description: Adds a new custom post type for site-wide notices.
% _- g. o6 |5 t& m+ b1 Y   Version: 1.0
$ `8 r7 H- M. W5 Z   Author: Your Name
- v/ A; {! E9 S1 C! A" A7 L0 y   Author URI: http://example.com! z, M% l; B- }4 r- @
   */
7 a( ^2 W9 `- C; e4 j  P  F; N( U- j4 g; {; c3 Q7 h) A
   // Add plugin code here...7 O7 u+ O& ^4 i" m
   ```) _' ^( v. u$ I! q, I: o. Q

% Y. i$ F' h1 \0 y% b. n   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
0 ]! P8 H0 N( F
  v, n) k; \# d+ O) N( m$ q% C0 ~2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:, k* }8 @7 y: d7 D' D% T, x
' G0 Q6 D* {& S2 N
   ```$ W3 G7 D6 `$ w4 ^# ?% R5 V
   add_action('init', 'create_custom_post_type');
0 x/ n$ G4 ~4 {. Q  h   function create_custom_post_type() {
/ E, Q! h" @: P+ Q( x4 l0 I      $labels = array(1 M+ r& ]6 t1 b  P/ A
          'name' => 'Site Wide Notices',% O$ s0 F3 R, H" F- r
          'singular_name' => 'Site Wide Notice',
% `9 z2 u. ~$ p6 H3 g# h; K0 n          'add_new' => 'Add New',% Q+ M, a9 k9 F
          'add_new_item' => 'Add New Site Wide Notice',
' b6 f0 e0 r6 c/ _: L# B2 o; o6 a          'edit_item' => 'Edit Site Wide Notice',
1 ~) O! w8 E) c8 x6 R          'new_item' => 'New Site Wide Notice',
' p' n2 a; R/ O1 C          'view_item' => 'View Site Wide Notice',5 M0 h- `1 ?" F4 Q4 I
          'search_items' => 'Search Site Wide Notices',1 |8 _0 d  [  t: V. I
          'not_found' => 'No site-wide notices found',2 P% K3 n8 G% q( E- o3 r6 `
          'not_found_in_trash' => 'No site-wide notices found in trash'
' c( Y, M- [2 U: w2 ~% h3 ?      );8 ?0 y. }1 s- \+ j, b: X6 e

3 F2 C6 w. y7 _# W3 W      $args = array(, }6 \, i: a7 H5 p3 x+ `
          'labels' => $labels,$ g( ]- }% G' E! J
          'public' => true,2 o6 o/ u7 D( W, P) G2 F
          'has_archive' => true,3 R" U) j8 S/ T
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
( U- j& K0 D5 H3 C, f          'taxonomies' => array('category', 'post_tag'),  m/ i: f0 z6 h6 L; H8 |2 {
          'menu_icon' => 'dashicons-megaphone',. {+ U$ u  R7 O' U8 s
          'menu_position' => 5,  [" t* q, i9 a& N7 K1 w
          'rewrite' => array('slug' => 'site-wide-notices')
) n+ ^# Z! f7 i  V4 ]      );
2 z' O5 _0 E& ^6 I& a* n! J7 t
      register_post_type('site-wide-notices', $args);
+ V0 v1 n2 U( h   }
4 R, A9 [9 o% T; t' \   ```
$ q$ t: W; `) w) a) C% B: n# q/ J/ p) ]$ s3 q: v! [; n4 n8 n* R
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
- d9 i) d/ H, _& J+ g2 H* f1 c1 F5 x4 L* S( A5 R4 U0 A0 G
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:6 E; _9 Z, K5 M
+ t' Q6 }  k# d& W" G
   ```. {! d# v" J+ E9 R8 M
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
  S" }% I& @1 r, t   function add_site_wide_notices_boxes() {0 r% r) E7 Z( o  @9 a  u% P8 V
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');$ `( e; z: k$ ?- {  Q" L
   }
1 B4 L# m2 P$ f( ~6 f7 T3 [8 Y
, s  @$ C4 m" v  B5 a  w; W   function notice_details_meta_box($post) {
: I. D: m  E3 K2 D+ c      wp_nonce_field(basename(__FILE__), 'notices_nonce');
$ d3 Y; z  j( M% ?" G      $notice_title = get_post_meta($post->ID, 'notice_title', true);! h8 m( U$ Y) e. |$ n8 e
      $notice_content = get_post_meta($post->ID, 'notice_content', true);( o' J4 ~) F5 ]
      ?>
5 g5 ]  J+ Q' g# i7 E      <p>
3 @1 V) e8 I) G" [- S! H$ ^          <label for="notice-title">Notice Title</label><br>
$ y5 d$ }# r+ q5 F          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
8 S* F7 N. I( i      </p>
0 |8 e% o4 r) @7 Q1 t3 y/ H      <p>8 A( g3 n0 L) d" R& H) |0 w
          <label for="notice-content">Notice Content</label><br>0 H' D+ C8 ?7 H1 u9 U- S$ U& t- C
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
% j- Z5 p- X5 c: y6 n      </p>
3 b& ?8 I9 N( C/ O  |/ u$ x- F) g      <?php8 U/ J& ~( m+ c, {. X; j1 y
   }
5 t% |8 t/ G8 n6 G. {) [# B. a0 P' j6 A& \( F* T9 B
   add_action('save_post', 'save_site_wide_notice_meta_box');
! C0 \3 B( s3 i( N- J7 j2 g3 }   function save_site_wide_notice_meta_box($post_id) {0 e4 j5 I4 y" @" m" x6 @- h
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))7 Z, M+ S7 N( Z. Y6 m0 V+ D- L
         return;
/ \1 A$ r/ x. w- ?9 x      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
4 m& k( Y6 y' d6 G; P& \         return;/ q- a7 Z0 ?3 B% J5 O4 G# a
9 f" g: M: R# O* J1 }2 m) H
      if (isset($_POST['notice_title'])) {5 f, V; s- [; H8 S- p& ^1 t
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));0 O! C. p' F; |2 A
      }
* V) U2 O; F- ~: z$ v9 [      if (isset($_POST['notice_content'])) {1 ]) c8 O+ o5 `, C) H/ S2 `; ~
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
! t9 _/ k2 v+ X$ `5 t: B& J      }' e( u; w1 c1 M' l
   }
! v9 O8 p" n* D" e9 v: u+ r   ```/ [  a. H) V1 ~3 [# e! }4 z$ B% `
% ~3 o; S: Y5 _$ K0 e- ?4 _
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
& A, {9 h& N' }: x; Q( L0 i9 b( Y. [5 G. i) o
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:2 D! C3 ^2 H2 B
7 o8 O  a2 i1 E1 F: H4 C" z
   ```/ z& r5 s) z" Z7 R8 n
   $args = array(: V- u6 l4 G2 x! `. n# y
      'post_type' => 'site-wide-notices'," J. x, w' o3 {3 T# E' ^8 E
      'posts_per_page' => 3,
: P  G9 L3 D' b) G- h/ _" W0 V      'order' => 'DESC',' ]- B+ l/ i2 n8 ?/ J' J0 w* t5 H5 j
      'orderby' => 'date'6 u' f+ h! v  O% V
   );0 A+ A/ [- i/ e. m" w, \. G) B
   $query = new WP_Query($args);! [' a9 ^$ b% B6 f- B4 b8 g
   if ($query->have_posts()) :
/ y8 g  Y9 k" J4 ]. Q5 D  }      while ($query->have_posts()) : $query->the_post(); ?># Y+ [; }: E6 E$ D
          <div class="notice">- G7 H  I, i& X( \0 ?& W
              <h3><?php the_title(); ?></h3>9 R% k* @4 o& D$ S
              <div class="notice-content"><?php the_content(); ?></div>, }: v% v/ v' C2 q8 j* P
          </div>8 E. E4 L4 A( O5 _  t- J: }3 ~1 a
      <?php endwhile;. b* r  Y% m8 x5 i$ h
      wp_reset_postdata();
1 p& e2 l! z; h& a; k6 x  q   endif;' b7 j) z' l1 p
   ```; ~6 }9 U' i/ Z
  \5 k* H. k: V
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 16:06 , Processed in 0.083285 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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