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

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

[复制链接]

338

主题

521

回帖

3468

积分

管理员

积分
3468
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
! u6 `7 o) H- F+ ~  L4 E: k" \
$ s$ z# Z: h1 w% U% X/ ~: `4 l1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
3 o* |* T5 S( D. M, U
* m% d1 d: ]2 l2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。  {4 F; r2 g2 A1 K" t: J  C, W

, n; n7 |+ l: _' M( c3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
$ p# ^' o" F# {; v3 A3 ~4 g8 i, h
, a& A' X' x+ s7 x; H4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。+ l, y9 C- j; K7 q" T3 x

& ~, U' j4 ~1 G. V7 _注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

521

回帖

3468

积分

管理员

积分
3468
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
' H; k7 I9 j7 S  G) `9 }' N! j6 L8 M0 g$ l7 X( w
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
% ?3 r( J( p* j7 |. Y0 w3 R* O: k0 `. K$ `- e4 {* @" Y! C
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:% L3 X) Z% Q! W* X! _0 e

7 y( Y) z: Z3 H6 b1 e   ```
7 z8 U  Z9 d. T) q) T. C   add_menu_page(
* W3 ?+ H" s' e       '全站公告',8 L! ?6 }# H2 B
       '全站公告',
# H9 v+ {& z1 f5 b. a( V       'manage_options', //需要的用户权限5 P* Z; j# o7 j& p8 L
       'site-wide-notice', //后台页面的 slug2 _% ]. K/ l5 [) D$ X0 P
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数5 m1 o  }, G: J8 s. g- B* O1 D
       'dashicons-megaphone', //用于显示在菜单中的图标
+ P  i+ W6 ~1 N5 P, f       30 //菜单项的位置
% h  ~9 u. l6 V$ N4 {& V% z1 }   );
. l1 v# l% B1 D& S$ y   ```
# d' t! c: k+ P. m* u& W7 K& b, H6 M7 _2 Y8 Q1 A
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
; S& U$ [$ W# V; t/ L8 S8 h# Z* }8 u( M/ k/ h0 n; s; d
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:! W7 |0 h7 \* j2 ^/ b4 D$ _7 o

. J8 Y8 G4 y2 |2 O# z8 a% u   ```2 I  ?" z) f" _4 R8 n2 O
   function render_site_wide_notice_page() {# ~3 U2 R0 i! b" O
      // 渲染后台页面内容
3 O8 v/ k- [2 Z0 m      echo '<div class="wrap">
8 ^& a1 m  B4 C( ~! q) R3 {          <h2>全站公告</h2>3 ?! z. u: o5 S6 l
          <form method="post" action=""># M" O! N) n: a
              <label for="title">公告标题:</label>5 Z2 `+ h; `: j: k0 I
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>2 B+ l5 B; o4 X# f- V4 o+ p  Y! h
              <label for="content">公告内容:</label>
) N+ i- y5 q. ]% H' j9 s; d              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
2 I4 m5 x" j  ]4 m) K, [              <input type="submit" name="submit" value="保存设置">0 V/ w: d6 v+ p
          </form>
/ h, P2 ?( ]5 ]1 @2 z+ Q9 s) h      </div>';1 h: a. e& A0 g  X  O% D

- \7 ^9 z1 n- ]      // 处理表单数据0 I+ f1 \( z3 [/ h' }
      if (isset($_POST['submit'])) {
6 g% Y0 K; B6 T5 b9 e( p          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
, C( k5 n7 e8 @8 h5 z          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
4 C2 Y4 T% `8 a3 i5 c      }
: H5 I2 Z5 ^$ U8 Z& ]; T: X   }7 `; b& P; q& I1 I& o
   ```
9 r0 H6 v3 A7 c) p/ h3 R2 u9 s
0 M" l" F! U% z1 N5 \4 A7 O   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。( V! R& X' l5 o3 T7 r; s+ t0 ?

+ c7 i! }1 M) j' S/ Z! n$ V) m3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:1 }/ V/ v% z+ t. p) Z  D
8 j) l2 N) M" c9 G
   ```
. |- d$ L& u/ h( E5 {# y  M/ G" K: m   <?php/ @0 M/ z) A+ i+ n' C! y; f
   $site_wide_notice_title = get_option('site_wide_notice_title');
6 J0 q4 e1 |; ~# c0 r   $site_wide_notice_content = get_option('site_wide_notice_content');0 E4 @0 }+ R! Z7 e
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {; {3 z6 v! s- e6 m
       echo '<div class="site-wide-notice">';
0 F6 Z' Z, [' q5 i7 q% Y) v4 u       if (!empty($site_wide_notice_title)) {# Q3 O4 E$ T! L9 p( N4 W
           echo '<h3>'.$site_wide_notice_title.'</h3>';
/ d$ `2 f$ _  {! x. N$ q       }1 O- {, p! e3 R- t2 ~
       if (!empty($site_wide_notice_content)) {4 T' M2 d; l/ c/ `+ B4 f2 ~
           echo '<p>'.$site_wide_notice_content.'</p>';( Y9 r/ x! M/ Q3 C  K; w' V+ X
       }( Z" s' k" M0 T' u% r. n+ c3 O
       echo '</div>';, |  ]% J% [4 B  H
   }
9 M; s& ^. [3 c1 g3 C- ~' x) c   ?>
$ Y; F: Y: @/ G- A: j6 F   ```, p8 x( x6 w% A* B; m8 G4 P* e

2 b* m/ H& [: b; a/ ?% Q   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
, D9 ~/ v+ |6 l/ h8 e' `* Y2 q; h: T! k' n3 g' `) F% N
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

521

回帖

3468

积分

管理员

积分
3468
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?/ P0 d+ g/ U% b* D! ~4 @; A8 t

8 }2 E* q6 x2 D& z# i' p$ e0 D4 f您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:* C" H* v1 T% c# a
9 _" Q* W* d/ _: c9 m: T
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
* P" K3 i$ \8 }9 V6 g1 b, k7 ?* v
. Z8 N$ m# @9 |, O' o```* e8 V8 r% Z7 L1 I7 U8 v
function create_custom_post_type() {
' Y) Z; t* l6 j3 c) g8 A4 t( f; Y    $args = array(
3 p7 V) J+ k3 y        'labels' => array(
' C7 U1 J& G% @( ~            'name' => '公告',, g. \0 L% ?3 x) Y6 h3 d% c
            'singular_name' => '公告'
) j* _. `8 v7 g6 T3 m        ),, _1 b! y$ `" V: S& A
        'public' => true,9 A/ Q3 ^# i4 a' b
        'has_archive' => true,! C/ y! e; {0 z( f7 y7 A5 `
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
9 p$ x: c9 T9 s/ |' r# d        'taxonomies' => array('category', 'post_tag'),9 Y1 s; m7 R0 `8 }9 T  z) G
        'menu_icon' => 'dashicons-megaphone',
$ _( a4 X, s% `( V( B        'menu_position' => 5,
+ z. @2 r9 r8 ~$ G        'rewrite' => array('slug' => 'site-wide-notices'); _% n9 h  D) m& }  ~: ^
    );
& k' v" n( M: c+ x    register_post_type('site-wide-notices', $args);, U% y' W7 z& n, Q: W: w4 |
}
- o% ~0 B' E& H" E  z; E/ Radd_action('init', 'create_custom_post_type');
( ]" r$ n9 J/ T2 }```5 l& W9 U5 R' B" F* X: S

$ [- c" A1 Q9 A' n( G- k在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。2 ^* u* y* b$ g7 l2 O: J, g& X

. c# n& g. R' W4 q9 ^0 Q0 V2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。1 F7 l) A8 c0 X; A
9 g4 b8 p; n' M9 U+ U2 r
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:4 n/ U7 g! W0 Q0 y

+ w: B5 g* O+ h# [# ~```! c5 t4 R9 |% _/ F# d  m
$args = array(
* |+ a! O+ c0 Q' M- B4 y# m    'posts_per_page' => 3, // 显示的公告数量5 ^9 G) t4 l4 U
    'post_type' => 'site-wide-notices', // 公告文章类型
) g  n# h( ~0 i3 x/ ^    'post_status' => 'publish', // 公告状态
* d! q9 x2 J9 s: s) _/ v3 K    'order' => 'DESC' // 排序方式
4 r! i: G+ B4 D9 g; ?& }' e);" ?$ H- h3 G/ F# y* p5 U
/ L8 m* ^9 Q3 R4 Y
$notices = new WP_Query($args);, Q& T7 g' W1 a; T
if ($notices->have_posts()) :6 \, D& Q8 v4 t, A
    while ($notices->have_posts()) : $notices->the_post(); ?>
6 k( f" Q: B( j! `8 U# `( t& N6 r        <div class="notice">
. p( b4 n7 y; [3 c, B' Z1 [            <h3><?php the_title(); ?></h3>+ V* N* J) f7 g) o) a+ H) N
            <div class="notice-content"><?php the_content(); ?></div>
" d: `& ?$ n' z0 _+ E  g* d. U        </div>) d4 B, {0 v! o
    <?php endwhile;
1 b& o0 f/ i  [% \6 g$ {- Aelse :% B) _+ ]' L4 ~! `
    echo "暂无公告";
) `1 \6 \& o. F$ J5 R% I( h+ xendif;
, b4 g5 {4 N2 L' V' N* r3 Twp_reset_query();* y8 h# X6 s3 S$ p; [
```
/ c7 V0 b  q6 _3 C7 z! h; F/ t7 B; _) S+ @" z+ i3 r
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
  [! F" {5 \0 f- C3 D
) |+ [: I; r* w以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

521

回帖

3468

积分

管理员

积分
3468
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?- m! ~: W  s( y1 I

; z0 N/ _' s, P2 ]% U5 C, g如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。' ?: l7 t8 X" ]$ U- q% O8 Z

/ K/ x6 ~/ B1 m* ?& @以下是创建自定义插件的步骤:
7 ]  a6 N; R- }4 B- N3 E4 y: B. M3 J! g5 L
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
" r$ D3 o5 z: M" P( w7 u6 p  p! o+ D) Q8 A4 Y$ O) y7 u- X
   ```
5 y4 ^  X3 f7 \   <?php# X0 A# H; N# Z& |4 d
   /*
( U7 p* L. N* `+ F. I. \, M   Plugin Name: Site Wide Notices Plugin( f8 Y, ^4 F. a' M: o
   Description: Adds a new custom post type for site-wide notices.
7 {- C3 J3 D5 J; E   Version: 1.0
2 T! s& Z+ j* X$ |' k' d+ |   Author: Your Name
9 w0 ]( j. i2 r) _( s* S   Author URI: http://example.com
; O' n4 ?( [7 I+ G/ N   *// R7 V: ?" Y. |9 E! _  b

- l! \1 T9 s0 z  e# A* k: a   // Add plugin code here...) s9 j9 K" r) n* z7 g
   ```" l/ P! [# i# }1 J$ [7 I3 S3 j
, A, r/ }% D5 y+ w4 t
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
) c  ]9 U0 u# a  V) g; ?! W* e  A- k: e  Z2 e/ n( T8 p& `. m
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
. P0 w4 F  h) d; c# a* A
- ~6 V7 D# u2 F/ b6 `, t( g* k2 ~! t   ```# p, q4 S- a$ u" O# X
   add_action('init', 'create_custom_post_type');
: @  p9 X! a5 x7 y, y  f2 s   function create_custom_post_type() {
1 K4 U9 M- Q: u' r1 A      $labels = array(0 w1 a# `2 E1 `4 l
          'name' => 'Site Wide Notices',) O. ]6 ], X7 w& H
          'singular_name' => 'Site Wide Notice',+ j' d, \: B! C7 i0 C, {
          'add_new' => 'Add New',
2 b  a: J4 ?! A) [- a- z% r          'add_new_item' => 'Add New Site Wide Notice',- p; ?% d  a& b* o
          'edit_item' => 'Edit Site Wide Notice',
8 f6 C6 U, O( @          'new_item' => 'New Site Wide Notice',
1 R6 E8 O3 R2 k2 ~" @, \* ]          'view_item' => 'View Site Wide Notice',5 e, X1 }9 g$ {6 H
          'search_items' => 'Search Site Wide Notices',# v5 }* [. w, `+ v% S4 ]9 `  J& M/ |
          'not_found' => 'No site-wide notices found',
8 [9 Z3 a8 l6 i* j1 s; |( u# J9 t1 y, c          'not_found_in_trash' => 'No site-wide notices found in trash'
' j9 `( }5 _% i1 j      );
& M5 F8 ?5 Z( R) T# I( X- Y9 P, Z' W& |9 w
      $args = array(
# ]8 a# {# `$ v+ `          'labels' => $labels,/ C6 o- ?% q6 c; S+ ]
          'public' => true,9 }8 R9 ~3 X! t. Y( q
          'has_archive' => true,: r" \) c7 G( }0 ]$ g
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),- A$ g) e5 W$ x5 u) V1 s( Q. K: q$ D
          'taxonomies' => array('category', 'post_tag'),* q1 O* J/ U# ?" Q  c
          'menu_icon' => 'dashicons-megaphone',0 w1 r' y  _- c5 [6 p% K
          'menu_position' => 5,
- q* \9 J% Q  p4 x& ^) D+ z, W% L          'rewrite' => array('slug' => 'site-wide-notices')! Q, \6 x' w: Y7 d4 u
      );* W+ d8 d& h6 Y' N! d6 \# ?
; e/ S& Q) m" b& y
      register_post_type('site-wide-notices', $args);
& @, l4 e8 e! n5 i/ U4 I/ ^   }- W% i; A# y- ~! D" \" z
   ```4 K' z4 R& W6 D

3 }3 F! ]$ K4 ~" c   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
* k8 B3 I4 `, L* S
! V9 a# p  L7 h! Q4 O, A: L7 S+ c& |3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:( J( |. K3 ]5 f: n. f

/ ^& a6 R) p2 G   ```! c" J/ L0 X8 y% k8 U
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');' f0 b. s% M# H6 D
   function add_site_wide_notices_boxes() {
9 Y$ V3 B& }* `/ g      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
6 n5 e* Z6 h5 B3 _0 X/ p  ~   }
6 Q' `7 q! K& t6 T* u1 a; L. \7 l
* Y, Z6 \6 ~: _0 n   function notice_details_meta_box($post) {
4 g$ E) D8 Q8 ~0 Y      wp_nonce_field(basename(__FILE__), 'notices_nonce');
- j5 I4 a( l& G& T9 y! J3 r      $notice_title = get_post_meta($post->ID, 'notice_title', true);
5 S. O2 @' E5 m+ P( d, z& O      $notice_content = get_post_meta($post->ID, 'notice_content', true);
- u" [) q. A  G2 J2 A" i      ?>
0 W7 _+ `! I, o/ v7 ]  _) p- _0 A  `9 G      <p>
: U. H3 H5 e9 B          <label for="notice-title">Notice Title</label><br>5 ?( C; {4 e* C# ^: z. P
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
2 ~2 L  i, B) D/ ^5 L. Z) k      </p>
. w0 ^4 Y0 Z1 S# a8 L8 P      <p>+ Q7 |; \6 p% _! C. H% U% \' m# O2 J
          <label for="notice-content">Notice Content</label><br>; O) N, w4 y5 @
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
$ K4 c6 L! [: T* W+ e& ]      </p>6 l, W  A3 E3 L3 e2 E+ ?* v  o
      <?php' I  X) d! h  V  m: j
   }
6 j# i0 ]8 G+ q" D& U" S* J* x, G& @5 D( u  w: {/ a
   add_action('save_post', 'save_site_wide_notice_meta_box');
' ^' @* Y- y& t' _: J* u   function save_site_wide_notice_meta_box($post_id) {
4 E# U0 `3 c! ]8 b' Q- ^0 O      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
: {# w5 ^2 `/ g& y* o         return;: w$ Z% i2 M& q5 R. z
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)+ V' `$ f1 k# E
         return;
, e3 E$ a$ E0 {7 J4 Z4 D; z( `3 r
# Y: \! K: Z7 L0 O. W      if (isset($_POST['notice_title'])) {
+ ]' v8 j* r& b3 y          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));3 W% e- n8 O) d9 h$ g$ f
      }- z# ^2 P& R2 r. M
      if (isset($_POST['notice_content'])) {* m# D1 K- ~' m( Z
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
5 V0 y6 g$ y7 c& O: c5 |. ]      }  O; E6 t; v& b! M
   }
7 C3 t  f/ F* i% ^7 q; e# k5 I   ```8 K  r3 N5 k1 m" O3 f
; E" V" R7 O" {
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
5 n* C% c5 X  l- t8 ], k; P9 F# D: Y4 ]2 w/ ]3 s/ i  x& |
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
% @( t5 H3 ]7 \4 D1 y0 H- O- J1 h6 \; ?6 V9 l/ l' F  \
   ```0 H; D. R9 E( [
   $args = array(
: Z. N% r3 i% D7 O      'post_type' => 'site-wide-notices',
+ J  U3 L8 w, |7 i      'posts_per_page' => 3,! C* |# u& j# O+ G' j, \5 F( J
      'order' => 'DESC',
- n& f, W& V+ Z0 n1 ~      'orderby' => 'date'
# A, ], ?2 i2 E+ B   );% B3 c: W8 P8 b: ?; T! d
   $query = new WP_Query($args);
5 X3 s1 ]: D! l7 x4 Y* @% B2 ]3 h   if ($query->have_posts()) :5 |6 }+ ?$ |. ?; F3 ~9 m) V
      while ($query->have_posts()) : $query->the_post(); ?>9 N9 Q% n& I, L% T" @
          <div class="notice">
$ U/ s9 @1 _9 ~3 Q: A4 y              <h3><?php the_title(); ?></h3>
9 _: Z5 V# Y' ~. c. Z              <div class="notice-content"><?php the_content(); ?></div>
( Z; o- C% U  _7 a          </div>' I; T! G( d; T
      <?php endwhile;
; ?  C  d: T$ c5 l! [) _7 B% i      wp_reset_postdata();( j# i2 J8 r1 c- f- k+ H. a
   endif;% z$ y, |( h9 |+ t( Q  f2 @$ r0 O6 I
   ```& W, t5 b8 e% I4 \" F3 K2 m
1 y" ~5 X3 l: m
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-5 17:33 , Processed in 0.017271 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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