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

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

[复制链接]

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:$ y( }  V0 d& N0 A/ W
9 e; m8 p  R, p' h5 [  B1 T
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。- D; Y% [4 b  H+ O5 b1 }; U& x) |5 e
; P' O& i! L; E/ }
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。+ d) Q4 f0 c) j! Q* R' g$ u" h

) `4 q7 {" n/ X# ~3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。5 p$ g& f. W- y) w5 O& A: B
) g2 c( B+ Q; a7 {$ u8 \
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。( w. ]+ {4 U% j+ }2 w" r4 ]

% x! X2 _+ `( x. f$ t  [注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
( [" K& p$ [& P; S/ ~
" z( L9 N0 s3 T8 {; I4 b& I  v如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
5 T$ T5 l1 G. d6 O. V, ?4 h
# P9 i( w9 O, {1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:1 F' \& P+ Y( D" K% l

7 `4 K  p5 J! [   ```1 b2 o2 u% ^- K" u
   add_menu_page(
3 q' {8 L! h  l/ V8 o5 R; \. r# j# g       '全站公告',5 g$ {+ N) n6 v1 u
       '全站公告',4 {$ J1 F+ ]1 c! T3 B  `
       'manage_options', //需要的用户权限1 o1 V+ O) s& J! s6 M$ A
       'site-wide-notice', //后台页面的 slug. o( d" v/ D1 M; E. B! k4 P5 z
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
) L* V# g2 j# [( I6 I       'dashicons-megaphone', //用于显示在菜单中的图标. v! B5 v2 d( Z+ U3 N
       30 //菜单项的位置
- O5 w' z) M8 p0 |3 [* Q' D: _- S2 z   );
0 S( b9 e- `$ m2 t5 h  h   ```% C7 D2 S6 @" T! g

+ \! J+ \- T) @2 w# h   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
4 [% X' r6 ~' L' @7 u/ E" {* Z$ A* e" v& n/ b# H5 Z5 l5 w
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:( ], A; X) S* P

/ t" m. n. T7 v- @2 |) v% q9 X5 I8 \   ```
4 v3 @- Y, t, p& O" a' v; E" M/ Q   function render_site_wide_notice_page() {
& j; m  B+ {. l$ ?& k0 |      // 渲染后台页面内容6 Z6 l1 Q+ a' M) [2 w
      echo '<div class="wrap">5 j) Q+ r. n+ Z$ ~. T! ?% f. m6 [: R
          <h2>全站公告</h2>
; ?8 x( x3 h1 A) E, M          <form method="post" action="">, O) g. q- k% ]6 F: G9 D
              <label for="title">公告标题:</label>
& v9 W8 l( R% m7 f1 p, c; d              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>& U( g  Q% ?' U5 w
              <label for="content">公告内容:</label>
  B5 c2 Z, ~  }% F2 ~              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
5 \6 Z4 A3 q8 G              <input type="submit" name="submit" value="保存设置">
8 q+ A$ s' J5 D( `/ e4 O0 c          </form>
8 ~* O8 k# o/ T! X      </div>';% u' x8 F& B3 M$ L9 \3 l! _9 T* P

! V# N0 B0 d1 e7 Z) B3 N1 T' D& i      // 处理表单数据- j; L6 T& n9 h5 Q9 E
      if (isset($_POST['submit'])) {5 |# ~: H% i4 g! d; {& R1 G
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));' g" F8 B9 D6 t: ?5 ?1 X  o
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
. w4 L0 V( v8 w, x% [      }4 ~1 j- A6 \) B3 B: ~) h
   }& K. n5 C' B- |
   ```1 m9 z1 a; |* c8 L7 N9 `" B
7 h( g8 l' ?1 G+ C
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。1 X3 o; O* d- }4 z- ]) n0 R
+ @5 h: B' v" G; k; K
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
% G  F) ?: P- i" ~( x2 G9 T! {
: ]3 X  K7 a' J. Z  z   ```
2 b, b; ^+ y( n0 P6 a5 u   <?php) |" p* ]9 E; j& V+ l0 m5 i7 I* O
   $site_wide_notice_title = get_option('site_wide_notice_title');" H. r- r8 p. {7 \* P- r6 l$ F3 X" V8 T
   $site_wide_notice_content = get_option('site_wide_notice_content');
6 D3 I1 I- L8 o/ x8 x- E1 t   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
0 x0 m0 ~1 _: l5 m       echo '<div class="site-wide-notice">';
  T6 E/ W: V9 g+ Y" ?& C       if (!empty($site_wide_notice_title)) {( Q" W. L3 |/ E; S5 |# a" @# ?
           echo '<h3>'.$site_wide_notice_title.'</h3>';
