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

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

[复制链接]

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
2 k( A) r' n5 W, `( D3 c; d% Q: K" [: g+ D8 t
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
, Q9 J& s2 E. Z- C  n: a; r6 I1 P
. k0 j, ?. \  ?) c  _5 `% ~5 Y# e2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。: N. J8 v" M( H: `" Z* J% u
% G1 `5 V" h# z: l1 ~
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
3 M' [: r4 W  ?% ]" B6 R/ F
) t2 Q* W  K" S, P( q4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。; K; H9 ~7 u; D3 f
! J" ?+ v3 Z4 `3 [
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?- q* q) ^+ v. N, I) v2 R* @3 ~

/ s9 ~( I' b/ f, P如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:' d4 U$ _# m- j9 B% [3 G0 g

0 O* X* F% _9 U( D, a; h1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:- A2 L; J+ p7 Z

" p7 e9 I: P* N+ J7 t/ k. x   ```
: V3 B0 d7 A5 p8 o2 j   add_menu_page(
& i6 g$ a4 q) f/ [2 d" w       '全站公告',& Y( v* z2 t% |
       '全站公告',; t2 p8 L  K, W) K
       'manage_options', //需要的用户权限' V, k* N3 p- r% `
       'site-wide-notice', //后台页面的 slug
: k" v8 ]5 u) W       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
/ O! O. q7 l; w; J) m       'dashicons-megaphone', //用于显示在菜单中的图标
, x" F  u1 P, X3 x3 F       30 //菜单项的位置8 n# w" b4 ^% Z, b/ C
   );
& g; v7 {5 x8 f8 N- @/ h6 q: w   ```
% H# b5 B( |  M6 X8 e* b8 N- I1 N! l. G8 w: I9 N
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
5 N1 d" y# `; T; f. A+ X
9 L# c9 P$ [0 ~7 h) y( k9 C8 X2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:2 K5 S, V2 u0 i7 Z& W

7 c5 k0 \, D# |, ~   ```
! }8 j9 `" U! \. r, f   function render_site_wide_notice_page() {
, ~7 x+ t- V! f# s1 C, n$ ~* C      // 渲染后台页面内容
' Y) b) m: T& ~8 Z: G! t& v0 ^      echo '<div class="wrap">
6 O# e" T* Y) Y3 K0 u          <h2>全站公告</h2>
5 ]+ [' m$ \1 e, T          <form method="post" action="">2 r/ w2 G) p7 O
              <label for="title">公告标题:</label>; c1 b9 [7 n% i/ F4 K
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>8 a( ^  I0 I6 j* Q) t# P  u
              <label for="content">公告内容:</label>
+ }5 [9 N. \( L; I$ N5 ~4 d% ~# O              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
& \% Q0 w% d/ y              <input type="submit" name="submit" value="保存设置">
& X6 s! \( \. @1 @, h% k8 N+ [0 d          </form>: a6 x, s7 h7 r. O. E6 T  T/ H6 z
      </div>';8 D9 q3 r, J. a- U

+ C. F" t1 s( x; \* o& X      // 处理表单数据" G6 d( N2 d2 b) ]4 d; t5 j2 {) i
      if (isset($_POST['submit'])) {
8 N5 q0 m& n: v$ m4 }! z          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
( U( X4 I1 Y" n1 T( i          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
) W* [* P$ D# v! U) y3 Q6 a) O      }& s% R5 ^" q* H* S+ Q! S
   }
; G, p! i8 ^* Y   ```
" Z; v$ L- [8 J" b/ K& p+ v2 f1 j0 T% T  r% |) o( T: Z, @
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
4 q! |& n; @+ }' S6 F8 I( B; x4 _8 S: p/ {7 N/ B( z6 J
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
( D* }/ j" _8 ?2 o: R5 H4 ]! a( U* G+ H$ c% D; W) X
   ```; x! t4 J2 \: `9 m' |) B
   <?php
