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

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

[复制链接]

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
1 P0 u# u( `' N; C) h: ]8 N: y* G
) [3 X2 t' Y1 p! Q' Z# k$ i: n' j+ ~1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
( _1 D  P7 a- |3 Q
6 N6 A8 [! x' Y3 ^7 G2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
  g$ i" v5 q# V& F0 a' l+ [+ c; D' v' ~! |9 S" Q" P# v) e$ E: K
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
$ e* D$ b! W( c# F2 q% F) c3 y) B) n2 s& Y+ Y5 ~
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。7 D7 E7 L# d# @! ?) n1 G5 `

" q1 K5 I8 L8 z8 i8 b3 G注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
$ h/ }  C5 @5 b. ?8 u' J' T/ L, h+ N  N' ^: r( K
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:- z8 {3 `$ Y& U1 S9 K. n  I8 p

7 f: I0 w/ |4 Q" ^; _  j& X8 _* C1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
9 W3 q' c' F% D1 D. V0 N
' ]2 O( G) x3 ^8 Y   ```
7 i' w7 j7 D6 r5 r% _+ e! A   add_menu_page(
2 o7 i) o8 _8 b& t/ c0 G5 V8 _7 c       '全站公告',
, l+ b# \, [% i4 `$ W$ w& h! u+ [3 A       '全站公告',
. |2 T+ {2 h" W: V       'manage_options', //需要的用户权限9 b2 a9 _' ]6 g
       'site-wide-notice', //后台页面的 slug: q$ m- v, ~; e% B/ X6 P5 V9 ~
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
' q/ p( I+ u, ]$ W! T' I: L0 p       'dashicons-megaphone', //用于显示在菜单中的图标
- E. P$ B/ @4 d2 i  P2 r       30 //菜单项的位置% Y  q: o5 Z4 y# h, _- ^
   );
1 r3 i* P* \: n: ]   ```# _, e% k# s. B1 N* i# r( d, _  V

* _* f  k4 Y5 ?- a6 I   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
5 K. B+ p0 i! W  v, R7 c0 r8 v5 ?6 ^1 w( m" o
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:7 f, A- ?; h/ U9 I% w

; Y- W$ x4 M2 W3 U" a8 C( u& m   ```) A6 g! R# c0 t; _& U2 K% S* E) Z
   function render_site_wide_notice_page() {% K* O% L! m- h, O7 F6 b
      // 渲染后台页面内容
2 _( `8 Y% K, e7 _9 q* H      echo '<div class="wrap">8 u7 j& n9 X- r3 |
          <h2>全站公告</h2>
- k: s% H+ w4 Z9 B+ _4 K1 D# K/ z          <form method="post" action="">8 L+ R/ Z7 I: u/ d+ m6 b
              <label for="title">公告标题:</label>; y8 H" Q% n+ l7 X3 u/ q. _. w
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
- B" Z# A* X) ?' S# D" Y              <label for="content">公告内容:</label>
) K# z0 A9 s: l( W; a4 r4 p' ~              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
% ?- N" w3 O  v+ ?0 A" O              <input type="submit" name="submit" value="保存设置">
3 g& _. o! @7 S4 c! X! G& i$ ]          </form>
# I) s# |) N' q( q6 L0 P; D) c6 J      </div>';- f3 R8 B- C; H0 @
+ E, B* K& y) E
      // 处理表单数据6 J7 D7 @4 v$ J( ]3 L+ b8 l
      if (isset($_POST['submit'])) {: Q/ Q# H; E6 C2 m7 w3 w- P- W
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));" q7 V/ m# R7 J! v
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
) a/ n6 [  k- D: F      }
$ O( V4 H; P  h! V3 @% U   }
6 U/ X9 k6 h# V: q  t  X! ~   ```3 ]; v7 f7 Y# E: k  i" J2 _
! d! M& X* ]+ D; p1 a0 w* [
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
7 z" O( ?+ j; W. |9 o" H0 I7 D( W/ a; a* M
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
$ {% n( ?4 z9 T
% z" @/ n7 k" P1 i/ [   ```
- S4 {) @% P" {2 i# _/ b, M   <?php
& H+ v1 N: f' a( _, ]2 G   $site_wide_notice_title = get_option('site_wide_notice_title');$ o$ e( M8 f- @, j6 v. y% M' S
   $site_wide_notice_content = get_option('site_wide_notice_content');( X, O! b9 l  M: {; I! R. q
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {; o7 M- b+ W, D1 o- u0 n
       echo '<div class="site-wide-notice">';
3 d8 e6 Z- q& b8 l5 `       if (!empty($site_wide_notice_title)) {
; K/ m* Y9 g: I* K+ w8 q4 f           echo '<h3>'.$site_wide_notice_title.'</h3>';, m. V& N" j$ \/ f) _
       }
  H# M9 m, _6 W. ~2 O  m( a       if (!empty($site_wide_notice_content)) {1 D) \# W& P. f3 `
           echo '<p>'.$site_wide_notice_content.'</p>';
' n8 e$ P1 k0 s$ w! H* j       }
6 S# w1 `) C3 w       echo '</div>';
5 T' X. o. s0 \% S   }7 w4 @0 W! `) a7 A6 J
   ?>
( e2 i0 N* N3 D' u   ```  A4 W0 A0 j0 _' ^  S$ `* H
; g# ~8 M, p0 {  R
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。$ B' N" u  i6 I& t& x/ X7 U1 x

0 E' x# `6 R) L- c. B! E请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
7 C; k5 Y/ t3 S9 Q$ C! J, ~# z
- `: E# a* j, l$ v! t  K您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
1 f) X$ {; m3 I: D6 k' `0 n7 f/ l* @* @7 s
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:# W9 u+ ^1 I3 W5 l" B
0 P" {& X3 u0 k& F
```
! Y4 M/ v" O4 R0 bfunction create_custom_post_type() {
) @. z# {3 O( [2 `4 f    $args = array(
2 C: J, j( F! B% J        'labels' => array(
1 J/ t  o- \5 H: o6 m, P            'name' => '公告',9 A7 M; P- j* L  y! Z5 _4 ]! W5 N5 K
            'singular_name' => '公告'# m- w- m% O; i+ A( f: w* \7 e
        ),
8 H* m. W0 J6 l$ M9 n' V        'public' => true,8 e- U8 ^1 H, f! }+ r& {# H
        'has_archive' => true,+ z# i; v1 f( h. K! m! o
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
2 k- @* S& W7 x2 X1 y, o4 n1 |        'taxonomies' => array('category', 'post_tag'),
* z2 ]5 @% m, V. n+ m        'menu_icon' => 'dashicons-megaphone',
/ a  n; `7 N, C4 O0 T1 w+ a        'menu_position' => 5,% z1 J: l) U, u! p) {( `- U
        'rewrite' => array('slug' => 'site-wide-notices')
9 y: W2 S! ~! P2 e    );( N: [* w# y% M6 w2 }) L
    register_post_type('site-wide-notices', $args);: r. |1 }% d9 P3 c9 p
}
. e% C5 H/ Q, k, X# g  B% Padd_action('init', 'create_custom_post_type');
4 R1 w( S* K7 x, |! X" r3 [```
8 v( X7 H# Q: N$ X: k2 ^* d6 b8 T+ y0 D, w# x
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
/ [( Z. H' y" Q, S( ?' ~" Y8 z3 w3 A& I# O
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
! I. C9 ~3 W8 R( E$ Z! q3 ]: i2 f
, p0 z1 c7 |6 x2 _3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:$ A, R4 E: `2 [$ P9 j
" ]' D) ]7 g4 O5 a, a% a
```& Q/ E/ p, v& B9 }) i# |
$args = array(! F. p! B# c! q4 [
    'posts_per_page' => 3, // 显示的公告数量
/ y) [3 k1 k/ t) V    'post_type' => 'site-wide-notices', // 公告文章类型
4 M; q& d) z1 a6 e; {, j; l% w% g    'post_status' => 'publish', // 公告状态: P; [  c7 h: _6 R. R+ H
    'order' => 'DESC' // 排序方式, F/ y( \) s, a1 z: U, e! w
);
5 y" t/ Z( ~  ~- [8 f3 K: T( O1 O# R( O# ]/ s: f
$notices = new WP_Query($args);* n- j% M) L: X: Z$ Q* E6 X' S8 ]
if ($notices->have_posts()) :1 q& Q/ ?- _. C! n
    while ($notices->have_posts()) : $notices->the_post(); ?>
* i  `( n, d) Z: z        <div class="notice">) O5 x, P: e( K
            <h3><?php the_title(); ?></h3>: {" E* Z& Z( Z
            <div class="notice-content"><?php the_content(); ?></div>( I! S2 j" v+ L% m; c# h' e
        </div>, B6 g3 U" x4 l  Y! \. h& f$ n0 ?
    <?php endwhile;  X8 J+ h9 ^, n, l
else :
' a, R- `, y, y$ H6 I# X    echo "暂无公告";* |& w, E% E* ?2 i$ J" Q/ k
endif;
! o4 |4 h. m- r' v2 s, s2 Kwp_reset_query();0 f$ N" _1 P* e4 t
```
6 R% R, t! h: G+ K; d# l% p
# x' v0 b, Z* w% l这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。' z' X% e9 ?( X* x( U5 P, _
' A+ Y1 X8 t. s/ i
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
* w; g- `. P0 c$ z: V5 _6 q; ~; F8 z/ C+ Z! D; W! i9 r
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
5 m+ Z' r$ s# r: M" @( l0 A& P* Y: l0 M- g" \0 g& m( x
以下是创建自定义插件的步骤:
$ Z/ ]2 i" _/ \
3 J% s) D) t& r; [, \1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:# V' l% c0 D7 ^7 |; o" B' |

- q1 O  o( T3 p( R   ```; a1 m1 J$ C  a( C  K+ l
   <?php
0 O. U! Y1 q/ L% A" e) X2 R6 d   /*
& t, ?' i) D& v   Plugin Name: Site Wide Notices Plugin5 b$ `) a) [5 n: F3 U+ u
   Description: Adds a new custom post type for site-wide notices.
6 j# J1 F! i$ J( B2 D; v$ s  l   Version: 1.0
4 x& g9 z8 r% g3 [1 b" `  Y) t* z) J   Author: Your Name
) ]4 U) x- v5 D) V  g9 m   Author URI: http://example.com
2 B" a* U9 g/ J6 z1 A4 d2 S/ u   */# [( i: s9 \0 F* c" n; x

& z9 w! |1 v! u% Y! s   // Add plugin code here...
; k/ k5 N7 @$ D: h% @6 Q   ```' W, v5 K1 r  ]! c- ~

- c% R' R4 s4 m* _   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
9 O% k) r! R( e  F0 E% V
- z# ?3 Y! ~8 k2 {, a2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:" a# X+ o- s3 G$ w/ K

" b( J4 W. C3 e" L   ```
, b' X, U" [; Z3 P5 d* O   add_action('init', 'create_custom_post_type');- I  f1 F- C6 D
   function create_custom_post_type() {. ]" o, V" l2 ^3 Q* {2 Z
      $labels = array(
, W) s( L6 w0 Q) s7 l          'name' => 'Site Wide Notices',
/ K# G7 b0 P: P3 q! l% i6 c          'singular_name' => 'Site Wide Notice',
# ~" s/ {0 k& R4 \1 i1 U" g          'add_new' => 'Add New',0 ]% q  m- g, H+ W: j4 c& i: t* c  h
          'add_new_item' => 'Add New Site Wide Notice',& f' H) ?+ Y' j* j/ S
          'edit_item' => 'Edit Site Wide Notice',! X1 b$ G9 k4 m* ^) j* D
          'new_item' => 'New Site Wide Notice',
# |; P! }8 ^" f5 g2 I$ K( \          'view_item' => 'View Site Wide Notice',
3 w% \2 g" N8 q) q( t          'search_items' => 'Search Site Wide Notices',
. h8 [) Q4 t) u5 k2 J          'not_found' => 'No site-wide notices found'," C' O( U, i! n
          'not_found_in_trash' => 'No site-wide notices found in trash'# {# L* h9 g. p7 h( D3 y9 r6 s# R( ~
      );# N# R/ Y! u- p3 q) L5 z
