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

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

[复制链接]

342

主题

546

回帖

3598

积分

管理员

积分
3598
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:9 r! I- i3 X( R+ I' q. l5 ]9 m* Z; ~
3 f7 g8 i' j) ?) H9 L' S
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。5 ?  d7 i: p* Q+ X% t! E6 U; J
8 m  Y6 {2 N/ v, j! R2 A5 a
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
1 n' P* }0 i- l9 F4 M
6 A8 w6 i, f+ ?7 i0 t% ?# k3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
: X6 d7 T! c& x5 Z" C* a, ?2 W) a3 ^& N! k
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
6 t4 f, Z& d. p
$ {1 U5 \8 b7 q注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

342

主题

546

回帖

3598

积分

管理员

积分
3598
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
& g1 T0 v3 q8 `( U9 S
, v  z( u/ S4 Q, X0 F( [0 b! P5 z如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:/ ]+ X& t) [; l3 n& ?% E2 ^$ l

# }; l. o5 G- D. R; ?1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
) U  M3 S2 j3 Y$ B' u" W4 A( Y2 d/ x( u1 q8 o+ [# M# y& F
   ```
1 \8 j: ]  @/ f- ]   add_menu_page(
/ B  v' x" Y4 l# B       '全站公告',5 `' k# ^# G  X
       '全站公告',7 g2 C# D& J, A' A3 b7 j% E! o
       'manage_options', //需要的用户权限
' a0 l, ~0 ?6 h5 g$ ]' L% I) M       'site-wide-notice', //后台页面的 slug
  v- _, A: L. o+ r- O7 I/ K" \1 H9 ]       'render_site_wide_notice_page', //用于渲染后台页面内容的函数, `, i5 g5 h& x! e3 U
       'dashicons-megaphone', //用于显示在菜单中的图标
7 ]1 T4 H" ]% R! s) U# @& Q       30 //菜单项的位置( W; C& r/ J2 E0 o6 k. R
   );: C3 E  O" T. x6 @
   ```1 R* n3 V4 v; K9 ~- [; o5 \& W
( \0 _# o: w4 @& v* g
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
4 F% Q  v1 o; U% [5 Y0 t1 {; ~( z) H& p/ ]( D7 r- ?
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:5 n7 E+ t! b8 d) S* i# Q  m* G! D
; v4 i( u) G; o6 e, X9 f
   ```3 |% V7 \9 {! V' T2 V3 S4 ]
   function render_site_wide_notice_page() {
0 B( k2 c- B* V% ~' r, V" k# C      // 渲染后台页面内容& L/ ~; ]$ e, Y9 p5 m" m) D
      echo '<div class="wrap"># _7 H1 o$ m% m. m
          <h2>全站公告</h2>$ u2 U9 y9 ?# m
          <form method="post" action="">
6 |8 n' E  ]' j6 x3 f6 y' q              <label for="title">公告标题:</label>
. }5 p3 n0 H( K6 F# ?4 l. I6 {! R              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>; Z/ p9 r$ n% o+ H- l
              <label for="content">公告内容:</label>
* }1 z4 r2 m( H; a              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>5 a1 R# ~+ M) N6 n. o8 p
              <input type="submit" name="submit" value="保存设置">, s7 k, M/ V, a5 r: ^3 ]
          </form>$ ^! K8 E9 H1 ^6 _
      </div>';" D4 k  Y$ q8 c& [
+ S( e0 `, W9 z5 q% W2 k) w- w! K! B& C
      // 处理表单数据
0 q# C# i& ?- u! R! z5 K      if (isset($_POST['submit'])) {
$ N4 X! y3 M9 \          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));" [0 m3 _2 m( x/ \! w5 D% a- _4 k
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));7 ^) R; D, K$ H5 D1 j& }
      }4 Z- K& {+ p1 o, ^( B- l
   }: C5 u" l: e. P8 w+ {0 p$ w, k
   ```) V4 o3 Y2 B% Z
. i# l' r, A/ _( I% V. e
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
4 U9 x! W9 g# z) L& s! v- U. [/ Z% p" x) T' Z* s
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
$ o! x1 \9 j+ T  U0 C+ r/ B9 x; v2 g7 H5 @: S7 C8 T' ^
   ```
& t3 P' M! Z8 V6 Y: v   <?php7 y1 m' R" ?4 S# k1 m  M7 v
   $site_wide_notice_title = get_option('site_wide_notice_title');
$ {# F4 v. }* h( |$ m  I   $site_wide_notice_content = get_option('site_wide_notice_content');2 k3 N. D4 i2 x3 I( x" K
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
' x: {5 n9 D; l# |. w       echo '<div class="site-wide-notice">';
, k  A) x+ l) l, y- e% @       if (!empty($site_wide_notice_title)) {% L4 G5 c( ?# |. m- T
           echo '<h3>'.$site_wide_notice_title.'</h3>';
2 p7 ~2 Z# J* m5 Z       }
( o5 T& f% i' @# A       if (!empty($site_wide_notice_content)) {; r$ G* x) X; L
           echo '<p>'.$site_wide_notice_content.'</p>';- T, J8 U2 L- E, _
       }' s0 }) L3 u- s/ Q* Z3 p2 [
       echo '</div>';7 ?) A2 O& q! a. T2 j
   }
" ^# `0 k9 d8 t* w) w" y   ?>% M+ B( l6 p5 }8 H) `% d8 O8 c* R* Z
   ```
/ [: C/ @7 C' I/ ?6 q" X. w; ?* v9 f0 l" U5 H
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。+ `# J. g9 e2 d
1 k. P1 E0 ?$ q; {5 j* y  k- ?
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

342

主题

546

回帖

3598

积分

管理员

积分
3598
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
# H: g2 q; P# l0 {6 h* x$ L0 A  f7 d
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:0 ~2 ^6 e8 i; G* I; u8 Y3 q! X

; E+ o& }. h  y; Z- T7 E& o9 ?5 L% d1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
7 F; m2 Q) D0 {0 k5 [) `9 C; }/ Z' {4 e0 j% L/ K0 R
```
8 }0 J2 P# a1 F% R( g1 `% M) Tfunction create_custom_post_type() {3 R  b6 l. P- X7 O) `' o; D
    $args = array() C0 l$ j7 Y$ U7 E; b
        'labels' => array(
, U: n, X/ [: p& Z% d$ B            'name' => '公告',
% ?1 v* S  f3 j  z2 t            'singular_name' => '公告'
; x$ K8 I4 O6 H! J        ),
! L2 E' a' \8 I- I' I: ]" H        'public' => true,( y2 H$ b5 A8 m6 v
        'has_archive' => true,1 j- e8 V5 V/ `- Z1 D/ v' m
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
$ u7 N4 c/ n- p7 G! c. g7 o        'taxonomies' => array('category', 'post_tag'),
; e9 P/ e6 {, _' Q: `0 a# z        'menu_icon' => 'dashicons-megaphone',
' J$ x0 Z/ u5 ?3 N        'menu_position' => 5,3 m. ^4 a1 {( v. r5 p* }5 L
        'rewrite' => array('slug' => 'site-wide-notices')/ N* w5 V4 I# i; Q
    );