* G+ T% T; P* o$ A   $site_wide_notice_title = get_option('site_wide_notice_title');
, B1 p* S) C  w3 G5 b3 ~   $site_wide_notice_content = get_option('site_wide_notice_content');
( ?+ ?( A  m' k   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
- v" j  s5 v+ R       echo '<div class="site-wide-notice">';5 n6 w* k/ z& `# _3 A5 a
       if (!empty($site_wide_notice_title)) {% B2 E2 n0 P5 r" F: `
           echo '<h3>'.$site_wide_notice_title.'</h3>';
0 M) K9 B7 k3 ]' S, L* X1 a       }
2 q8 N6 i* g1 v5 a. U( L       if (!empty($site_wide_notice_content)) {
/ |2 a% Q8 l: t6 H. _7 B           echo '<p>'.$site_wide_notice_content.'</p>';
$ x% G' \" o$ s0 P5 C       }& @: D6 f! r& A/ v  U# h1 R% e4 u
       echo '</div>';
9 O6 x0 C1 r7 T  [8 g5 X   }& V2 T( D9 c0 s5 d1 q4 b1 F6 b4 S
   ?>
, C) P- E6 ]4 U   ```6 V; f( z4 [, h2 s1 K5 F2 I

- I1 U7 F0 ^. b; L' K% T1 B   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
* i4 ]/ _1 q% D5 d; q% d" f7 P' Q5 I' G; @
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?% n- L7 @7 _* [4 @9 o+ R* n) V; V

5 o; S- `7 G6 `$ ^2 u- _; h您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:. b, D. r. \2 R- ?4 S
: c$ o, J) U0 r6 J& a9 Z! ]* U- H3 a
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:/ k4 J& G9 f1 }/ B
- \# M3 u( h' ]( B/ Y9 M) [
```
( L: e# [. s9 B% h+ ^( Y- qfunction create_custom_post_type() {+ u: C5 q! |- d( ]7 |- Y
    $args = array($ k7 A: Y* h5 d/ m' T) X1 J
        'labels' => array(
1 Z6 y6 t9 N- \/ n            'name' => '公告',
  Z' L# c, @0 z, j# C            'singular_name' => '公告'
/ Z: U0 I3 p) A        ),  N% X* T3 X+ h7 W7 e" I
        'public' => true,1 W1 V, Y: d2 r+ O3 j) A  ~
        'has_archive' => true,
' Z0 _% _; O/ \+ w% i        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),& Z) {6 v! p3 d! h
        'taxonomies' => array('category', 'post_tag'),
' R/ ]4 ]: E" @, \- b. {& X        'menu_icon' => 'dashicons-megaphone',8 D! L& h7 Q! Q: \# h6 A
        'menu_position' => 5,3 n4 p6 s, w8 I# A" ]9 f3 j
        'rewrite' => array('slug' => 'site-wide-notices')+ j$ M' A- l) O( k
    );) C9 x( U3 z, N  l: I) _. @- b5 j
    register_post_type('site-wide-notices', $args);# R6 `5 ?- Y" h3 p2 Y( N
}( l8 b7 u7 F! ^
add_action('init', 'create_custom_post_type');
  B# {" F. ]# Y9 W& h. A3 L8 R* u6 w```
; c; C4 h% q1 A0 d
# A% j/ @  Q9 \3 H: e' N在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
. u5 u' t' W. H0 f* H, j
* A1 y5 k, K$ @1 h# A2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
( N  N( L$ Q- f7 A
% r1 e' d7 i2 L, w( J4 E2 F, ~3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
5 G+ H. M7 H8 e2 D! @# c& t: P: l  w$ U
```
2 W3 x( w8 x! z, V/ {7 `+ f* B$args = array(
: C" D* O7 u+ h: v) E    'posts_per_page' => 3, // 显示的公告数量
  H& ~5 u) w4 D, {# V- V    'post_type' => 'site-wide-notices', // 公告文章类型
: E: d( a0 f- I6 ^4 \1 ~    'post_status' => 'publish', // 公告状态
0 g: l. W& r! s, `    'order' => 'DESC' // 排序方式
) [1 ]) v8 T, k  m- K/ G0 I: o);
5 ]/ v* r3 m5 U$ R% U1 B6 Y# B' ^  \9 ?+ e- ]
$notices = new WP_Query($args);
3 T) ~  w( b6 J7 nif ($notices->have_posts()) :2 f3 z* y+ O  b3 Z2 o9 U
    while ($notices->have_posts()) : $notices->the_post(); ?>
- R, S/ P: Q3 R. J( d1 M: N. g- F        <div class="notice">
  V( S0 _% W) j4 S. R            <h3><?php the_title(); ?></h3>* T& x: J" J# Y5 Z
            <div class="notice-content"><?php the_content(); ?></div>
' K* }0 o' s5 t& K% _        </div>
' r) W, _# B, m# _4 d- @7 N    <?php endwhile;. P- n7 L6 w: m% r. [
else :7 ]6 A7 o5 ~+ k- E0 d3 E3 n9 R
    echo "暂无公告";! W! c3 b4 o$ _" O, O5 U+ y% W! w) Z
endif;
2 ~: W* k5 c. y3 d1 W# Owp_reset_query();, \+ B' w) W+ {% O( Z  Q4 X0 l  r  [3 K
```( B  K/ U. J' s9 t) Q. ]

* e. g) c" n3 T' O6 `# ]& p2 ]% u这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
" Q# X. `" C3 C3 l1 L6 ~+ n6 A. b$ s
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

529

回帖

3532

积分

管理员

积分
3532
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?) i9 P! z* b+ z  F
3 T5 \. x9 Y$ ?, m* Y, E% g
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
4 M  z* S1 r- d  O
$ T5 M/ H" k, O5 @以下是创建自定义插件的步骤:. @  ?, D9 Q5 v0 F

0 X" p4 B6 G5 C8 p; p9 X1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:+ R8 P4 |5 j' M% E: `
- ~/ D( A" I1 D
   ```
# P, d& ?; w+ l% d& z' L   <?php4 t; D" e- K5 g$ q+ T
   /*: i+ T5 o* k: ?
   Plugin Name: Site Wide Notices Plugin8 D2 P, ^' z$ H1 v
   Description: Adds a new custom post type for site-wide notices.7 A+ Q- D9 S/ F7 R9 }
   Version: 1.0/ ^2 J4 ]0 S! }* d. L: O3 N- u
   Author: Your Name
1 h% Q5 [, g' k$ q+ l( E   Author URI: http://example.com8 |" Y( T! S2 d8 Q& e& Y3 @8 `" _
   */- k+ L2 H* ^5 n, o& Q9 O

6 o6 M. b0 z! |. A% r  T2 d   // Add plugin code here...4 C& W" j$ m& n$ Y
   ```; n) V: ]" S0 Q5 i
. g9 ?4 R2 H" R1 D) ]3 O
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
2 c7 X9 {0 K! s& H* [2 H" n
) H% ?( ^( P: f2 r3 I2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
  c# y: `  Z' B2 q% i) h( s1 }# v! {0 h8 M, I
   ```
& b2 ^  C9 ~" \; \   add_action('init', 'create_custom_post_type');
5 [* x* i4 M! N- }# {8 W* c   function create_custom_post_type() {
2 I" W: X( F: U- t" f! o& x      $labels = array(! N5 `2 z) O; B7 k  F4 _2 x; b* X
          'name' => 'Site Wide Notices',
5 u5 M  a8 z8 S8 Q0 U) X: o0 a, A          'singular_name' => 'Site Wide Notice',2 P9 k6 a0 @1 L2 B4 p& v7 e7 K
          'add_new' => 'Add New',
2 y; `4 `" a6 U5 X& W* o          'add_new_item' => 'Add New Site Wide Notice',
3 A2 g# Z2 S0 ^! ]/ ?4 }% o          'edit_item' => 'Edit Site Wide Notice',
7 j6 R7 G- \0 g3 s# V          'new_item' => 'New Site Wide Notice',0 L) v% D8 V; G9 h* i
          'view_item' => 'View Site Wide Notice',
3 K: ~0 i% F( ]) {) }          'search_items' => 'Search Site Wide Notices',. a  M* b* a5 Y7 E" m
          'not_found' => 'No site-wide notices found',* f4 G! P6 p- s1 F; n1 J
          'not_found_in_trash' => 'No site-wide notices found in trash'. I* A  U& T8 ^. a
      );0 B3 ?% `: B* Z9 U( R

( \* H9 c; Y. |, `! c$ J% r: J- r1 q$ D  j      $args = array(
' J  i0 Q# l5 |' O9 K          'labels' => $labels,
" ^( A& `! r% ]. e3 H4 O9 t/ h          'public' => true,
" n2 d9 l' c! }! G          'has_archive' => true," w1 a- y7 I! |: P( }: e
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),  S* e- ~0 A5 V1 K+ e7 g$ x
          'taxonomies' => array('category', 'post_tag'),