' {: [3 r7 ]7 y7 @  j) `
      $args = array(
( e0 _- |; Q, y; ]- L          'labels' => $labels,2 p3 d' @: w- L, P5 _$ A5 G
          'public' => true,
- ^/ Y* r* x6 Z3 N4 F9 ~          'has_archive' => true,
% o: w; A! q8 m/ q& j3 c          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),0 {. a6 ]0 y4 Y, {" P
          'taxonomies' => array('category', 'post_tag'),
9 z$ Q/ m# l* \          'menu_icon' => 'dashicons-megaphone',9 j9 A( ^3 B  K  ~1 ^
          'menu_position' => 5,
, Z5 O7 w  v. D2 v* R6 X5 x          'rewrite' => array('slug' => 'site-wide-notices')
5 Z: X- i& K! O* w7 R, d      );3 S: ?8 R( f  ^& p: o, G

' D4 Q4 v1 `; G+ l- A% F4 j      register_post_type('site-wide-notices', $args);  o8 T: Z1 e+ r; L
   }
) Q: |7 J' {  W: L. n( F   ```, i8 U$ ~" I; j( {$ M- B
7 w2 v) {  d/ U7 Y& a- c1 o* P
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
7 G0 s$ e- T. |1 v) i8 G
$ C1 @' `% F( Z3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
; G7 P9 B! E6 d: E; b) F$ O" _2 S5 ^4 }7 K" X$ N7 v( x9 f2 u4 O
   ```  i7 ~: F6 [6 y8 E' v; u6 @
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
: t# q- p1 E8 W1 A2 z8 ?   function add_site_wide_notices_boxes() {
4 z; b; D+ b) \- {) e5 k      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
- [+ J9 o/ @( q4 o+ k* c) {   }
- s9 y& d, h( y$ \; i8 z
& }6 p: u+ W; t8 o/ {. c8 I- q5 U   function notice_details_meta_box($post) {. t  L* k6 L) Z5 f2 A4 U$ r
      wp_nonce_field(basename(__FILE__), 'notices_nonce');3 L/ I7 a- a! R0 M5 Q1 H& z( n
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
1 p# l/ R" n- S4 X5 e  M2 A+ V      $notice_content = get_post_meta($post->ID, 'notice_content', true);/ C4 p1 c( v0 q6 m
      ?>
( S, w9 _- E+ d2 J" \      <p>: d; D5 [- w, e2 u5 o
          <label for="notice-title">Notice Title</label><br>7 @$ T9 l" O# W
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">' i' V2 Q* K; A4 l5 t
      </p>
% M' J# [" r# v. ?" }) v      <p>
# n6 Z& s! I$ ]: w          <label for="notice-content">Notice Content</label><br>
* x  i" X& Q% w) L& ]! o1 |8 P) u, g          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>! Y# t* z9 C" l+ k5 P- E8 r
      </p>$ O6 L5 R" Q. p  k' _- h
      <?php4 d$ r% z, x$ W) V# J) u
   }4 F' N5 Q5 F) \% s" q7 w- w# E: a
  h! _* F2 v- Y: u! U( |
   add_action('save_post', 'save_site_wide_notice_meta_box');7 I( S6 F( c# y) H
   function save_site_wide_notice_meta_box($post_id) {
$ s5 B& p5 `/ }* B. Z7 _  x, V      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
0 z: h" C- J$ T1 n         return;& B6 ]+ h. n" F. l/ {
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)  n3 I. S; H1 r; B  j
         return;0 J% ]. j, i, l5 C  {

' u- \* i8 U8 T2 d$ M) w      if (isset($_POST['notice_title'])) {
1 i5 D, {8 B" M: l" ?          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));3 M4 ]$ ]; d* F* d/ Z9 z
      }, E# b& V: H, ^" L; O& |
      if (isset($_POST['notice_content'])) {8 \/ r6 a8 O+ O; V
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
" m, u9 n9 `9 o1 J      }! b5 B% }: s& b) C  V3 @; r* A
   }" U' `9 m( T6 U1 ?1 n4 B( l
   ```6 X1 P2 z% T. Y! t2 _  `2 l  |, ^