1 S- f; ?8 z; E. M! p! ^1 A    register_post_type('site-wide-notices', $args);' a% [( }6 V+ E0 q; Z* \. ^
}
: g8 b+ S' `/ R4 t. h9 \4 Xadd_action('init', 'create_custom_post_type');' m1 _" I5 q, }# }' x
```% J+ I/ ?6 [+ q6 x

5 Y+ w* Y1 w2 F: w& p在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
+ G: _; w1 d. T! G
, t% _2 V" K. b( i2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。9 T! h, ^% L+ Z0 C" V2 z
; @3 z5 k6 H# ?) ]+ E. N) S
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:, Y. q) p8 j9 X6 P: b- `! ~
; W& v8 L' c- A) d
```
1 y: \6 I0 A, B$args = array(
7 E$ R9 Y9 K- Q! t( {1 Z8 p5 k    'posts_per_page' => 3, // 显示的公告数量
. F/ T- _4 Q9 Q5 D. k9 [% x    'post_type' => 'site-wide-notices', // 公告文章类型
& [6 s3 C: E1 L& s2 _! w    'post_status' => 'publish', // 公告状态
5 |5 D1 J$ b$ r& c  W    'order' => 'DESC' // 排序方式
6 I. }# V" V' e' q. T2 K);
7 h6 F: L1 s! ?8 m
) l4 d3 D% j9 k, A6 C$notices = new WP_Query($args);
/ R/ m5 q# b4 u8 Yif ($notices->have_posts()) :
0 Z; T0 m& M" y; s# N" h    while ($notices->have_posts()) : $notices->the_post(); ?>
( I7 {: G! c- K) Q, Y- ?) \        <div class="notice">9 Z# E6 ~8 L! ~# ?+ {
            <h3><?php the_title(); ?></h3>
8 w7 w4 H1 E3 Q& u1 C' s+ F            <div class="notice-content"><?php the_content(); ?></div>
" [, W; u& r& A6 z, j        </div>6 S7 Y0 v- {" W( e2 x* v
    <?php endwhile;
* b8 W6 {6 A9 U5 selse :! ?/ N* e1 N7 O) J/ P
    echo "暂无公告";
$ E. e$ k6 T* `4 P0 P/ Q$ s% Hendif;: [5 z4 K/ X0 Y. H6 H3 n9 q6 {
wp_reset_query();
2 T$ I/ Y  o! l/ h3 X7 z```
4 C, H5 `) `  d  p9 k9 q! q* z) `/ x1 ?
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。: {4 F  o) t( U
- E+ ]9 R0 g! }5 H5 D+ u- s
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

