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

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

[复制链接]

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
' |. p6 S' U9 ]( I0 e$ |9 m6 v1 r6 V+ i- ?1 Z2 [+ p9 w+ h: N( A
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。; ~/ _( q4 M; s/ I/ K3 r( C

0 E% p8 g5 T, M( `+ G2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。! o7 |) ?8 C! a; G1 B+ F9 S, ]
( T$ j5 `8 U8 H5 q8 d
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
; {1 n; A& }- j* L5 k0 N( X: K' f/ V6 t: n: f
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
3 M# x9 p( h0 ?! M4 Q8 g# I4 V" W$ C
% v; t. O5 `# Z& M9 e% n注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?: @' V! X/ P/ c

8 W. T# S7 N) W8 g如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
, u, [7 ~' X! v/ q
% p8 w4 p  U# E9 G1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
- ^6 l- L$ t: S' R' M7 A  {- |; Z0 W: W0 F. |, M
   ```  ~& E! x9 t+ _
   add_menu_page(7 n, s1 x( d, f6 {- V# |% z0 f
       '全站公告',1 ]" h% V2 R' O
       '全站公告',
# n1 |. H; L% U3 E; N; U       'manage_options', //需要的用户权限
, M, g% U7 c3 a/ U% `6 D6 [! {& t       'site-wide-notice', //后台页面的 slug
6 `' A0 D+ p- m3 {9 k; t" p7 C+ O       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
+ W; S2 ?0 s+ T4 E' E- w9 Z       'dashicons-megaphone', //用于显示在菜单中的图标0 E5 e5 n" W! a/ q  G! t
       30 //菜单项的位置  A$ {' U$ c1 p) K; M
   );
0 \5 P' D; _& M& a   ```
) p( K4 D2 P* V! U- u' q8 ?4 P7 f  S9 x+ [% s2 E
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
; c# B: o1 ^- O2 W
; s$ e; Q! e% A1 H2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:! `- ^) d* Z6 g' e+ G; v
5 |  |; l+ d3 f* V# H
   ```+ `' w8 @2 B& `0 k" ~
   function render_site_wide_notice_page() {
$ f5 H/ X+ p" E& L7 @0 q      // 渲染后台页面内容
+ C" \) W4 {# k& S' J& |4 W      echo '<div class="wrap">
1 D/ Q. `  C+ r/ X          <h2>全站公告</h2>
6 U* M/ Z& o3 C# E% w4 R' J) y          <form method="post" action="">& g" S7 W$ T. I4 ~  p6 U
              <label for="title">公告标题:</label>
  ~7 |6 e, ?/ v- z) v              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>! O% }) s  z0 W7 O
              <label for="content">公告内容:</label>& j) k0 I" r) E5 R* U: ^
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
7 }5 C7 w/ b" z; y* b! A. U              <input type="submit" name="submit" value="保存设置">
! h- D$ p8 f* P' X8 K4 Q' T% l# h$ |          </form>
2 Z0 A: ~8 S. ^      </div>';
3 ?$ O* F# v; E' P! D9 x! @( q- k8 z: X- L- P+ |1 W# g# P! k
      // 处理表单数据; p/ d8 I2 v! G2 ?
      if (isset($_POST['submit'])) {
( t( |$ s4 a) b( P$ A0 G          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));; k, x; Z; Q' K8 N% X& q
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));4 q' F3 H: l$ g1 C" x
      }
. i; X7 m* @" q   }8 V$ u+ i) P2 f$ a$ L
   ```6 X8 E, ^* j4 |4 V* o8 A
5 o8 m- ]( t* ]" q  O3 \
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。, _& M, L: b/ C* c: i- Q. u
( k, m. K" b$ g+ P! P! c
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
. t8 n& q) d; |1 m( h$ m2 r! X9 u! m3 G! |' `7 Y
   ```
0 f: e0 G- O1 }: I1 t# [   <?php
! D( m& i3 i* X2 h   $site_wide_notice_title = get_option('site_wide_notice_title');, ~' J4 p/ m& w4 z/ B  z
   $site_wide_notice_content = get_option('site_wide_notice_content');
! t$ |; o) i8 _  x   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
: g7 G/ H% E8 w. E- ~& W- G+ X! K       echo '<div class="site-wide-notice">';
! }9 C) v- v# U% v% O* O       if (!empty($site_wide_notice_title)) {
  A/ K( K# ?$ ~; o. ?* V- }           echo '<h3>'.$site_wide_notice_title.'</h3>';
; O9 U: n8 o% f9 T& u' x6 L) J6 D       }
, C; R  m8 F& T2 z       if (!empty($site_wide_notice_content)) {
- P) w2 q0 l$ C1 d           echo '<p>'.$site_wide_notice_content.'</p>';
" y( x" z* _; I$ d/ p+ b$ S       }9 q4 Y7 p( b" ?& ?
       echo '</div>';+ ^6 f2 `' D2 }2 S9 `
   }
0 q$ @* I0 S, Y( G   ?>. f& S0 Y0 }( b5 a1 u7 R/ {. ~
   ```
, W5 M, n  C  d. v* L* M9 |( k
! F- v) I( P! O0 {' M   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
1 P( }" m6 N  C# e$ g; O# b
' j" l  W0 \* T; Q请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
# z5 n9 ]% ]( J& \. Y# A+ [
* |# f! R4 L; Z5 W; Q您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
( i8 M# F$ Z* P0 P: ^5 ]3 P# |6 B7 Q/ {0 p
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
0 k0 D- X8 Q* G/ z
% S$ S$ i* ~3 x6 E' V/ Y1 S```
( e+ T- s% ~" k* |! S7 H/ _function create_custom_post_type() {, R* s% N4 a. m$ |/ V' t
    $args = array(
: U: P! a! v9 B" P4 c9 L        'labels' => array(
  C: a8 `) E2 z. H5 G2 |; {            'name' => '公告',
9 w, E( G% T% w$ W% g            'singular_name' => '公告'
. ~3 e7 Q7 M9 }6 Z+ A6 O" Q1 L; U        ),
7 E, s3 K$ [. }0 h        'public' => true,
5 H5 m1 a* D+ y  u& o9 @+ N' S        'has_archive' => true,
, W- x6 z9 ]* @7 M* b$ }        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions')," l4 s: ^* s! M  \: t) U+ i
        'taxonomies' => array('category', 'post_tag'),
/ @* r; i' q9 t. [+ E        'menu_icon' => 'dashicons-megaphone',6 p1 b: W' U1 Z& W- A2 z4 q2 k
        'menu_position' => 5,( u, M0 B0 y+ f- \
        'rewrite' => array('slug' => 'site-wide-notices')
6 W3 k5 A6 Q% h1 {* u3 L: r    );7 w- |. `2 j6 n7 R
    register_post_type('site-wide-notices', $args);
: H4 x/ U& @8 E  i: [; M}. ]1 a" p- p# j" _. F
add_action('init', 'create_custom_post_type');+ V! L) x( n  |3 B" @0 {* d' ~
```
5 a" x* Z- d% y: P6 q) S; W1 y' \8 B. p5 D% J7 C! \
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
- z/ m+ V5 E" G
* M( U  c$ }: N0 M# V* F! N' ?2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。0 _1 I/ b2 H8 u7 R5 }7 G

* r9 H$ U* I' a9 n3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:& W) Z. H5 Y9 c# |6 F9 L1 e+ c6 ?

2 u* u6 M! J* O```
/ }- \, R6 A. \- R) _$args = array(+ K1 }) V( m- C; `7 T. ~9 i
    'posts_per_page' => 3, // 显示的公告数量( F6 M3 b! P* L$ L2 o# R
    'post_type' => 'site-wide-notices', // 公告文章类型
6 ^- [' D. R3 m% ]- g6 y    'post_status' => 'publish', // 公告状态' i. C8 p3 L8 x6 [: @3 L
    'order' => 'DESC' // 排序方式# ^! Z, g( v# Q7 T$ u2 f' W* ~, B
);
9 n1 R- U% X$ j* ?" Y* B9 H, W
5 v1 V0 R1 f. x. B3 Z( e, p$notices = new WP_Query($args);3 x% W! A4 n! t( l8 e3 p& {( C
if ($notices->have_posts()) :
* x* u6 P% A' q' I' _3 D% t! B    while ($notices->have_posts()) : $notices->the_post(); ?>) G, m; _/ A& E, V: S* j2 ^
        <div class="notice">
6 F: \9 _% {# [            <h3><?php the_title(); ?></h3>
/ V7 L0 G/ p% s# D' _3 z            <div class="notice-content"><?php the_content(); ?></div>
* U; N# B* X1 U' W$ C, t+ a7 P  u        </div>
  K# A9 r3 L0 D% I% B0 c    <?php endwhile;5 g' F2 e0 G( C/ H! D: ^6 h- f) A
else :
3 B2 F  \, C: u  ^8 ?% V2 x    echo "暂无公告";, l/ }; Z& [1 i1 J# ?' ]( w1 l; k
endif;! T3 M# a: S8 P3 U! {: Z* f
wp_reset_query();
, m. |8 q$ l" v% h0 k2 ~* w" z```
6 Z6 s6 I: a: Y- u, {; p' I
- B% I  L' J1 Z$ g- l这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。5 `, Y, D, T8 B! c

& c7 K" A- y" F1 x8 }以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
- ^. _' B8 E- c3 _$ g; z: L
3 w( b$ c! _& i如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
8 _  c; `& j; t7 i
, N9 h' A" c5 A' K- p/ H# p/ ?0 c/ T3 z- P以下是创建自定义插件的步骤:
; o' w, I- J" e8 F* v8 m  [
4 k2 \7 b$ o) V) A+ A1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:/ H9 B7 s% a# y) s8 p* g5 ^
7 z% D- K0 j8 @' a) S
   ```7 P3 v: U8 U! Z8 S
   <?php& j/ F/ c5 p% c7 M  \: o+ }) ^! i8 }) E' V! P
   /*
1 x6 k: Q% T9 F2 c" b4 ^( B   Plugin Name: Site Wide Notices Plugin/ `0 [4 e3 C4 w9 ~
   Description: Adds a new custom post type for site-wide notices.
5 }, h& @6 h! Z+ E: L   Version: 1.0* J& W- H. K! A
   Author: Your Name% t5 O0 a$ A# m6 @/ l
   Author URI: http://example.com- ^3 I0 s$ C8 X8 P) Y
   */+ }! C- Q% @8 H% w0 I/ l

3 V: w+ s/ @4 P7 _   // Add plugin code here...
/ F7 @3 \! w* p5 U; t" N   ```
1 ]7 T$ [* Y( J2 _  r. f5 @
6 R* R, ^$ u% m: w% L. m   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
+ @- n' @6 W/ D  ~
! ?3 ^3 a$ ^# g: T; L+ C2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
: i) I% ], x+ p1 O4 Q4 w* M
, N, O4 p8 ~: ^0 t4 \2 D. P   ```
' a0 Z, K$ A9 e7 P' Z) r( ~   add_action('init', 'create_custom_post_type');: v8 \5 |4 Q& U
   function create_custom_post_type() {9 f  W' n' S$ o1 C  P4 ~( H# ^
      $labels = array(! v" F2 B2 J5 ]6 a9 Y( P
          'name' => 'Site Wide Notices',; K& z! b& x0 J6 a: w
          'singular_name' => 'Site Wide Notice',) _# t: u, g# n+ f3 Y# z
          'add_new' => 'Add New',  ^- u" C0 d9 V2 P/ R
          'add_new_item' => 'Add New Site Wide Notice',
. `, r; ]' E8 }( s          'edit_item' => 'Edit Site Wide Notice',
$ ]! [4 R6 Y; k          'new_item' => 'New Site Wide Notice',$ z5 }% |6 i( ^+ M0 n3 Q
          'view_item' => 'View Site Wide Notice',* `* B8 }. U- _) G# h: f( q* t
          'search_items' => 'Search Site Wide Notices',
8 Y2 H2 f2 i7 \+ n* ]) Q          'not_found' => 'No site-wide notices found',! m5 D+ W$ E6 p! p
          'not_found_in_trash' => 'No site-wide notices found in trash'7 w8 Y% u1 \1 q/ g- N/ z
      );
9 G9 |' X& h, r7 C) W; V7 {
! V: S, V, |. D! C; Y      $args = array(! u4 G. ^/ V+ ]$ \& J' }5 [( ^
          'labels' => $labels,
# `( E, P. `# Z  k& m- p; q          'public' => true,3 \) J+ `0 m* D$ m, N
          'has_archive' => true,! ?% c$ L# d8 P, C/ o; @' C% Y
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
! i, ]: @- K4 ^  e          'taxonomies' => array('category', 'post_tag'),! q4 ^% N1 ?1 ^4 A' Q% S; E
          'menu_icon' => 'dashicons-megaphone',
3 c5 P" N, a* \& l) e( `          'menu_position' => 5,, y' y4 L9 W- ]8 R/ y5 B! S8 o
          'rewrite' => array('slug' => 'site-wide-notices')
2 E1 ~+ |5 J) t& r7 V      );1 M# A  \* p0 h2 [8 s$ s

, [; I  [2 [7 [1 {0 L1 ]+ `3 Y      register_post_type('site-wide-notices', $args);% s0 e9 @- ?  \  c1 V9 @5 e" v
   }
% a, `/ R& R) j8 b4 M/ Q" T2 f   ```
5 w7 u5 D0 g# r
/ H1 e; I( @& b: C) K' c- `   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。/ U1 R( @- j) W4 T: D. ^

+ o6 [2 ?/ b4 D% l+ M& u3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:+ X+ @- p/ [/ S# @! ], A

- {5 [8 B( q0 W( J   ```# @0 S1 ^5 X5 O4 Q% }) Y7 b+ X! w
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
( G0 m% T3 j; J/ Y0 v# L   function add_site_wide_notices_boxes() {
9 {* ~1 R+ @# f7 h& l( ?8 `0 H2 g- `      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
1 Q' r- z* ^; v# T# V- U   }
# |+ w) B. O+ V% U3 l. f! @3 @, M/ {% t# Z4 v! X
   function notice_details_meta_box($post) {* M# R. l4 @* c( c; W! f" b
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
3 Y- U- b9 {. g7 z: G4 g3 `      $notice_title = get_post_meta($post->ID, 'notice_title', true);9 u) c( r# L& O
      $notice_content = get_post_meta($post->ID, 'notice_content', true);# e0 k3 N. T* q' R4 S0 Z. P5 d
      ?>* Y7 J( K4 l+ ~; L1 K  h
      <p>2 E; B: o/ A, x1 q1 K# H8 X' \8 p
          <label for="notice-title">Notice Title</label><br>
, \8 T9 [" T5 {# s% q# W          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">' A9 u: r- r& R% Q, V, L
      </p>3 W$ c/ k1 F4 V) A9 ?, |! i
      <p>" y) `, z! t! l0 D8 Q- v
          <label for="notice-content">Notice Content</label><br>$ R' B, K- p# o5 h
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
' P2 t4 }: W7 I: v) C  G8 S      </p>
" a  D/ Z" d5 a6 M- u. _/ e      <?php
( }! x6 s4 j* [) a' F8 h   }2 {7 e) K! e! j) U6 J: I
# Y+ U7 s+ \% S
   add_action('save_post', 'save_site_wide_notice_meta_box');5 h$ f7 b) M: T1 |7 Z; t
   function save_site_wide_notice_meta_box($post_id) {$ O5 B* T7 T# [2 v  r. g
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))" u. L7 U2 @: Y3 [+ l
         return;
* ?$ F; X2 A7 V+ T% w      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)3 A% ~0 h- o- I8 N! A" X
         return;/ p4 Z7 M7 ^3 F8 |0 q, S% N
3 W* ?+ x8 Q  ?9 K* W% `
      if (isset($_POST['notice_title'])) {
' K2 |7 Y( u' I- f( J          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
( C: P, l; A' {6 Y& \      }
/ M' n# N& ]& q& I      if (isset($_POST['notice_content'])) {
$ f4 t# F4 d0 h          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
) ~& B9 w' D' X: }" J      }
5 Q/ i8 r, B' C; q   }
5 i2 ^% |5 [0 @5 w+ p   ```
! s% a% h. W; M9 n. g" O1 F0 A, h& {" x  G. }# E+ p7 F  l
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。4 F  S2 N% w) `! a9 m
9 g  g) w8 a& Y( l  `2 n' h
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
& q. U. {8 F6 f% h; ]& K( L4 L2 K: n6 m
   ```0 h4 T  R: N( p: }
   $args = array(
/ I* L# R6 m4 h! E# w" K! `' T      'post_type' => 'site-wide-notices',
+ K* R5 l- \, S      'posts_per_page' => 3,  l% S6 y- ~6 g+ j9 v/ Q( |
      'order' => 'DESC',
1 V  i3 y, O8 D! m3 @" u! t      'orderby' => 'date'
2 s+ g, f9 {# g7 h) x9 T( }   );
  R. M$ U4 E8 j! @/ M+ L   $query = new WP_Query($args);7 Z1 N* q/ R0 A% {
   if ($query->have_posts()) :
2 W2 B' f) a1 I3 d: q      while ($query->have_posts()) : $query->the_post(); ?>
- a' x: n: C- _          <div class="notice">
8 ], t0 o, R- r              <h3><?php the_title(); ?></h3>3 \: d6 z& i4 m) E% T
              <div class="notice-content"><?php the_content(); ?></div>
, i) |# b  B2 W% G          </div>
- w* Y5 [  d% B- U      <?php endwhile;" [1 j/ F+ J4 q( S3 }5 |% [8 Q0 E& t
      wp_reset_postdata();
1 [, I% f5 ]4 M6 h+ _+ ^! |   endif;
9 _) f5 d/ D& l4 n$ T9 Y7 b   ```4 u$ B7 R) A2 l' ~

% C+ M3 |' ^5 L3 c; e# G' S  x6 m   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-3 16:26 , Processed in 0.028317 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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