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

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

[复制链接]

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
8 K$ r, p2 ?* A1 M
) _8 M2 B4 Y/ n# ~& S1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
8 ?7 h* ~5 a9 y$ T1 p/ C: ]" l; L+ n6 Y: p
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
1 k4 `5 k8 O; `: K( f4 K  Y! k
4 H# p' X- J# m/ @1 C* B3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
0 M5 O! `7 f$ A- B) q3 O/ p  ~* j6 W' v! x
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
9 _( k4 e) h7 ~2 t! P' r  w7 \9 z6 d) |: Y! J
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?% {/ f) T; f5 }4 g
. ^- w1 g" `0 W$ k" q
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
$ ]& \3 ?4 Y$ y- f) h( p; e% k3 f. o. F) a& P1 @6 `4 a( X
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:9 I6 O+ s- }5 l
0 c: T" c8 m9 i$ `
   ```4 j5 {, n3 u% K, @
   add_menu_page(
% }$ F3 E8 J% p4 I: Y  b- H. B- ]       '全站公告',
9 x: ?: T; w+ q  i- k. U- B6 ]       '全站公告',
3 q# B* c1 f7 z6 e! Z6 b       'manage_options', //需要的用户权限
( K' A3 {6 f& g5 |       'site-wide-notice', //后台页面的 slug
" B3 ^5 T7 W" x4 `8 c       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
- N, h1 ]  n4 o$ {) q       'dashicons-megaphone', //用于显示在菜单中的图标. Q0 |% i" z( @1 k7 |( ~: d/ d
       30 //菜单项的位置+ t+ x- \) x. `# H
   );
  C8 t3 F( s  _: C4 ?& b   ```
  v/ L' T( Z3 W
! D' B3 q. |" i   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
8 c% H: s0 a0 W1 I/ A* [9 ^# ?6 O6 V' K' M; Z* o8 L0 i7 y" }
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
& w$ l* y+ f6 Y" g: I: N5 T
2 i. V$ f; }6 w9 D2 L5 C$ r3 b   ```
3 M+ _$ A9 O8 Z   function render_site_wide_notice_page() {" |4 h" L$ ~2 U
      // 渲染后台页面内容! G5 Q6 ^& w# g* K
      echo '<div class="wrap">
. Y5 E, K1 i) D0 n+ X/ W          <h2>全站公告</h2>3 y0 Y- t* M5 Z5 w
          <form method="post" action="">
) F5 A2 j- }/ ~+ V% Z) N              <label for="title">公告标题:</label>2 h1 x; S  r1 [8 e9 u1 R$ o
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>% x$ J1 j, ]' e; s# W
              <label for="content">公告内容:</label>
$ ?8 J! k1 D0 d+ s0 ]2 o8 w              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>& |9 P1 X3 ?6 ~" x
              <input type="submit" name="submit" value="保存设置">
/ N& v: `/ `. m          </form>
/ \8 P3 |  K( ?0 T1 ~" r* Z4 W      </div>';
$ c  c) ?1 M. l7 Q* E% o3 j& n$ P- x1 z+ s
      // 处理表单数据
4 `" H; |+ A, ~/ t1 U6 i      if (isset($_POST['submit'])) {
5 d5 \! `! Q) ?( X, m- W& _6 _          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));! Y; [: ^: f- S3 _8 t* o+ ~
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));7 s0 J* T# e, @$ v+ E1 M, a, f8 a
      }
& b2 m7 G. T. ~/ n9 P   }
* T% V; L. c) E1 g. u" x1 y; v4 R% q   ```
4 Z2 F2 w" X: l4 P2 G3 E  w# g+ {2 V0 I+ }
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。( O2 H3 {2 ?( S7 z  U% a) j( a% D

1 S4 u8 H2 W0 X6 U  D" o& f3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:& P3 V/ [3 p9 o% ^) w1 f6 N5 s
2 r5 m0 U: N3 s: g
   ```/ g5 M* |+ i# K, g
   <?php5 q4 ^7 |3 j1 A
   $site_wide_notice_title = get_option('site_wide_notice_title');
. C& _0 W3 Z8 i+ b% K5 g   $site_wide_notice_content = get_option('site_wide_notice_content');" Z% h  G- m! D( t3 z0 x: _' ]
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
2 p' G, K* `. r, h2 M- b: m       echo '<div class="site-wide-notice">';
/ r8 [$ d1 ]5 W7 g; `9 J/ i       if (!empty($site_wide_notice_title)) {+ b$ C& A' c2 h' X
           echo '<h3>'.$site_wide_notice_title.'</h3>';
, }( E) V9 }2 s! R* {3 \$ j       }. x# s0 b: |- O1 X9 e7 i# W
       if (!empty($site_wide_notice_content)) {
: a3 [: @  n% d& q/ t# h4 `5 O           echo '<p>'.$site_wide_notice_content.'</p>';
% j$ d( q- F  r6 o! c1 E       }
) f6 a7 y" z, H8 r9 j  l6 R       echo '</div>';: R8 A9 I* s/ q' J1 G5 k
   }4 S( o! j# |8 V# x0 ]$ f
   ?>
. A7 |2 D' \" ^& f* a   ```; m% s  G" Z7 d1 x* {) n9 n- i. R( U5 Z
: T# ?: d& R% |) `& z, [' [
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
) q8 P/ I0 n" J/ W; ?1 ?, Q
3 V1 F% j6 c  y) G5 W请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?; Z2 B" h9 k  Q1 t& j% U8 w
+ b: H  b# H: d: y0 f! N/ m6 ]1 H' b
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:4 m7 |# Y/ ^: |" S% ~