342

主题

546

回帖

3598

积分

管理员

积分
3598
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
% Q2 Q4 Y: i/ U: ]: t2 S) a+ D! p/ I8 v$ u. j6 V/ P: h
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。9 [) D: U! L1 o/ a  v) M7 w0 @$ d5 X
3 C7 c' ~6 s8 ]- g) j
以下是创建自定义插件的步骤:& z  p$ y% ^* f' O& H5 o: l
- n2 D8 c$ Y/ b; V0 g3 q; y
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
- r* z# d/ ~* V5 y3 K' T2 k  I# q, N/ P
$ J) @8 F3 y6 }' i% g1 V   ```' C; [5 Z* H7 R$ j  B
   <?php5 a6 j/ L# R6 H3 p) a! p2 Y
   /*
; D& L! B) ]5 [& A   Plugin Name: Site Wide Notices Plugin
4 c5 z& u- }$ o$ c, v   Description: Adds a new custom post type for site-wide notices.
# b$ J1 E6 D7 q  D, q* a) B   Version: 1.0
" R9 q% U- N- y7 G3 a   Author: Your Name6 G! q- H$ a9 s2 L9 S$ R
   Author URI: http://example.com
' ]% q2 e0 B$ m( M0 R  i) Q0 A- C   */" ^8 {0 l9 w. i% @6 A

! {' O& w$ G7 P& g# k' w   // Add plugin code here...
: U$ E" N$ z0 a0 Q4 b# u   ```4 ]3 k- h& A5 _. q
+ B2 P) \( \* C. g2 s3 t
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
) V3 ?+ S! }+ A! p1 X: O6 ]
( n% y; E9 Z# [  O2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:. B9 [( i+ z  P$ u. w
  @7 b. y; O" ?5 O
   ```3 h" Q# ?) u, S
   add_action('init', 'create_custom_post_type');, j! E0 Q* E7 H% s
   function create_custom_post_type() {
, ^/ x, P' ?) A2 H  j      $labels = array(
$ D7 L8 W, X: q( I) X; {          'name' => 'Site Wide Notices',6 h, w8 G" U9 K4 l+ }1 P$ P  u
          'singular_name' => 'Site Wide Notice',: Z2 {  T. ^; |# C, w7 |
          'add_new' => 'Add New',
3 k# W2 e7 Q1 K' t4 D          'add_new_item' => 'Add New Site Wide Notice',3 U0 f4 q/ s# l+ y7 d9 R
          'edit_item' => 'Edit Site Wide Notice',* U( R  N; d% I! [5 [, e! s
          'new_item' => 'New Site Wide Notice',
! x8 c5 x4 ^7 ?) J7 k. ?, K8 x          'view_item' => 'View Site Wide Notice',# r3 @" P' ~7 W9 D8 t9 O9 n  G
          'search_items' => 'Search Site Wide Notices',
& l. {5 w) P2 Q% b2 H          'not_found' => 'No site-wide notices found',/ c: u* ?. A5 I; p
          'not_found_in_trash' => 'No site-wide notices found in trash'. Y" R6 z  U+ G6 o/ ]9 a9 {6 ~! o6 A
      );/ F* F9 |+ k: F5 d1 p

- J3 G- |8 p$ ]5 r$ F      $args = array(, D  D# x( l" R) r* H1 ]
          'labels' => $labels,
$ J7 ^  i2 U/ ?4 `          'public' => true,
$ `8 U+ K" k+ I+ [          'has_archive' => true,
5 |+ r' A$ B. a% e9 C! r          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
4 y' `( [! o* X$ V8 Y! G; F          'taxonomies' => array('category', 'post_tag'),, t5 K3 f8 e( L9 m6 e1 x0 `$ m
          'menu_icon' => 'dashicons-megaphone',
) H! `7 R3 [# t, V. |- J# Q          'menu_position' => 5,
. I% B0 f: N0 W0 a" X) N% r          'rewrite' => array('slug' => 'site-wide-notices')
' O# w3 D, k+ j- K" H      );! C5 Y, c; \6 {; p& f! Q

# T9 l( D# n% \2 ^* d8 ^      register_post_type('site-wide-notices', $args);
0 x  ?) g2 I+ Q6 N8 g1 B   }5 k- i# x2 P' r* W. P4 v; a
   ```
. s1 O/ ~: o+ Z7 Q8 N  _  h" b$ R8 X9 \, s+ D$ K
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
- |0 q- `/ S' y5 A$ `9 S9 l: `- k1 I7 x2 u2 @! v
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:% g2 t4 t) x9 F% Y
; F( M* C/ |6 i& y/ y) k* p  c
   ```
/ Z/ R7 C* f0 v: o' x+ K   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');6 H* N  n: g* ?2 F
   function add_site_wide_notices_boxes() {5 w# \9 r1 G; a4 U- e. h
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');9 q5 ^, x+ D2 v  E
   }
* Q; R. Z4 y2 K# g
; h" s8 C, V" i$ v   function notice_details_meta_box($post) {
$ o- G$ K& q6 Z+ ]      wp_nonce_field(basename(__FILE__), 'notices_nonce');8 o! U$ A) M8 r3 B+ S
      $notice_title = get_post_meta($post->ID, 'notice_title', true);7 a/ y. \0 x/ ^9 t. A
      $notice_content = get_post_meta($post->ID, 'notice_content', true);5 A: L, ?! o: C( a4 w
      ?>
# x' D& `2 c3 X$ a+ M8 X! \      <p>9 }+ i9 ^6 w) b. D3 t
          <label for="notice-title">Notice Title</label><br>; }$ Y6 o% i0 h/ `2 C* p( S
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">: |$ g+ Y+ h$ a: g9 W: x
      </p># |$ x) n7 n; p
      <p>
0 ?6 C- y" o& L' s+ k8 {          <label for="notice-content">Notice Content</label><br>
3 s. `& Q9 |' _, O          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
: `$ K+ y) f2 k, ~6 V% i      </p>! k: V7 _: w% _. c
      <?php
0 F8 F( R* l; _2 ]   }; ?# Y0 I3 \- y- d& e0 b
' k- f" M/ n2 {5 \  F$ y. _
   add_action('save_post', 'save_site_wide_notice_meta_box');) _  B0 c# N8 D# r4 c4 l5 b1 Z8 _- T
   function save_site_wide_notice_meta_box($post_id) {. C0 G- f" d5 t) m0 T, ?- u! {
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))8 ]3 m' y7 O/ f/ Q* `# D* {
         return;