" {5 o& j7 F+ a1 u" |5 t       }
* a. i0 M5 T0 @- D! w8 z* c       if (!empty($site_wide_notice_content)) {/ _) c5 L; U) C& }
           echo '<p>'.$site_wide_notice_content.'</p>';  U& |/ T  j/ S: H" G
       }- y8 b# r6 D* C2 u
       echo '</div>';! B; g2 w% c3 L( g4 P
   }3 M! i3 @8 R4 V
   ?>
2 I: C; @- B- M7 t% ]   ```* k; B. c2 f1 @3 }; i
9 K/ N% X- j1 E! G% f. V5 W
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
$ v& x8 \- N, g4 M, h; ]
  n* b) M, g% {6 m9 f9 S9 B请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?/ x* V0 e7 x( e/ |5 P: m; Z0 [0 Y
  E9 X6 x& x% F! h& N3 G
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
+ P! }5 U6 u! r5 A( E5 E& T
2 B* x0 t7 V6 l' ?1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
5 M% v( c" T9 @2 m
3 @5 ^: q3 d2 o9 W```! N/ o& J/ L! p% F- z* \2 n
function create_custom_post_type() {4 h% I/ u. S8 D5 p; A* R! K$ w
    $args = array(
4 z+ p/ K4 c( ~; p$ R  X        'labels' => array(
& U- s. S1 I5 N' \" _1 |& o            'name' => '公告',2 ]6 E" m8 M+ [+ m' w% W  @6 O+ D
            'singular_name' => '公告'
$ e) f# ~5 [$ Y# t9 G. I( X( e: G        ),+ W. _: e* @* x3 R
        'public' => true,) W8 U# Z3 D0 @/ p0 A
        'has_archive' => true,/ @- M2 a# A+ I
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),3 |8 Y( K: c) {
        'taxonomies' => array('category', 'post_tag'),
3 _- a  U8 r  W' b' R        'menu_icon' => 'dashicons-megaphone',, a1 M3 d7 H6 T: ]% S
        'menu_position' => 5,. G/ E7 d& J4 j# `: C6 Y9 b
        'rewrite' => array('slug' => 'site-wide-notices')
8 t1 [' T' x/ q    );
" K* Y7 R& V" b4 F  y    register_post_type('site-wide-notices', $args);4 k' Z1 b0 K$ n8 h' k5 X( _+ ~
}; r; m$ I/ z5 i4 w7 S( q
add_action('init', 'create_custom_post_type');
2 [4 h" t, q* r3 A```
) X3 }4 S/ j* q4 H! [
/ w+ k3 t8 [2 w# {+ X- L9 L' I在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
7 Y( f- F' C' U7 ]: z  A8 d5 ?2 ?1 Q
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
4 n9 q  D2 r. T2 ?" \" Z8 ?3 \
- K+ J/ n7 G# u, Z8 \. R' d% \3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
4 x# I; c/ P3 O9 S; O3 i/ e3 k( E* T- V" z; \; Q9 e* q
```( F& E* k' @* R6 i$ @
$args = array(
" u" O6 z; p. x4 \. d5 s- g  l    'posts_per_page' => 3, // 显示的公告数量
* i" v) R. f! A6 @, i    'post_type' => 'site-wide-notices', // 公告文章类型3 D! Q( P% W* c2 S2 B( Z! @
    'post_status' => 'publish', // 公告状态. `: Y% k$ M8 S+ S
    'order' => 'DESC' // 排序方式! t8 H0 Z% |: Q( B# S! B
);' k- e0 @' m. v) `. s

1 d$ Q0 c. L% ^. ]) Z$notices = new WP_Query($args);/ L8 j9 N0 i0 Y' P& [- f
if ($notices->have_posts()) :3 Z3 L9 F9 i2 Y3 }/ Z) L" X
    while ($notices->have_posts()) : $notices->the_post(); ?>" a0 R, }/ C5 ?+ t6 O& N
        <div class="notice">
$ I6 i  n& n/ l; _0 q            <h3><?php the_title(); ?></h3>* c( p0 M4 o: A% `
            <div class="notice-content"><?php the_content(); ?></div>4 ~, h. T' s: h0 u6 {. s/ i
        </div>/ O/ I" d, K: J* d/ @0 R# Q% G0 |
    <?php endwhile;) \8 H1 r# q6 P7 ~* C- F
