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

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

[复制链接]

338

主题

521

回帖

3478

积分

管理员

积分
3478
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:. p- N' C/ C5 D* o1 T8 B3 h

7 O; P% Y3 H4 H$ |1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
$ M0 h' s# W( h) f+ g1 [4 i- m4 l, i! J; v5 f
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
6 f: R$ R8 ~# k0 V/ ]5 b; q7 G! `' `' n& L' H9 Q  V. M+ A: z
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。$ F5 Y8 g2 f: t1 R2 K

  E, U$ F+ T7 I* ^4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
( P4 K) w: ~" ?# t3 E
/ Y9 W/ U7 [% G: M# \+ I+ K. H注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

521

回帖

3478

积分

管理员

积分
3478
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?4 [3 }+ s9 Q4 K% ]' Z
7 H" y9 |* ]6 W
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:0 ~1 ^( O% T3 x! m- h1 A# h  F' c

* g, O" W2 z9 S+ F5 H0 q, Y0 _& z9 |1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
+ N5 d' y. l" q; v$ z; ?7 S8 p/ Q! ?- N: [1 F0 J9 K
   ```! T% ?0 q' `) I/ U6 O* A( c& p
   add_menu_page(7 b7 s8 w3 k6 D. {! |2 _1 O
       '全站公告',
$ y4 r! f- g3 I       '全站公告',& p- h2 p" t2 M+ j9 `
       'manage_options', //需要的用户权限; n+ M6 \3 j8 V# h1 O. D3 v$ z
       'site-wide-notice', //后台页面的 slug
$ j8 z* C8 j, M9 d; E       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
. u! R9 g* |, |6 I3 [  D9 h       'dashicons-megaphone', //用于显示在菜单中的图标' _2 m) @9 l$ ^3 s+ m* Z" r
       30 //菜单项的位置: W8 f4 ?2 }2 P8 F- [
   );: I8 O; {8 P7 C6 P
   ```
  Q( K4 W1 p1 M6 B9 O2 x% k) t8 m' B# K6 z1 a
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
& n) U- w/ Q  N. p! x' l  X
7 }1 H/ W. F3 O2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:. l) N$ e4 K8 x# n# F' D' }2 g
: N3 z" i. W# y* e( @; X& h9 f
   ```
* l1 w9 F  k$ L+ x$ s   function render_site_wide_notice_page() {; m' {$ R& P4 Q* w( a6 N; O
      // 渲染后台页面内容
: F) a% b9 s- N  S8 F- q      echo '<div class="wrap">8 x8 Q- J, e1 \/ }% a3 v7 y6 m& z
          <h2>全站公告</h2>1 C/ N8 ?" u( U- J2 _
          <form method="post" action="">) l. ^0 c* Z6 b" d* q
              <label for="title">公告标题:</label>; t0 j5 \: I$ N2 Y, N# V% R
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
: N! O# w4 A+ O3 ?8 u3 M              <label for="content">公告内容:</label>
5 m# x3 f( j& d              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
. L. `* k) |4 @* d- h% y- r  B              <input type="submit" name="submit" value="保存设置">( j0 t* f9 y$ Z" y& ?
          </form>5 F6 q# g. w6 V4 G- B4 I2 ~
      </div>';/ }3 x- F1 e4 P' f* N% K/ a

& x' H; Y% y+ \% t1 A2 Y      // 处理表单数据
# h! A/ Y& G. B9 g      if (isset($_POST['submit'])) {) i* ^3 v! S& w7 e
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
1 ^9 [; l' L/ n6 y# Q- K          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));* ]8 V  Y  M. {  e1 G' ]8 S
      }7 T: A! K+ o( W% |) l+ v0 g% t
   }% K( P! V. K7 {: q4 M0 G& X
   ```% n' C" M* l! s4 C1 X  @
& N/ e. O9 P7 X% R3 l  w  u
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。% z: b3 \- P3 E' N# ]* n
& c# G* u4 y& |: x6 |5 c
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
& i$ N9 V' G( u. N4 L
$ l6 ^- A' c1 z& E/ w) v( ~$ F6 A   ```
7 C) \9 E5 X5 p. e( g+ G   <?php- l. U4 g1 ^' q
   $site_wide_notice_title = get_option('site_wide_notice_title');( G+ Z8 O% |# n% }) Z$ K0 ^
   $site_wide_notice_content = get_option('site_wide_notice_content');
/ G% i- Z2 ?  }! c0 ]7 h& `% u' A   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
9 `& s- V+ d; h2 D9 ~8 [# g2 Z       echo '<div class="site-wide-notice">';- Q' }# x" s& d, S% M  D* i
       if (!empty($site_wide_notice_title)) {! n8 u$ ?$ D" Q6 s4 L! P" N/ a. j
           echo '<h3>'.$site_wide_notice_title.'</h3>';
% b! j3 ~! ?: c" Z' W9 L       }
! O" |) a# V* |5 t) W       if (!empty($site_wide_notice_content)) {+ l% d% Z% i2 z# m2 N( e7 c8 }
           echo '<p>'.$site_wide_notice_content.'</p>';; \  k9 p# k3 b
       }
$ q" \/ h9 M; L8 W       echo '</div>';( U5 g# p( N/ I6 U8 B' ^0 j% V
   }
, y4 w' _9 v2 S5 R* E7 x   ?>' D+ B" e" \  k: \; Z& D0 A
   ```1 x4 b* _/ \0 j* d
# ?- A5 R/ L: U: w# @' ?% b
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
, m$ Q0 Y  n4 P. r# J3 G$ T5 C- @# |+ }, P6 n( N
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

521

回帖

3478

积分

管理员

积分
3478
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
& ]/ Q0 K% l% P, J% u/ u! X7 Y9 v  [8 C& V/ g( n$ e. z' i
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
* r, e2 X1 G6 ?& V- L/ [
- u9 ?1 ]" P/ o. o1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:" C. s2 K% ?5 f# @
; B; C  V5 w% L! _; c  w2 r
```
/ O8 O* w2 F1 ~. K- gfunction create_custom_post_type() {+ F3 u1 T  B7 ?4 j' [. a: b/ i/ E) \
    $args = array(
% i: M" X( z) j! B' }        'labels' => array(
' s; k5 O1 Z! }) Q            'name' => '公告',! |- U, O# @, X9 X* i- X
            'singular_name' => '公告'1 m  V1 Z5 L5 {. A2 S
        ),3 y6 G2 c0 F; `1 p4 D' I1 o( a
        'public' => true,( o5 p, i: z5 g% u
        'has_archive' => true,
/ H6 J0 n% t& `( C        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),( o: ]8 E* @+ L- q8 j( [
        'taxonomies' => array('category', 'post_tag'),
: |6 S3 L# u" j  ~3 L/ _        'menu_icon' => 'dashicons-megaphone',
  e* }1 D7 p' F" P5 `        'menu_position' => 5,
5 y: u( l; Y) a" p5 O$ c        'rewrite' => array('slug' => 'site-wide-notices')3 K) ?8 a( I0 _/ ?" U
    );3 k$ R" M6 F* ~9 l  g; M. G
    register_post_type('site-wide-notices', $args);
) I/ }  D/ P  b$ m4 ^1 T: B}  o/ `2 q) ?. B# y8 L0 c) Y' M* M
add_action('init', 'create_custom_post_type');& Q( S7 M% R; W0 U. j: l' O8 f
```
4 X/ V3 h* o, O+ a) k% i2 j* ]* B4 F: U- h
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
; F: [$ w# W  x# f
4 D2 Q6 B( B7 |0 _  }2 Y2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。) P% E# k3 g* S/ H