8 o+ _2 `/ @& d- G; ~  a7 L# k7 C' Y1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
. `2 C  ?' l3 B& t
: o$ f" A% e8 ?) J! ^```5 u1 U6 A0 w' ]7 j4 R6 x
function create_custom_post_type() {
1 q! e+ b$ H) Q' X8 P8 V    $args = array(
, ?* f; a1 N9 B" r) d        'labels' => array(
3 a3 D* V+ V9 D5 P0 o            'name' => '公告',, D; h/ n$ `6 t: B; {
            'singular_name' => '公告'7 R1 F+ D9 _. Z
        ),
; b# a! h7 j; N; C+ `) c1 R        'public' => true,
1 q6 }. P+ o5 N6 n! @. Y5 l+ T        'has_archive' => true,
* s6 r  D9 e6 [' r( r        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
) J  y1 j; b5 Z        'taxonomies' => array('category', 'post_tag'),
, k3 J& ^- C+ E- O# e+ ~        'menu_icon' => 'dashicons-megaphone',1 p% ^- n: x! x/ Z
        'menu_position' => 5,1 X  g# _# @2 \* K
        'rewrite' => array('slug' => 'site-wide-notices')
% h% {0 ?0 b) f( |6 b% G5 M/ L$ M4 e2 p    );
) A9 @# F( U' v$ [0 t    register_post_type('site-wide-notices', $args);
2 A. z+ a1 W: P4 g4 _: o2 f}0 P) n8 S0 L6 Q! }- w3 |: n
add_action('init', 'create_custom_post_type');' a: v! g  u' @! D+ \9 D2 v
```
1 Y+ K5 u4 Q' u2 C3 r+ G1 X7 E5 s( e0 a5 f" t% ]9 \8 B
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
& w- C; O( ~- f# Q1 M9 D+ b+ c; n3 E0 r/ u8 w9 s3 h
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。$ v3 ?- z( }& _" H% d- U# c( [! c

: r* Y- l; J0 i3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
  Q# f$ h) N& G, O: P5 f
$ t3 S/ |7 ^7 ^8 ~) w. q  ^```
* Q' O' L; P  ~0 u! x$args = array(/ |& `9 r, f6 s. Q" ]& r0 B( Z  U
    'posts_per_page' => 3, // 显示的公告数量
1 |6 [6 y& Y5 k5 q7 K7 z    'post_type' => 'site-wide-notices', // 公告文章类型) ]- p6 r# }) B) V# B1 \
    'post_status' => 'publish', // 公告状态- @5 g. T; Y' R0 V1 \. S+ {
    'order' => 'DESC' // 排序方式
7 R. j$ m1 E: l: M% Q);) t; |# D0 h& y. ^4 o; R9 D: _
. N! E1 g: Z3 g2 h
$notices = new WP_Query($args);3 n( z- o* F( W
if ($notices->have_posts()) :( g8 G& V" @1 O2 |# e- I
    while ($notices->have_posts()) : $notices->the_post(); ?>4 }8 W  C4 v' Y3 D7 t  Y
        <div class="notice">
6 R, @! ?6 J1 Q, @7 z  f            <h3><?php the_title(); ?></h3>, v, v9 O  [- `* L" D
            <div class="notice-content"><?php the_content(); ?></div>
0 O9 P; J5 `7 Z: g- R6 u9 n        </div>  v7 X: V) ]! M% u; `0 Q) q1 {
    <?php endwhile;2 D' t2 u; g* s' c' v
else :4 A: x& f* U8 U0 e+ K1 _
    echo "暂无公告";! L5 p/ ~- e2 f( G7 d
endif;% x; K9 k4 B! ]. D( f
wp_reset_query();: c- {$ s1 ^" W; m. K
```
# U4 E9 @7 ]2 U( A) u+ D
( t7 K: a! l: m9 U* u$ q# D  K这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。$ D* g# ]+ ]- ]. m: v- O8 X
1 X0 T- e7 m3 u. e, L" B
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
! U! C' T) q6 g7 _( K. Y9 s' j3 n3 u* f& D
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。" U+ m; M" w5 F) k' R( S

" ^# F4 h) B4 X4 s, R. u以下是创建自定义插件的步骤:. i/ H$ j6 Z% p8 l/ O2 N2 f

" |+ r8 O! m# _# M5 n, p1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:( `2 w. c0 N+ a3 T# e  c; `

5 F- d+ N8 P/ f, u7 }3 U/ T5 Z   ```& [7 K8 \5 E6 X! I2 G' \
   <?php
# o# H7 a- s5 q  t( Q3 l$ Z- w   /*
9 \/ W& e; q8 X% m; T- N, ?   Plugin Name: Site Wide Notices Plugin( j3 D' D: C& E2 o# |: ^2 d
   Description: Adds a new custom post type for site-wide notices.
! q$ m" `, ?4 E) W5 |   Version: 1.0
! r! Z: ]  y: @+ `" d( C   Author: Your Name
' _4 V4 j4 ]% C# `$ Q' c   Author URI: http://example.com7 O0 @' }* S5 p8 G
   */