else :
5 Y$ L0 i. n& N0 o( b    echo "暂无公告";
  Q4 b3 f5 n+ P1 wendif;! K9 w4 X& l( V) s7 o
wp_reset_query();
, X' k- o2 ?3 m/ Z; S```5 y+ {- z, [, E* D" r

4 v: ~' P4 U8 J  K) z* O8 e这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。" t" P6 Z1 r  A0 M9 _; c& X

3 Y) `/ ]: c+ m+ I以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
, f- `1 p+ t. A+ Y) B' Y/ R; f; ~/ {  M4 {' ~6 d2 l
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
* \% ]7 x0 |8 k% P% ?
/ S0 ?/ g% o5 n9 V以下是创建自定义插件的步骤:
2 l0 O. _3 U' T: E+ Q4 `- q( c' N4 ]6 [: \9 }0 k- T
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
5 D% R. Q2 l1 B2 L4 t# A9 R$ ~: }: N- j5 P" h8 {/ Z  S* v
   ```
2 O) E! T! c! t: w+ v   <?php
9 |' l4 t  W$ V) P! I; A# \' ]   /*
! s+ \+ s4 z/ y* W8 A   Plugin Name: Site Wide Notices Plugin
4 \! ]; a3 |  j$ n9 g3 ^   Description: Adds a new custom post type for site-wide notices.: \+ q! ^; M6 ^; }
   Version: 1.0" v; i/ f/ N4 ^% ?
   Author: Your Name/ z% Y- j3 Z7 |" R
   Author URI: http://example.com0 G8 B' S5 Q/ [  y2 s" b+ Q
   */
2 h- e/ r6 ~7 z) I# a* z1 G0 N( l0 e
+ o$ c8 g3 ?* }! a4 `1 L1 `( M4 u   // Add plugin code here...
9 }) j! N; R/ ]   ```$ S1 h. i$ K& N* ^! X- P1 I