! g6 i+ w, V* ?2 m$ R3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
- e: i3 \! F2 C5 k' u( z! P& e& J. n: w9 B8 A  v# }1 r
```+ b  i1 F8 Z( i9 f9 \0 A
$args = array(& k  E' D6 I2 ~" p" v2 H
    'posts_per_page' => 3, // 显示的公告数量% x0 Z# x9 N, l( N4 x2 J/ {" _
    'post_type' => 'site-wide-notices', // 公告文章类型+ B! }/ h: s6 w7 Y$ }) P
    'post_status' => 'publish', // 公告状态
& e) W4 h0 ~& l9 c2 g$ I: S    'order' => 'DESC' // 排序方式( b# |, Q3 R" P/ E1 p* ]2 u
);; _8 k6 i4 T$ h

0 h$ w! O% i/ z" H$notices = new WP_Query($args);9 F7 w- l9 y; G' o
if ($notices->have_posts()) :
4 G! E& I/ @4 i* \    while ($notices->have_posts()) : $notices->the_post(); ?>! C. T9 d- }5 u& }( e. e) B' h
        <div class="notice">
( k) B8 K6 b3 g& N- w' J            <h3><?php the_title(); ?></h3>* j- C# t8 [. J1 o8 t+ m
            <div class="notice-content"><?php the_content(); ?></div>
% _4 ]# v3 h# N* E& u2 m: l        </div>5 }3 F; Z# G+ ^
    <?php endwhile;
2 ^3 y! B- X5 {. X$ W! Felse :0 t# k/ [& |. t# s2 h2 V4 \: B9 s
    echo "暂无公告";
1 h) y0 U6 y3 Q0 Y% y# R$ d* Bendif;" \: H% E/ p4 ~4 p$ E* N5 Z
wp_reset_query();
, Y1 _5 u, C6 U6 C( a, G+ q```+ v8 K4 U  M" w$ U3 W' p( X