4 i  K# h8 z! Y      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)+ _' W+ J- o. u3 h" D: [& X
         return;
5 C, X( S( a: x! L3 D3 k2 M) t7 g3 q1 R
      if (isset($_POST['notice_title'])) {7 _' p- n0 o8 f7 H- \5 `1 v
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));) q* O9 v6 B* d4 S
      }
* Q% ~' X1 A+ e+ u. r0 @( }; o7 O      if (isset($_POST['notice_content'])) {
% ~( j% D5 L/ ]- r          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
4 b) u" S# Q; q2 k/ y      }9 ^& t& B1 g" Z! I
   }
' V7 J2 K3 e! q! A1 z; B- @) `   ```2 t+ z/ G8 d7 Y0 j  p
/ G, k6 @- R7 x: c( Q" w5 T+ b
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
2 M! q/ |' M& D9 M. y# n) h" l
& p) ^! S8 g- h: N3 N4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
; j6 n. V0 w# P$ \8 N3 I+ ]
3 L, @5 D5 v' j  O; ^, H. L; M: l   ```
  U  L( ^* S/ L   $args = array(& Q) K' W$ ^0 G( }9 i+ F+ `" J
      'post_type' => 'site-wide-notices',( q9 ~5 |- Y) i: t5 r8 O, Z
      'posts_per_page' => 3,' ?4 S, X$ j( r& l6 j, e) l
      'order' => 'DESC',
/ A/ t% v6 O: J1 [4 |! c; P5 y* u. C      'orderby' => 'date'6 ^- B4 A; M3 h( F2 j% Y9 @* ~" z
   );4 f" J8 s$ ]$ K' g
   $query = new WP_Query($args);
+ I4 D5 [& W* ~  q0 ]  M& X* h. f   if ($query->have_posts()) :8 j- ?, B2 Y$ o! W
      while ($query->have_posts()) : $query->the_post(); ?>
3 \, o8 N+ F$ \/ o( L2 o          <div class="notice">
6 R6 ^, x  Z. c7 p" u" G/ B              <h3><?php the_title(); ?></h3>
. {. G5 X: }+ C! U              <div class="notice-content"><?php the_content(); ?></div>
4 I: e/ N) M3 K! n1 m          </div>
, N( U8 a% X2 C% d9 |" d, h      <?php endwhile;8 y7 x9 b. l5 o! S; t8 S
      wp_reset_postdata();
' ~0 I+ Q7 V( R/ v" b) `4 i   endif;) A! O' |( M, n  b" L
   ```
' @' T: v& g7 X( r
9 f3 i' e# m  J* j  ]   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-28 18:26 , Processed in 0.014094 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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