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

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

[复制链接]

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:3 h* ]8 X5 Q5 I- S3 n* o7 K

( `0 q. j# R' ~# v: M' p1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
/ b7 ~0 p" c% I9 s4 Y% [0 L
- }6 Z* c9 C, c0 S4 `7 J% c2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。4 \8 L$ V7 V; ~7 t8 A( e2 ?

' O* l+ i. k7 h: G3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
1 j: m6 \' G, F$ b5 |- o" A" q, t1 U! q  {  @6 I& r
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。, X9 j" s# s' m: d

# H: ?6 ?" j! o+ V. t' X注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
1 E2 p3 B3 t/ X: G  G  X: b9 i, }# R6 d, P
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
( [/ }9 F8 G6 L6 S# s7 o9 P1 z0 h1 f( s% o
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
. m. R; V7 Q: N! F7 A) T8 @# I- e% n
   ```
$ k* Y. B0 I" n1 C! i0 H( D; `% _   add_menu_page($ T0 K( z, H+ j$ [
       '全站公告',, ?8 h' R5 c& a" ^0 o% ]
       '全站公告',
+ m# H  K; F# u4 |' _0 \$ y# k       'manage_options', //需要的用户权限
; _. o% L0 x/ Q! F1 b1 T2 k, G; \       'site-wide-notice', //后台页面的 slug
, D0 A  d# E" V: C+ p% J3 F       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
( ~: F' o) f( `2 d6 [) c: U9 B       'dashicons-megaphone', //用于显示在菜单中的图标
9 I# b1 b" q/ I! s/ }/ G# f6 m       30 //菜单项的位置2 k" g! \: ^9 ^3 [4 C6 H; C& C
   );  v6 @( K/ X; x* _+ G) m
   ```
3 T% O0 A) x8 v
- v# P7 F8 A3 z7 v6 V. ]5 B( A   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
, r" R: J- u( V6 w/ V! O# [
; W: O1 q4 w9 l( f2 l2 F) n5 q' m2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
$ d* r7 d2 `2 T. ~( A; L
* v3 j9 S. |. r! W% s& f" R   ```  j( A. D% ~+ z& o4 T2 c
   function render_site_wide_notice_page() {/ v7 Y; M6 T8 K% j2 Z
      // 渲染后台页面内容
- j0 r& ]! U9 Q8 q      echo '<div class="wrap">
( ?+ H' Z% j; n9 u7 f          <h2>全站公告</h2>$ a% x+ r# N9 F9 M
          <form method="post" action="">1 u! J6 q9 A! u1 e( c4 O
              <label for="title">公告标题:</label>
0 ?! n; P' P1 P# @5 y- @              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>2 K  z! A, }6 m6 S( y
              <label for="content">公告内容:</label>
% U8 S: y; l2 A; K+ t5 O6 j5 c! ]- o4 X              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
3 z6 U0 p& ^0 A) x$ s              <input type="submit" name="submit" value="保存设置">- V- D( z1 m1 ~/ G4 @
          </form>9 z& P9 [: a6 r4 m
      </div>';
0 `* S( k5 _5 H/ a, |& c- H4 _2 ]. {* g; x. x' W
      // 处理表单数据
& s% O/ K3 F! F, s# J0 G2 t* k      if (isset($_POST['submit'])) {
4 F6 y' h" s+ m5 @! c& _5 c          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
: V5 f. `3 Y9 p8 G* ?- S          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
1 l) o( }# O* I% |- l6 y5 K5 ]      }
8 J$ D# E+ ?% Q( N3 }   }
: t% ~0 B1 V2 w- \: T   ```8 @0 E4 }  c: q/ J4 r

/ v5 I5 u7 L, Z5 l% j   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。8 B' b2 N$ k. f' R; [
8 |) r  j/ {2 I, X9 \0 N7 c7 O; s/ A
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:7 @( f8 t( K% k* k- E- O
% p5 g9 d7 S+ I# m; Y# R. r
   ```* n2 S: U9 \- H3 r4 [1 _
   <?php% Q' Q0 a+ [  m/ A. v
   $site_wide_notice_title = get_option('site_wide_notice_title');
7 U! \7 v; r# D7 J5 D   $site_wide_notice_content = get_option('site_wide_notice_content');3 {7 u5 U+ `6 V; `7 K, C
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
* l5 G* w, {8 w2 `/ r% i  N       echo '<div class="site-wide-notice">';" p5 ]+ E: n0 S5 B5 ?8 c
       if (!empty($site_wide_notice_title)) {
/ `7 S7 m/ j# l, F           echo '<h3>'.$site_wide_notice_title.'</h3>';) l' w5 {9 |9 L6 Z* J/ i3 Q' B
       }' ~- L- U/ R2 u
       if (!empty($site_wide_notice_content)) {
/ `$ j! {" J% s           echo '<p>'.$site_wide_notice_content.'</p>';
+ H7 {: s% a  I4 Z& O7 D       }
2 Y  P0 Y' z" A! U& H- U2 k& J       echo '</div>';
5 Y- K4 ^: m' s, ?3 F) a3 z   }
  b4 U$ R# j( W2 Q+ ~1 x9 y   ?>( s9 z( ~1 V. A4 A( K& `
   ```
4 @6 t# M/ \/ ~3 b+ b/ J' i1 F' }9 W; |
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。- }: \9 F! v2 y3 v3 `6 `  R% E, O
/ s, J6 W" \( P, E3 \) d" I. ]
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
% F- H2 X) T# w/ a' m- _" Q! t& [9 ~6 J+ ?7 t3 C6 u
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
0 s& M! C! N& ~' `& o# n; i, R1 z, A+ w$ t; U: O
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:- W$ V+ g& |0 s( J. T! t% c
  \! N( t. b% `! x4 B
```! o# ]7 C/ r0 s
function create_custom_post_type() {
; `5 m  a" Z) d$ `" V    $args = array(  A! s; k5 j" ?5 G
        'labels' => array(
4 B+ Y' s; n/ f5 f' C# w7 A            'name' => '公告',
7 i% M$ t! Z, n7 V            'singular_name' => '公告'
% L, u3 j2 X: ~- D; @4 _, m        ),
* [2 j2 M( e+ ^, U: _! w        'public' => true,# a* e0 ^  j4 w$ \! q* `* M4 Z
        'has_archive' => true,/ Z" t# h9 |# @2 N
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
2 O1 ~0 }4 D& w, s# y2 e        'taxonomies' => array('category', 'post_tag'),3 n5 N- r' G0 I
        'menu_icon' => 'dashicons-megaphone',2 ]4 L) g+ B4 k2 T1 Z0 n
        'menu_position' => 5,6 f1 ?& S7 G. w% d# y6 G3 c0 y- v
        'rewrite' => array('slug' => 'site-wide-notices')3 p  u" f' ?8 I6 @
    );& b% {: N, [& d0 S9 X# ?
    register_post_type('site-wide-notices', $args);1 ~( `, ]- @9 T% R  l$ d
}
/ j+ u' J+ O3 ~5 J- B# Q& Cadd_action('init', 'create_custom_post_type');/ L6 t0 P" }9 X7 v, c5 V
```2 c1 i7 |+ a2 v  B7 U" \, @
; b! Q6 f; k7 t) _9 C
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。' C1 @% E- m) w9 Q# l4 ~& _
$ r! m5 j1 M# ]3 }
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。/ \2 T9 U) c0 q1 N
! \% ]0 J1 d. X' F+ b2 n
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
( H7 V& n7 |2 d1 a1 N6 O
% U' K1 y4 C; I! ^( S' M) [. ^; d```2 ~: Y- x& h( h1 @9 T. Y& w; Q
$args = array(( d4 M' J3 h1 ^5 g
    'posts_per_page' => 3, // 显示的公告数量' [6 c  C( `; f0 I
    'post_type' => 'site-wide-notices', // 公告文章类型
( [' h" Z4 A& j% {1 o7 V    'post_status' => 'publish', // 公告状态
3 m8 Q3 r0 y# F; U    'order' => 'DESC' // 排序方式* T/ k/ i7 [' B0 R
);
8 h1 G5 A4 }3 n* b* y9 ?3 {
0 O. c( `' F8 l* r) E. C$notices = new WP_Query($args);  [7 i3 g& {6 `4 h/ [3 e9 h
if ($notices->have_posts()) :9 B' D1 Z* D+ w
    while ($notices->have_posts()) : $notices->the_post(); ?>
  @& _: f" T5 H        <div class="notice">
2 O  a! X6 y4 ^& G- P1 R$ E" I+ m! m            <h3><?php the_title(); ?></h3>! k& L( O0 Y9 ]# ?( N2 E' n9 i# k
            <div class="notice-content"><?php the_content(); ?></div>, `2 F" N: i/ z2 g' X( K$ t) ]
        </div>5 j  o& D+ w; ]. D/ a- e4 x
    <?php endwhile;3 W5 |, A; v) |' {
else :
, C$ K8 [+ ?+ ]% M- @; ~' ]    echo "暂无公告";& o; E' a8 N3 F  L' s2 h" j
endif;
7 B6 S0 q0 y, |7 F  }wp_reset_query();
& x6 ~+ ~3 _- n/ ~1 a7 a```9 [" P: |8 }2 v* ^! Z4 n3 }% m
* S7 z4 v5 H* S  ]/ n% o* ~
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
, ^  [. V9 D' {/ p
, D0 j0 ]! L  Q# D以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
: S" x9 u% s, Z/ b, @  s2 b* X/ n9 j2 U0 q6 M, a
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。8 Q, H5 n% \5 B. {1 @' W7 H

! I$ [: }* \3 @以下是创建自定义插件的步骤:
" I5 `8 M' @% @, K7 P/ x$ D' s$ K. \4 H  o4 K
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
9 w4 W# a& t9 V* u; X) U9 c: _! p' \" I1 Q0 W& T
   ```5 u8 G5 Z/ f. q% o$ q
   <?php
  }0 {! V: W' t% b+ ^* J; ]   /*2 F0 \* @  I% a
   Plugin Name: Site Wide Notices Plugin
/ O' M/ Z+ W: ~5 t4 k8 q   Description: Adds a new custom post type for site-wide notices.
+ M- P2 T7 }* N6 B: V- e   Version: 1.0, X8 I- v' n) n% R' N% R
   Author: Your Name
" f, v& M( U( U6 j" p. X   Author URI: http://example.com
' K7 r4 }5 O9 J+ L   */
$ ~* Q7 A  e! e5 g; Y! n+ `' ^' T  z3 p  F
   // Add plugin code here...
! C( X: }! ^1 \7 u   ```
" \) c) y) a3 _( i
- a: _/ G1 ^7 d' G$ L1 ?7 G   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
0 v) J8 x' ?% x2 S' o$ `0 h( Y0 n* X6 T9 b' b! ]
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
6 `2 E/ @: N" w. m" E# R* f7 X, _9 e9 g9 q0 P" G0 b, ^
   ```( I6 ]3 E! X; c0 I. H+ ?0 T1 V7 Y
   add_action('init', 'create_custom_post_type');/ l* A+ l. y, a- e2 S( C& t
   function create_custom_post_type() {
" x& P) b; x% q$ K& ^0 r1 J* U      $labels = array(- j- r. W1 b+ h4 U7 J) _# R
          'name' => 'Site Wide Notices'," }4 L  {; c& l. q7 E5 s( a- {
          'singular_name' => 'Site Wide Notice',
& J. V& ?6 o6 H5 Y. n) T! J7 ~          'add_new' => 'Add New',
1 A. @% ^: }% i$ A) G6 m; S* H          'add_new_item' => 'Add New Site Wide Notice',
5 d$ Q5 e! F8 M& O4 i' Y          'edit_item' => 'Edit Site Wide Notice',
# J/ u2 v: ?+ S  e! Z8 f          'new_item' => 'New Site Wide Notice',
; F: [5 A* D; c" C, _. }- E1 E" H          'view_item' => 'View Site Wide Notice'," k$ S# _7 q5 h  g$ f
          'search_items' => 'Search Site Wide Notices',
, `% B+ x4 v! G+ J* H          'not_found' => 'No site-wide notices found',
, p; J; t. ^; S; g          'not_found_in_trash' => 'No site-wide notices found in trash'+ w& P0 r( x  \! W7 i
      );
  T, B% ^% ~5 N; E
& D( f8 ?  o4 z4 L5 k1 i" I  T      $args = array(+ _: x6 S. V. N& w5 v
          'labels' => $labels,; }+ n" r7 d0 N' m* m. N0 Q
          'public' => true,2 e+ T1 _" a& l6 [8 A
          'has_archive' => true,! [1 Q+ S8 Q- x6 M
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),) Z6 h. C8 `2 G, d$ c
          'taxonomies' => array('category', 'post_tag'),7 M4 v2 H* C2 @* u' N
          'menu_icon' => 'dashicons-megaphone',
" x+ l" c* V$ Y8 E9 p          'menu_position' => 5,+ o. k' S1 h  o" S* h  l" E) M
          'rewrite' => array('slug' => 'site-wide-notices')
- Z7 y* C) i" G) s- j* i7 O      );" M8 J2 q% R- L) @2 r

% e2 U! O* X; D0 L6 j  a5 r      register_post_type('site-wide-notices', $args);0 [+ X9 `6 [) o, ?- I
   }
. a& Y) |% y( G   ```% ~0 ~: v" |  m0 |6 r1 l5 E

: ]4 H8 I; a8 ^8 b   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。1 y2 J# p* k8 J9 E6 s
6 h: k0 ?% L. @' y* s
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:9 d4 Q# X  E6 h, M/ }

$ I% b& k+ Y% o6 h, x8 {   ```7 f/ B& {: V+ \  G2 E' }% N
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
. J7 h7 r( E6 s* d$ C" H   function add_site_wide_notices_boxes() {1 c1 K  n) \/ [0 D; _; j
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
$ D: [9 E# i8 r* }0 v, k   }; t+ s/ |1 [# G, n, f
5 K5 i8 O# _% @3 U
   function notice_details_meta_box($post) {
0 Z0 p. b. \& A' N5 b      wp_nonce_field(basename(__FILE__), 'notices_nonce');; \, }; a+ }& x9 [
      $notice_title = get_post_meta($post->ID, 'notice_title', true);2 R- t% V4 w3 E) t* Z
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
+ W( j- ?- E6 q6 [# E. x5 m      ?>4 |/ H8 u8 [6 G2 h
      <p>, ~. O$ v3 V( L' t/ Z6 ?5 `
          <label for="notice-title">Notice Title</label><br>/ }6 A3 q& V) A9 L+ s8 K& k' ^
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">6 s( K! p  j% C1 G3 E8 Y
      </p>
0 W* j0 Y8 `, y9 }& W* n. u      <p>: I% W) o0 l2 L; ~. F( z0 T
          <label for="notice-content">Notice Content</label><br>
- X$ h: w8 Z. g. s7 z% [          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>6 e: Q1 W. @4 C% r2 ~% O" {
      </p>
! x6 \# R. A& S( N* _      <?php! z3 o5 _: A: U) Q  ]
   }
, O6 j& F' x5 h# c: P
- R  j3 {, F3 H1 v( t1 w! N3 l( ]   add_action('save_post', 'save_site_wide_notice_meta_box');
( M# Q  O5 t/ Y   function save_site_wide_notice_meta_box($post_id) {* z9 C; s- ]6 G6 ]  s2 G
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
3 H+ q& I* r3 t         return;
$ v  o' i  k' b& P" t; D      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
' ]" L* s+ o7 i' ^1 x         return;
3 ]( b3 _( w) p; A! {
! ^; V; Q% Z1 H) q" [8 z4 q      if (isset($_POST['notice_title'])) {
" l  j. B3 F; r' D. O          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));) h& r) i! ~: g
      }+ q, U" g1 j" B$ p4 ^/ z4 ~( {- {! R7 Y
      if (isset($_POST['notice_content'])) {
, Q  D. G7 r3 N3 l* ^6 L6 `          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));4 r, i' S, L+ X8 g
      }- B. N5 _. I2 U% S/ n9 |! h- J) A" z
   }$ h1 q. z$ B) ~  b: U
   ```9 C* o$ F5 C2 B0 G0 e

) V" l/ \# ]9 I' r5 ^   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
7 e6 B; @( I- F4 n! i$ R5 o2 e9 s" q
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
4 d8 e% G; P2 u' M' P
1 X0 q+ X" H5 O  v) i. u   ```0 r1 P; Q  o7 R2 z0 _: V8 p) f: Y. [
   $args = array(
4 j1 n, @3 G7 R+ P1 y' G      'post_type' => 'site-wide-notices',
( F5 X9 x6 i5 \. _0 q9 n      'posts_per_page' => 3,. F  d3 h# e! C$ M
      'order' => 'DESC',
' t6 G. E7 z. F3 `. H2 ]      'orderby' => 'date'
& H! X& ~: H) ~/ k: V* l   );/ k: F6 B+ w( d2 O9 ?
   $query = new WP_Query($args);8 s$ S4 D5 c- p4 ?4 o) C# L& [
   if ($query->have_posts()) :
; V! s1 i0 `4 L. {, [4 b( m      while ($query->have_posts()) : $query->the_post(); ?>
1 i4 ^: u$ L: O( [% T& b          <div class="notice">. L9 E& B4 {# e! x, k$ T0 t' T/ a
              <h3><?php the_title(); ?></h3>2 @  Q) Y  j/ j1 f
              <div class="notice-content"><?php the_content(); ?></div>$ H# }2 C: h, M7 b
          </div>
& `, M* g0 D5 t0 Z      <?php endwhile;( Y  W, E# Q, [; g2 A$ Y
      wp_reset_postdata();
* [( ?7 L7 D+ a" C& x7 z, U$ j   endif;
- Y4 y, H& u) D: P   ```
( t: [4 H: v* {4 V! g1 s7 L, z, [6 j( ?7 w2 ]8 J+ H1 g
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 03:41 , Processed in 0.013744 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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