- d' ^8 t" Y+ B1 G; Q/ f9 g这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。2 P% s/ J+ m1 B8 Y$ p

! F, t/ D( o' ]. F' A( }$ T以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

521

回帖

3478

积分

管理员

积分
3478
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?7 ]4 a0 C8 ]; p5 b
5 \5 j) u6 O. X$ J7 e# V$ ]# I- q
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
  M' X; q' g. x0 Q/ I' s6 I3 V
3 D# G# c& G4 j7 }3 F! ?( f6 z以下是创建自定义插件的步骤:# }! O: ^1 ]6 Q8 o8 W

# H: q1 |; T/ n3 B1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:6 l6 H0 X3 d" E/ d' T

9 D' H0 z6 ^, e6 a   ```4 @" Z6 [$ |7 }1 `5 R, X
   <?php
0 Z9 \4 s8 k0 B9 s0 ]5 e   /*
1 y2 S" C# b! F. e0 k( A   Plugin Name: Site Wide Notices Plugin- n, S8 E0 k8 v' v
   Description: Adds a new custom post type for site-wide notices.
3 C6 [8 K5 D) f   Version: 1.0
4 U9 \% U$ h& R, ?5 ?4 |, i( }   Author: Your Name: T1 `/ J' z0 I
   Author URI: http://example.com
# k4 a: h4 s9 Y9 N   */8 R- X0 _1 Q3 u) v+ `0 w' ]: U9 Z
: ^1 D" l- I) ]/ f
   // Add plugin code here...
4 d& ?+ l% m0 C$ S   ```
0 M5 x  M& i2 Z, ^2 D. Y
8 \* o/ E- ~" T1 P. _4 {7 `   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。* \- T6 V' b- X0 P2 N