7 `9 |5 i7 i; n% y7 K8 s, A/ U   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
1 Q2 p, W) g/ ]' a8 h% f4 L4 p" J. D4 h" k) k6 b
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:1 X  `6 P$ e  T2 P  ?9 q

' E1 e4 c2 F$ b( e$ D   ```
2 J. D7 d' F. N1 j& n0 t7 N   $args = array(# }& S$ y0 l/ u4 t9 g
      'post_type' => 'site-wide-notices',
# O- p7 V& m0 l! o" F' r( P1 ~8 L) W0 @3 P      'posts_per_page' => 3,
: L/ o- I3 `' v5 A# B, ]      'order' => 'DESC',
' M* u+ T- d$ l4 T      'orderby' => 'date'# }2 |8 |; d" m" M2 h; I
   );- k" A) z6 O9 A" `9 t
   $query = new WP_Query($args);" i% \* L' ?7 l1 M6 Y
   if ($query->have_posts()) :
& Q3 i* d' G3 @# G# H, ?. ^5 ^      while ($query->have_posts()) : $query->the_post(); ?>
* @% q) }1 X3 D% r* Z) O7 O7 c          <div class="notice">( \+ U/ d+ \* R2 X9 _5 q9 G' N
              <h3><?php the_title(); ?></h3>2 ^$ G, H# A) w% r
              <div class="notice-content"><?php the_content(); ?></div>" B( ~3 x, @: j3 t0 ^
          </div>
4 ^1 W$ H4 }4 b! A      <?php endwhile;
3 }7 }' s5 J6 E- U& L      wp_reset_postdata();9 n7 X) F, c) C
   endif;! w! L) N( D3 n, O) q& m
   ```9 A- R/ m  X3 }& E; S
  T; i! Z2 T7 H. c6 M
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-15 04:37 , Processed in 0.021533 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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