8 ~- S0 G* e6 G          'menu_icon' => 'dashicons-megaphone',
8 C' z' m: L+ t2 S          'menu_position' => 5,
! z( l' M1 m+ x( m/ i          'rewrite' => array('slug' => 'site-wide-notices')
9 B5 O, p5 x4 R- n( y- ^: D1 r      );
8 S  O' L6 c/ i: a) d. _$ C$ [0 Y/ [
      register_post_type('site-wide-notices', $args);
3 Y; i0 ?2 m$ d% i8 l5 Y/ [5 O   }, C8 B3 T/ x6 i4 S
   ```
4 q- D6 w; Z7 }. G- S; o9 @, ^; G
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
9 Y+ @8 s, u; F, E" ]) A
5 f1 D& L( }1 J" `1 T% H4 }3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:' B+ n/ b8 d7 \2 a8 Y

4 q$ X9 _" i* [6 M) X7 H   ```
( r& K- ^* @% u# a7 N8 o* o4 s   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');; u; W; y/ C- r
   function add_site_wide_notices_boxes() {
; b+ d1 W/ R9 H3 a0 l* B      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');+ _% `4 F3 f6 v
   }7 m2 l0 a+ i8 ~4 L$ F
* {; q- c1 x- @- v3 Q
   function notice_details_meta_box($post) {
+ P, \  ^$ M" `5 o      wp_nonce_field(basename(__FILE__), 'notices_nonce');
, L5 y6 k& J/ i% z      $notice_title = get_post_meta($post->ID, 'notice_title', true);6 i. }7 L* H( k2 J  O! M4 V$ P
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
4 {  z6 D: n- D) a; C8 Z7 K8 f      ?>5 X% _. \) k* I; S! U
      <p>) l5 T/ L, k7 B. z& I) d% g& K
          <label for="notice-title">Notice Title</label><br>/ Y: i4 C# N* o' P* M7 P+ N0 C
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">* W* q0 c' N; `: L
      </p>