& p* E0 O1 i- T) V! W, i. f4 x  X! |' r( ?( T5 ]
   // Add plugin code here...  ]% B) j, r- z0 Q+ f* R& ]
   ```
1 m% A3 ^5 y- w& \7 J# t  V+ b
- N  S2 ^- j; @' b   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
; f$ b: ], a. ~0 ]. @% R6 R6 \1 x( m' J; f. [' U
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
0 [1 A: j" p- M8 x& E5 W# b9 I1 m6 F" i; Y6 `1 h1 g5 c
   ```
' |( I8 T( ~! c2 d+ b   add_action('init', 'create_custom_post_type');# p  _7 [2 n- O# F2 y$ r
   function create_custom_post_type() {
% y5 O8 L( V- a4 T6 O      $labels = array(  X. ~7 `0 h$ x: R
          'name' => 'Site Wide Notices',
4 k# Z1 q9 P8 E+ D          'singular_name' => 'Site Wide Notice',  T5 r. ^/ x9 U5 b& F+ s# O! J
          'add_new' => 'Add New',6 }8 Q5 B+ D1 U9 e7 i, J; P/ ~
          'add_new_item' => 'Add New Site Wide Notice',
, L" f. @9 k9 d" K4 k          'edit_item' => 'Edit Site Wide Notice',
+ i& k) c+ _  X) I% F1 C9 E          'new_item' => 'New Site Wide Notice',' N5 _6 m' M0 v0 j- h
          'view_item' => 'View Site Wide Notice',
: j; |% m  {6 g- b% ]; O          'search_items' => 'Search Site Wide Notices',8 G2 {- Z- {! e+ a. A
          'not_found' => 'No site-wide notices found',' L0 |: J, m* B+ r, k
          'not_found_in_trash' => 'No site-wide notices found in trash'- I3 x$ Y) ^$ T6 }' t6 k: m' Q$ g+ j
      );& n3 D9 D  n9 H2 p3 z( R0 y5 W
% i9 A& K) q$ H% c& x5 W. \
      $args = array(4 h; Y) b3 t( H% O7 E2 l$ }
          'labels' => $labels,
% ?$ t. p' i8 k( c) Y8 @          'public' => true,4 x1 L( r2 K0 f/ F) g* g# o  Q
          'has_archive' => true,
6 k3 |( u4 a3 \" F" N0 B          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
2 a8 h) ^9 J1 t$ |# L/ j          'taxonomies' => array('category', 'post_tag'),7 `9 {4 {, c4 m; [5 V9 o( t2 s# [
          'menu_icon' => 'dashicons-megaphone',3 c' m6 v5 o. o$ c( Y
          'menu_position' => 5,
- z) _# _* M# `5 d! r3 _          'rewrite' => array('slug' => 'site-wide-notices')
0 ?! [" Z% W" x) c. Q      );
) y7 }4 \' s0 u; s. @/ z$ s$ ]2 @- U3 z4 o- T
      register_post_type('site-wide-notices', $args);5 M) g4 ]3 h- ~5 I# R3 Z2 ]$ J
   }