! v: S% e" d+ H' r   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
' z- s! E6 D! X  s! h
, {$ j( U3 Y! \9 y" Z4 {  i2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:+ `. [2 g- s# o6 G1 x& o

+ S" m' j. v" s1 H( z  Q   ```
9 q9 B+ s8 {5 W( [2 v9 g   add_action('init', 'create_custom_post_type');
2 d" A. n6 n  s. z3 x7 l" \   function create_custom_post_type() {, N8 Q3 i1 m+ a$ Y
      $labels = array(
/ \* Q) ?4 I) j* @& g8 b' S' T0 ?          'name' => 'Site Wide Notices',7 v. w! V3 \" I( P3 I$ V# u
          'singular_name' => 'Site Wide Notice',) T+ T6 ]3 N( J1 ~; H
          'add_new' => 'Add New',. l: o: H8 p- [2 b
          'add_new_item' => 'Add New Site Wide Notice',
3 S9 g. W0 _5 t1 ^          'edit_item' => 'Edit Site Wide Notice',; d+ h$ Z' H4 _) Y& G
          'new_item' => 'New Site Wide Notice',$ l: e  t1 G3 Q! [/ t& ~  ^
          'view_item' => 'View Site Wide Notice',
* K  c5 E1 C6 S4 C: B          'search_items' => 'Search Site Wide Notices',
0 k# D- [, A* T' L          'not_found' => 'No site-wide notices found',
/ ]) m4 B0 h6 W          'not_found_in_trash' => 'No site-wide notices found in trash'# T0 z! Q- X+ i/ d# R, @4 l  w' J
      );9 N, H9 j6 p$ G. B5 K

$ m  d: w4 o( a      $args = array(3 L6 Q: G& L! u7 D/ y
          'labels' => $labels,
% J1 f4 E* P' N' Q          'public' => true,
6 Q2 x6 {" R. e2 k3 _2 ^' _8 ^& \          'has_archive' => true,
+ ^! n, F% X6 ^6 u          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),& D4 {) |1 r) x+ u
          'taxonomies' => array('category', 'post_tag'),7 O, w. W2 o+ G% ^5 h
          'menu_icon' => 'dashicons-megaphone',
1 @6 \2 v: L) N+ v# M3 o          'menu_position' => 5,9 s0 E: z+ t; U6 O7 {- H5 e" F7 y- w
          'rewrite' => array('slug' => 'site-wide-notices')
* V/ F( D/ X! c$ k2 E8 j      );
3 z1 [( E: ^0 x* I2 t# b/ X
/ V2 g. ^! y, A+ p$ L1 j      register_post_type('site-wide-notices', $args);( q) o7 {  F; _. Z* \" H9 ^1 O3 t! U
   }
( Y$ i; L1 ^$ Q$ |+ n   ```
$ |6 {7 z+ D$ _- S( E* s& k* ~% G" G$ e) X$ O- G2 C$ x( n+ I6 b
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
" \; `+ r2 I- b% \  Q+ o5 o
' q3 G- w- D  s7 Y! T2 W3 Z; \5 Q3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
9 c% P6 [: K" s1 y$ w% r9 N  g) n# G' t
   ```
/ x$ i; @% T% m2 a1 O4 ^! G$ p) t   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');, \& K  e4 w5 f/ ~! U# N* O
   function add_site_wide_notices_boxes() {1 j( ^2 w2 N( A
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
2 i& ~0 D3 Z' {7 w0 Q& k5 T   }3 r. P- \$ a6 a1 I+ Y, X
. A0 r) J7 u& X7 _+ s- y
   function notice_details_meta_box($post) {
9 v- E% P3 G4 N8 V, a3 b! F1 ^1 k0 K      wp_nonce_field(basename(__FILE__), 'notices_nonce');
( K1 Q6 s: w" c% Z      $notice_title = get_post_meta($post->ID, 'notice_title', true);
$ y8 V/ d% f& |8 E      $notice_content = get_post_meta($post->ID, 'notice_content', true);
+ x; O- u3 U2 h* q7 t3 z$ C      ?>
2 T0 d- I. P( D      <p>
- U& i: v$ f5 r9 p          <label for="notice-title">Notice Title</label><br>' {7 j3 ?5 R# U3 L4 p
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
3 N/ K% e$ X7 L4 A+ `: g* Q      </p>
$ h8 z. y6 w# X) E& [& c3 b3 }" b' K      <p>
; i+ p! t: ^7 M. W0 G2 ^          <label for="notice-content">Notice Content</label><br>
8 T- x/ S! C8 E" g& {' S9 f/ |          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
  Q# U: a  r( S2 b  u2 L      </p>
0 u( _: V3 C4 v) s      <?php3 Q: _/ q+ `& S& u( I9 ~6 n) a! H
   }
+ M5 j$ K9 B) G7 k& z
5 Y2 d7 X; z# d# A   add_action('save_post', 'save_site_wide_notice_meta_box');0 k8 o0 Y# R5 T0 a! B+ o
   function save_site_wide_notice_meta_box($post_id) {4 W& c3 X- N7 x/ Y3 {
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
# w6 T4 h  R5 P. W         return;
7 n) ~; g' K& a! k' v      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)( t7 O3 \2 h/ b3 U6 A
         return;
2 {  ?* i/ e% J8 v4 k7 ^8 [. L2 J5 F, Y' C- e* p
      if (isset($_POST['notice_title'])) {% }) \; P: D( e# Z- G; ~
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
  x+ H5 e4 K8 g, R. O6 {      }
0 h; a& t. T7 M) @, O. w  h* M4 J2 Y      if (isset($_POST['notice_content'])) {
/ ~. [( ~& f7 j          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));! e. G2 ^* ~! v
      }
" @7 D% }% Z, z- L" `   }
8 {6 w$ j# A7 Z2 @' |# i- G   ```1 @4 R* D: N: T. C
% U7 t, Y6 B7 T
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
' ~# `* p1 v% p! L
' b/ \6 F( |% F/ G- a/ \3 s( c4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:: E' z8 y# V- m2 H& @" u% ]

& J# {0 X9 {& t9 k5 l1 @   ```
% H! G3 c1 l2 G6 _   $args = array(; M4 F8 J, I8 M" `9 h3 }) T: j
      'post_type' => 'site-wide-notices',4 E6 ]4 ]# v3 f! ~  X7 |
      'posts_per_page' => 3,6 e& q$ [" o+ o* T1 D, k& m
      'order' => 'DESC',4 W& U1 j+ {7 ^' Z( X9 L
      'orderby' => 'date'
* ]2 H* w. k# N7 C/ T+ a5 [   );
/ x0 Z& [/ v& g' p- i, [   $query = new WP_Query($args);
3 ]# l4 r1 A0 L* H) {   if ($query->have_posts()) :
2 o7 t! h4 z' S# }      while ($query->have_posts()) : $query->the_post(); ?>+ f' g  q, n- S! w
          <div class="notice">, Q! _# S& ?& ^9 L
              <h3><?php the_title(); ?></h3>
' ^2 y9 N  x, ^5 ~              <div class="notice-content"><?php the_content(); ?></div>" n: c/ G: ^9 \6 K
          </div>
7 f& E, ?& T* ]! t  Y  ?1 O4 {      <?php endwhile;9 o/ G4 b: ^5 ?; K( E4 X
      wp_reset_postdata();
% Z5 }( w: X* Q( A   endif;
! i( I( z# m' x6 d   ```
6 ~/ i* _  T+ a/ i5 u
# L7 ^, L* t& l  K$ T- u! T   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 12:25 , Processed in 0.084975 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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