2 c# m# ~0 g4 a$ {, `+ T: P0 U% t      <p>
9 N3 S6 |, i3 z8 C          <label for="notice-content">Notice Content</label><br>
% o0 P% i+ g, u  A& h          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>: B) M; k" t  S! b# L' C
      </p>8 D" W" B' K# e7 b1 O! K6 h0 ~9 u
      <?php
( y' J* Y9 J; |$ X5 }   }
" j+ ~, L2 E3 e4 {; q. |4 ?2 q
5 z; v, b( d' i& ^( {   add_action('save_post', 'save_site_wide_notice_meta_box');  c4 U& U/ Y- o. H" U
   function save_site_wide_notice_meta_box($post_id) {
8 s/ S5 b! g  ~. o! `( T; }2 [4 d      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
. C  f6 e4 y# @2 o  e, v         return;
8 x- g6 I0 x) Z' K# B      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)( N) o. l. ?) b5 |3 b8 c* C
         return;4 U" v& J& ^( m" ~
/ ?0 }. F2 q/ Q, [
      if (isset($_POST['notice_title'])) {
0 u- f7 \1 P6 d- _. u/ C& z3 U4 \7 C          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));1 B4 f3 ]6 s5 Y+ }8 w
      }
2 [8 K" K- l' l% v. v      if (isset($_POST['notice_content'])) {
2 J5 w; o0 ^! L4 c/ F          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));, ^0 N$ P( A8 ]$ N0 `/ ]& x' }0 n
      }5 C% I4 O, @2 q( ?% C2 i
   }
  L: w" ?/ D" \4 u& l" ~7 \   ```
1 x3 w% k/ u) s! V' t( u$ N
- t- _  ^- F' {9 W   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
9 T# {3 H; B# Q6 n4 Q' Q8 Z/ E
/ f' z8 e0 w' v- J& d' z3 t4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
6 t: Z; ]) r' w8 n% O9 l! K" {& K$ @9 _$ N& o4 k# t3 \
   ```
3 S8 O: B1 d4 z! S. j   $args = array(: \! T' z+ U& N. m5 _. X+ @1 A  M
      'post_type' => 'site-wide-notices',& _6 h3 P* l3 v# ?3 j# X5 k
      'posts_per_page' => 3,- d/ ~5 ?; y4 \! O8 u
      'order' => 'DESC',2 f8 A. T) H: S2 s+ |" l
      'orderby' => 'date'' r+ T/ a, x' O' C2 n8 l
   );
5 a- J7 R6 G( |8 U3 V- o# G0 Z" W5 H   $query = new WP_Query($args);
, p5 B, @. B5 i   if ($query->have_posts()) :2 F% {1 t+ d! s# v4 Z8 V/ U$ M* j
      while ($query->have_posts()) : $query->the_post(); ?>
0 e* @6 u" ]5 V3 `+ x& ]3 P          <div class="notice">& H% Y3 {* `0 y$ z1 N, y
              <h3><?php the_title(); ?></h3>3 I4 D1 Y9 M& |: b0 Y
              <div class="notice-content"><?php the_content(); ?></div>4 }) ~/ J; K. J! ^$ L
          </div>
6 j! u6 e( k; v1 F8 p5 F      <?php endwhile;  _2 j* i6 Q0 u5 ~
      wp_reset_postdata();6 n5 ^: M0 G% a7 R; n/ v* U. S
   endif;: M3 ^; J! n) r, n
   ```; X6 ~% B( U5 l3 }

5 W) n- V4 R4 A   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-19 14:26 , Processed in 0.020758 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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