: V2 n; l- E$ b: M$ T# ^   ```
% v9 g( n+ ]" h# p) l; s: Z) v$ g) O: Q! A, \4 h
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。. L  Q) C  `/ n, O5 H0 B4 L

* M3 M% B) R5 X* V6 @" N. C3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
9 O. A: z9 S* W6 t. |. q* u( i" r
! s7 p( x2 g3 v) {; u# v. n- Z/ S   ```
3 V- r& r+ g, L6 d6 x& E( V   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');6 z5 t- [" C0 X/ f5 `# H
   function add_site_wide_notices_boxes() {9 L2 w' g! O, s7 G
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
% |# h& B* U( e) a' O  W4 _   }
9 y1 w" Y: [. l$ v7 \$ G9 \5 q8 }6 ~" Y5 N7 L
   function notice_details_meta_box($post) {
+ W, \; h8 }# V5 M- V& c      wp_nonce_field(basename(__FILE__), 'notices_nonce');
& x1 j: _( e. o9 X      $notice_title = get_post_meta($post->ID, 'notice_title', true);
* W- \* F  l( ]3 V      $notice_content = get_post_meta($post->ID, 'notice_content', true);* o, S6 h9 a1 \. e2 H+ ]
      ?># s4 ^/ O) p7 @! ~5 \3 q
      <p>
  h& |2 J" m6 l- N          <label for="notice-title">Notice Title</label><br>6 ]) G( G7 M; |# i) C0 @- C$ x7 Q
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
0 Z: k/ F2 x5 T- G* x) `4 u      </p>
) a& ~0 |1 Z6 U2 D' {7 n, {3 x  P      <p>/ _+ M/ J3 n! Q( z
          <label for="notice-content">Notice Content</label><br>
0 E* n( D6 T! H% o) W' x          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
; J4 K  a# G# M7 V2 L" X      </p>
; R3 e5 M. [; i" v; m      <?php) E: J; W4 p4 R" ^1 `: G. n4 r4 ]0 n
   }
. P  `- {) h( B0 u5 O- T
* t4 ^3 p. S+ a, C/ c- M' k   add_action('save_post', 'save_site_wide_notice_meta_box');
# Q, {4 _5 D4 G# w   function save_site_wide_notice_meta_box($post_id) {
: H* \0 D& E! [" h      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
! [9 Z% T& ?/ O5 M* H2 p5 v         return;7 m3 o5 L5 r& [7 P7 a7 r% h5 D
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
5 J9 h' Y/ t: E6 X0 U         return;
8 B9 P) c# p: E% `  d% w/ T& c& s; S) s8 C; C4 Q
      if (isset($_POST['notice_title'])) {) N- c9 j/ V( }+ W  b" G7 o4 F
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));# o! Z  Z2 `% ?2 o) |, B- A, _. n
      }
5 d4 y0 A) }) C7 D3 u7 A7 Y5 v7 d      if (isset($_POST['notice_content'])) {
( z5 a! [! w; m3 O5 r9 M          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));7 ]/ g; K" o* y" C# I: I6 C
      }
3 Q. E1 T, i, n% X% ~4 @   }
( f( E( Z4 R" \5 g* K6 S" h   ```# R2 m) @$ S7 L5 J* n. N7 {+ d
) W% s0 a9 }+ T: ^- K" f- Q4 X
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
# d8 ?& J9 W" h1 z4 ]0 I# g+ v7 ]; S; b; d! q9 u
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
6 {( S2 c" ?6 q, W3 @& m9 W& P# Y. T
$ \% Z5 A( k: t: q1 x8 G0 m   ```
% c4 M5 n; @- {. M1 B$ b   $args = array(( }9 u! t1 [/ }
      'post_type' => 'site-wide-notices',2 W! }' |; X4 H  R, N
      'posts_per_page' => 3,
0 P5 V0 C6 u. ~  I      'order' => 'DESC',
6 t8 e$ f% \* f9 h1 O& r' Z3 b! g      'orderby' => 'date'( x% {( `" v, _% p8 P
   );9 m6 i7 X' z$ Z
   $query = new WP_Query($args);
6 ?* [) d4 g' ~0 [: \   if ($query->have_posts()) :
" a1 G  t$ X( l! P: E/ y, m# F+ e9 N      while ($query->have_posts()) : $query->the_post(); ?>7 l# S: ^3 S( N
          <div class="notice">
/ w5 ?# P$ }4 {! a) H# `              <h3><?php the_title(); ?></h3>
: p" x0 }+ u, U* x$ J              <div class="notice-content"><?php the_content(); ?></div>
& |8 @1 p9 ^, T, C5 S+ S5 l          </div>
* V) `& }# M& n  s1 Z6 i) K      <?php endwhile;
' @8 K+ H) H0 F7 P+ p* n% f      wp_reset_postdata();# f2 a" {0 e7 N! ^& g
   endif;
) _  m- C3 m" w0 Z) ~   ```7 t1 i/ ?$ a/ |  m4 K7 ]

  W: H: [0 O* V# a% I; h) D   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-19 20:56 , Processed in 0.023808 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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