8 B' [7 Z; I( a+ ]* _) M2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
/ {4 g+ S, d0 B$ V% e9 m/ q# V% J  }0 U  t; q
   ```/ H- a- F- O0 i/ {" {
   add_action('init', 'create_custom_post_type');
! [% N  k, X/ y. A+ X0 i   function create_custom_post_type() {
! B: }( m8 y& l6 q, V      $labels = array(  f6 M) I1 q$ a0 |% g9 o
          'name' => 'Site Wide Notices',9 ]( g4 `- `, k4 ?' W, N4 x1 I
          'singular_name' => 'Site Wide Notice',7 O% _  A3 w1 n$ ^1 F
          'add_new' => 'Add New',
8 T) V7 o. A, y          'add_new_item' => 'Add New Site Wide Notice',' ?) [& f. b# W$ E0 R
          'edit_item' => 'Edit Site Wide Notice',4 S2 k3 M# i1 W) P5 h2 g) e' I
          'new_item' => 'New Site Wide Notice',* P& u; q* ?1 m- _0 a% l) h; m
          'view_item' => 'View Site Wide Notice',! b' M+ h) ^- ?( O
          'search_items' => 'Search Site Wide Notices'," y& k6 D0 m: H" M& o% ?
          'not_found' => 'No site-wide notices found',# \; N1 a0 Y4 q9 S9 v) D: P
          'not_found_in_trash' => 'No site-wide notices found in trash'2 Y! H3 T& c2 j6 |  \" Y  g
      );+ \* K  K! W" y: s9 G5 C( H
6 |  x9 t" E- }
      $args = array(
7 H9 B$ R5 Q; q$ {8 B& W# O8 ]          'labels' => $labels,
9 ?! O2 b3 D/ u  I$ G          'public' => true,
  d& I  B5 Q6 J7 Q3 Z2 }          'has_archive' => true,
+ F8 r7 Y# f4 K  ?" r          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
+ Z; C' [4 D$ ~! O1 Z          'taxonomies' => array('category', 'post_tag'),' @8 ?  q, K* p4 v
          'menu_icon' => 'dashicons-megaphone',- |: @, a) I# ?  D8 F$ D
          'menu_position' => 5,2 b4 _* o" F! m* }& r; B
          'rewrite' => array('slug' => 'site-wide-notices')
1 h- Z, j" r/ ]( D7 n$ J3 x      );7 K# v' e# H7 O3 T

9 ?: Y, I0 N8 R+ F      register_post_type('site-wide-notices', $args);
! s  F, A& _9 }& I. o1 B   }' V0 S; x/ X: o* V& e
   ```
5 G4 T$ V% T* p  g; i0 U4 K
* ?2 i0 E: N  L: s   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
1 a; e: L# r; Q0 F: l
. ?7 e8 G2 Y" B" T& W3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
# F# M& i' X  V! \5 c, J7 N# F. [8 t" w6 |
   ```
& V# }; h9 M- N; R* Y   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
- O, J  g8 D  d   function add_site_wide_notices_boxes() {7 x7 K0 V& r4 _) e/ l) d
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
/ a4 ?- ~9 O2 l3 D$ M9 q3 s/ J   }
$ y$ b! C/ R1 G8 h* @. e% L- _% K
   function notice_details_meta_box($post) {/ h0 k# y& m- N1 p& _* A- q
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
$ v! N0 s* {5 M, T5 f( D  ~( L      $notice_title = get_post_meta($post->ID, 'notice_title', true);% d- _2 d; ]4 B/ }  e9 o3 s
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
, T) U& K" U9 i3 ~, ?      ?>
- V2 o1 U" J2 E3 Q. r% t% [7 c      <p>7 K0 s5 t* O9 o+ `; U% `( J+ K
          <label for="notice-title">Notice Title</label><br>
) ^+ t" G5 I* `1 P          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
* U$ x. O! v# L      </p>
- j3 A( _0 w# |+ Z3 M      <p>
* E( e, g5 X8 P1 i          <label for="notice-content">Notice Content</label><br>6 n/ Y( F" k% x; m
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>; |: l  g; \, @
      </p>  e; O. N/ V! X0 U2 @, l
      <?php! N" S! Z+ s5 K& o( u* r$ g% a
   }
7 e% Z4 k+ ?5 ~) {" w# @
3 d$ H; }3 K# ?1 U& t   add_action('save_post', 'save_site_wide_notice_meta_box');
  s9 y, J  E# B0 }# M) W, n& U   function save_site_wide_notice_meta_box($post_id) {
* A, y9 t% n! K      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))& _4 w+ K8 Y6 s# y  H; x
         return;$ o9 D7 ?) k3 g( e& b8 r# [( D
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
3 y6 V+ _1 Z+ n( }+ \         return;
6 [% K2 D9 ~1 L  Q  w; d5 a: S' `
$ e6 i9 k( J& E- x8 r1 x$ u      if (isset($_POST['notice_title'])) {
+ D4 G! p0 _- Q6 y          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));" e" F5 R, Y' N/ ~: c
      }
' g% v; o, {6 q' B4 \: W# a2 }      if (isset($_POST['notice_content'])) {
1 l8 H. X( _; @% J0 N! h          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));% B, W* b6 }# S
      }/ f! e! \! ?, N: N2 U/ S6 U
   }' q8 ]" e+ M1 X& C4 z/ i
   ```
5 P. a3 @3 v# [; _* t" l& x' y
) @0 D: Z4 I$ x- s# F4 v) Q: V   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。4 M  l% v% S- d6 a8 t2 I' o
/ p& x3 b! O7 S' H1 _2 t
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
5 H' g* w2 G5 n1 Q0 M: v, }6 {6 F; q$ N' ^
   ```
9 g) @$ m0 V- l' k   $args = array(
* s: X2 N. z9 ^, O( T, @6 R) U+ f- ]( l      'post_type' => 'site-wide-notices',- i7 w; u# E$ N. s/ a# ~1 H: h
      'posts_per_page' => 3,6 e( \( h  ^' m- i0 l7 r( l& }
      'order' => 'DESC',% |- C2 q" |2 D/ E4 O/ I5 y8 e
      'orderby' => 'date'
- R; ^! _" }& V5 J   );9 K: n- o4 A" P2 j; J
   $query = new WP_Query($args);$ Z3 T' w) g, w# O2 }& K
   if ($query->have_posts()) :
, Y9 P. E' G# l5 d1 t      while ($query->have_posts()) : $query->the_post(); ?>
  i# A! E, W( I1 a: Q          <div class="notice">
4 V5 b4 D1 Z, g9 a" F" M. d5 O- D              <h3><?php the_title(); ?></h3>* Y7 Z# |$ j7 Q" D! d  Q4 w
              <div class="notice-content"><?php the_content(); ?></div>& Z# Y! b# q6 o( Z% i; }
          </div>, y% I! f" m) c2 s; f2 o
      <?php endwhile;
5 ?5 h+ T# P/ E; N/ ^+ S      wp_reset_postdata();  _# c0 y* V% I
   endif;8 a/ ]0 J7 R& v, P# K- t" E
   ```$ s- S' Q; V& A+ m1 M9 D
6 H9 L" f2 l+ |: |8 X
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-9 07:23 , Processed in 0.013112 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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