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

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

[复制链接]

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
/ g( N& G1 ]7 Q3 {- i, D& X% A4 C9 L$ v5 {5 A6 m0 V: S
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。, E( H5 E! o. Y" o2 _

: i  @( i8 u3 G; y# m2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。/ h* @! S% c; H7 ?; Z/ Z$ M

+ h, Y6 `+ i. c1 d+ [5 Z2 B5 N- o# d3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。+ X& e3 H* t. I! J# D
1 E- ^7 U, s6 f# C
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。3 l  L* S# T6 {0 c

# ]# m$ A4 O. H注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
' W, X8 v! U+ [8 {, H& \/ b+ H
9 E" f0 T: w& I5 a: X如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
2 L3 F/ C1 ?0 q) T7 X: A1 i  s$ H( u
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:& }. V0 U2 s+ `( U8 k' k

/ Y' F. A7 ?! H$ w$ x   ```
2 V) t" C1 f- r) f8 e& i4 h9 |   add_menu_page(* o8 z% I9 D3 \2 I
       '全站公告',
4 P4 r! l* T! r1 i1 X% V$ ^       '全站公告',
: o/ Q1 `8 z4 N9 i9 g% K0 k  b1 N$ x       'manage_options', //需要的用户权限
0 ]7 t3 T7 o4 O8 u8 D4 r       'site-wide-notice', //后台页面的 slug0 C! A1 l% i+ `& G: Y/ u1 B
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数% ]' _* ^6 k8 X) Y8 G1 ?, W6 Y! U
       'dashicons-megaphone', //用于显示在菜单中的图标
  m+ [/ M8 s, H       30 //菜单项的位置+ S7 P. L% W( s3 o1 \7 f
   );; }( F6 }0 f/ @0 l/ P
   ```# b+ x0 D7 P4 V& L, I
/ N, k" J, n6 r( {# V
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。  g! g" ]: H9 N
& t' K. [, B6 W5 o6 L
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
! \0 p! h* s  f* V1 f! w
6 m8 h: K6 C" i6 I( n8 Q4 N   ```
0 {8 S+ C. y7 o( F9 G5 N7 q% x2 F   function render_site_wide_notice_page() {
* V4 v: d; x& X2 M, m      // 渲染后台页面内容9 n, x: Q; T) P, q" I- c* C' q
      echo '<div class="wrap">9 R8 Q" x2 @2 V7 J# e' j
          <h2>全站公告</h2>
( |* i: W5 w' ?1 v. U          <form method="post" action="">
: h, ~/ q" u* G8 h) K              <label for="title">公告标题:</label>
/ z" z) p5 ?7 ~/ R              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>( c$ A% j" E( k
              <label for="content">公告内容:</label>' m' v$ Z) v' ]" r+ b( {: ?( q4 w
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
1 m( I2 H# Y) {$ D3 ^+ x3 _              <input type="submit" name="submit" value="保存设置">
) \) Q: M1 b8 h8 `          </form>
7 O: a% I8 ?. e2 P2 b+ C0 ~      </div>';+ }4 v: M$ U9 ?' b
4 `+ d5 b/ I" z
      // 处理表单数据0 f) |; N; i, u( g9 ~1 {6 Q
      if (isset($_POST['submit'])) {
- a% P  j8 j  m/ X9 p          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));/ k! d5 y# r( H3 p4 l9 c; Y3 R4 h/ D+ Z
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));' @/ e; n% m  s( o5 h& S
      }
) n7 B1 r( X1 c* p8 H4 q   }
' B% ]8 u% ^' M2 a3 z0 W   ```
4 Q/ a0 Q5 [# p0 p, d: d& G$ Y( m" e& V3 P: e
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。4 M) `1 _' v8 j! m" ~
& k7 \8 I5 w) t. H& `" `, P
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:$ z  J$ v  c0 E7 F7 m

5 f9 V' P- b5 v% ]" f   ```8 _& E: k  j/ {
   <?php
% T: z! T8 q" Z0 \   $site_wide_notice_title = get_option('site_wide_notice_title');+ p) n) t0 P  }3 r; D1 W( S4 t
   $site_wide_notice_content = get_option('site_wide_notice_content');- D5 P& c# L3 F. v
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {. p$ t8 a9 ~, S3 l4 N1 m3 r5 b' w
       echo '<div class="site-wide-notice">';3 p! G! Q* j# |: B1 u6 |+ d5 h
       if (!empty($site_wide_notice_title)) {2 ~+ E0 N6 I9 t. J
           echo '<h3>'.$site_wide_notice_title.'</h3>';
2 S; i9 W$ c( g! x, \* A/ i* i       }
. O- K& C) T! M$ G! o* z1 G       if (!empty($site_wide_notice_content)) {5 X. R/ V' {$ k
           echo '<p>'.$site_wide_notice_content.'</p>';" ]. s2 l8 |: v2 g) _7 e
       }9 N& ?0 h" d) G6 b+ K6 X" M0 ~! Q
       echo '</div>';$ h& ?, \& ?4 ~
   }' m+ G/ B0 L) m
   ?>
- `. Z8 ~7 N$ r  ~8 o; m   ```
4 ^3 d3 z( n+ P! |- h1 D" v! v, N9 g7 k3 p
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
! E8 w$ v$ V# x7 T
( e7 a: n0 `1 O+ l8 U! p0 P  P请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?& ~: a) \$ r' ^
" S6 |6 ^6 F0 z2 z3 V3 x
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
/ q) t, C3 g% ~0 s! U$ _
% N  R" |6 v/ U& Q7 k! ]  x1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:" h* e3 a' g, k5 J5 u; y

2 y+ h, t3 G4 g& Q```
8 V9 B* j8 q! \function create_custom_post_type() {
/ o4 c  W& r/ o4 r& I5 G, @8 ^    $args = array(+ D# `7 ]8 H9 Z  v, X' N2 Y
        'labels' => array(
" R- m. Z- N* F            'name' => '公告',& G9 w( G* ?# w0 u  Q
            'singular_name' => '公告'9 ~7 R: R1 p) N) Z: Q! h/ q
        ),! ]) i, ]8 r5 v3 t: V' J" N) d
        'public' => true,
6 P2 G( e8 m; L" k3 x        'has_archive' => true,! s3 ~$ M& U. |) F2 X* O; W; G* ]
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),  N: p9 c5 l' O6 B
        'taxonomies' => array('category', 'post_tag'),7 I; p4 X8 y" Q8 f
        'menu_icon' => 'dashicons-megaphone',: Y3 H- J$ g# W* Q
        'menu_position' => 5,
! D" K8 T6 L7 |' q: [1 W9 }' C4 @        'rewrite' => array('slug' => 'site-wide-notices')
) H  P+ f% o0 ^) F& V( b    );
! o- J" w+ S$ ]( ~    register_post_type('site-wide-notices', $args);
( w3 C7 G: `" M( R: t- [! d}
: e! w" w# G" r# ^* f8 ]add_action('init', 'create_custom_post_type');3 g) p1 z* {& M6 m3 r3 E9 e
```
  d# p7 l: P) ?* b1 @4 \/ X0 W3 {' @# x* ?
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
9 X" F- Y8 [) c; H& ]# L; }9 t- L, b0 n. d
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。! D1 I/ [3 f- Z% W! |+ }0 e

; o0 t0 p: Y0 B' K/ ~" e3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
/ R+ Y& L0 n" Q$ h4 y' {
3 y1 u2 u. m- i- \- S2 j```
, s0 N: A& \( g$ Y" j$args = array(
' [: y! u7 N8 n& G5 y    'posts_per_page' => 3, // 显示的公告数量
  X% B, k5 K4 j3 t8 J6 p    'post_type' => 'site-wide-notices', // 公告文章类型
6 b" X- F( f; V# _    'post_status' => 'publish', // 公告状态
4 @# u% ^  X* v9 p    'order' => 'DESC' // 排序方式4 Q1 D0 }9 S: Z& u+ H
);5 l$ u. y- u# O! x1 [; \5 r
& a# \  v. k: Q0 Y; P' D
$notices = new WP_Query($args);
/ M" b4 z( @4 R# c4 F8 `2 rif ($notices->have_posts()) :, T" h* J' N7 Y- O
    while ($notices->have_posts()) : $notices->the_post(); ?>% M2 N# T, R1 D7 p" P  d, T" a
        <div class="notice">1 r8 @0 b! \4 C9 u7 R8 j
            <h3><?php the_title(); ?></h3>) X; O% S; Q* H7 m7 j( d' d. s7 G
            <div class="notice-content"><?php the_content(); ?></div>1 t8 _- P" w2 P; @
        </div>
  U' ~2 k  r  q; m$ p  U    <?php endwhile;
: T  b/ ?- U8 C  P2 _1 O% @& oelse :
7 d  n/ ]* k. r; t" E    echo "暂无公告";2 [) a, a+ A+ I1 W& B
endif;3 F! H% e# z! s2 a- @9 ?$ T
wp_reset_query();
4 G! L% ?5 p- n```2 [; [+ u  }1 X3 j- S

/ y- B, n  }% N# p& w1 ^这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。! }3 y0 m# O+ J
, _! O* @* W. @4 h3 ^2 R* x
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?9 |* P# m. S) |& ~# {/ N

' s6 k* g/ p; B4 ^如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。' Y! {" }- q4 f! l# a5 }
: }7 L# k8 Z1 D+ {' h
以下是创建自定义插件的步骤:/ j  k0 I: C) s2 g' V

( u; q1 H7 ~( H9 {1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
# k& S+ c- U: b* l; ~
6 v+ j) B; C' j7 \* m" Y& ~   ```) i5 F9 z' X9 J+ d# \' Q3 h
   <?php( L% a& _. B0 F% ]8 P* U6 k8 n
   /*3 V3 t% y6 u- o5 X5 e5 W9 Q" U
   Plugin Name: Site Wide Notices Plugin
: [) t7 q/ x+ o; q   Description: Adds a new custom post type for site-wide notices.6 a2 U6 ]% w. E
   Version: 1.0
: P8 t, h9 `/ `4 Q1 \8 R" f4 j; i   Author: Your Name7 x; j1 e% S% ^! p) W* p0 H  }( t
   Author URI: http://example.com2 c8 ^3 H5 _0 J3 r- S; Q
   */
  t0 Q/ v# t/ K0 O4 M9 c+ @$ {
: c7 p5 ?- N1 K& M: c   // Add plugin code here...7 N$ y# V- X# z" H% g+ w
   ```& s( m& T9 H( k6 R

& o7 U6 Z! N4 O4 H7 x   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
$ Q3 `* p* j! N: L+ L9 P) V+ e5 P( N  T) s( e( y- c
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
! e& x9 U0 M: j
% @' m+ P5 H: U9 D$ o. J   ```4 ~( W* b4 G% |# S6 G8 _. }
   add_action('init', 'create_custom_post_type');
* u0 Q$ g% ^$ q: A9 A; E   function create_custom_post_type() {# C0 m, Z! V/ C" o* o8 ?" y0 D
      $labels = array(0 n" N! }* y( Q  G
          'name' => 'Site Wide Notices'," O& k4 z& G! @6 X- t9 b
          'singular_name' => 'Site Wide Notice',) Y* V1 C; C9 k% ~) h: W" v' v
          'add_new' => 'Add New',
# q& q+ p7 H9 h! c" b$ ]4 a% Y          'add_new_item' => 'Add New Site Wide Notice',
( @- i5 Y2 |5 M# a) g. x          'edit_item' => 'Edit Site Wide Notice',
: S" c6 {2 q+ z3 T' q* u& W          'new_item' => 'New Site Wide Notice',
$ }/ R) f& j9 N+ f+ D9 m/ j& q          'view_item' => 'View Site Wide Notice',' {+ o- N; n" F) I9 ~
          'search_items' => 'Search Site Wide Notices',
( U+ z. D0 \# ?0 ]# R& J          'not_found' => 'No site-wide notices found',6 l5 C. ^. L5 ?# j! X( j5 w& |
          'not_found_in_trash' => 'No site-wide notices found in trash'$ t6 J- c) c: E2 s) h( S
      );% u0 y# i$ y# c' I- ^% @: d
6 E" \" o. N. K- @- M
      $args = array(/ z& F2 s2 \7 _! h% m7 r" w
          'labels' => $labels,: N+ o8 @. ^* ?
          'public' => true,
$ C$ V2 L: ^$ b: ?          'has_archive' => true,& ]: H9 f7 h, P; A2 Q
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
& `9 q2 J2 x- p' q          'taxonomies' => array('category', 'post_tag'),
: x, G; l  F8 C% \# z% d! A' u          'menu_icon' => 'dashicons-megaphone',
& v  `' ~5 ~4 i5 V7 c& Z3 t+ t          'menu_position' => 5,0 T6 D2 Y' V* u' m7 v; X# C' n! C
          'rewrite' => array('slug' => 'site-wide-notices')' R& F4 [/ j8 a% ?# Y* q5 b/ _
      );% G& }$ }- ~% r9 Q5 u
( R) \. [" E1 D/ T
      register_post_type('site-wide-notices', $args);. K, u$ ^$ C  ^* w, E* o
   }  F: x& _) _8 B0 ~! _
   ```* ^1 Z/ q' _6 \. L

0 w7 m3 V+ R) P: v  R   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。; J$ M' S7 q7 t  y5 W- _9 x

/ x6 M6 l% \; k* B( Z4 k. ?* Z3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:( v* B  e# v7 M3 H

3 [/ H. m5 N; k  g4 [, l   ```
- x& m7 _  A+ p( w. v( m5 r   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');" `5 \6 }5 o& U7 s
   function add_site_wide_notices_boxes() {
) J+ g# F; F. F; ^7 M      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
; |$ b/ _5 l) x4 L+ v7 O! F   }
3 |6 c) ]5 G6 A$ t( k$ }1 ^" T5 e
2 ^+ y$ J% E' t' y6 d   function notice_details_meta_box($post) {
3 C8 w. m4 f& T* o5 ?      wp_nonce_field(basename(__FILE__), 'notices_nonce');
( a3 x3 w2 G$ P5 A9 u! _      $notice_title = get_post_meta($post->ID, 'notice_title', true);
% x- b- B/ z0 o# G; T      $notice_content = get_post_meta($post->ID, 'notice_content', true);2 M% c5 Z' D& x" {
      ?>% u, D* H/ {3 j/ E% F
      <p>  W) W; i* J7 w5 O
          <label for="notice-title">Notice Title</label><br>5 o0 h" ^- t/ m& o- s
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
* v7 _/ f; t1 J9 v( }      </p>
) T! ?" G  @4 c! H+ `      <p>, K# X$ n! J0 [- F: |) f2 Z
          <label for="notice-content">Notice Content</label><br>
4 n- n- f/ e: E0 x; g          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
3 y# v1 l$ K' ?7 h/ T' _      </p>
! z0 [& a# l) q$ [  i      <?php
/ R7 K3 v" {+ D+ p3 ~; N$ ]& f   }  k5 e& o# [7 F$ M2 [& B

* d' k- k% V! {& o   add_action('save_post', 'save_site_wide_notice_meta_box');
. {- P4 P& y- H) [0 @   function save_site_wide_notice_meta_box($post_id) {# J2 ?2 [3 l0 F* ]
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
$ C: M1 |7 f7 B  f! p- ~         return;
4 s/ P: e; f6 f0 v+ ?      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)' N7 _5 ?  n; n+ b- ]
         return;
2 F6 J! @8 y! z: I1 y1 R$ w: Y, w1 p/ U1 s- a6 h
      if (isset($_POST['notice_title'])) {
4 V6 f3 X$ L# f# T- {! z, l, |$ Z          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));4 n! u; ~/ R( n% N2 G- f- a
      }5 [# F7 z1 f& \5 B( R8 v
      if (isset($_POST['notice_content'])) {
) m" b8 q* o0 |8 P          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
) i3 u' ?3 H6 G2 I% k$ P) k      }/ Y/ e9 s4 v. g8 G+ X0 q8 g# `
   }
6 u2 L9 ]; p# Z% G+ U2 s) u0 C   ```
+ @6 Z4 Y5 E; ^9 b7 b9 p' y2 }3 ~& r/ q) P5 J+ p" f# c
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
5 i$ N4 Z7 r9 d; A) u) Q
& x( }5 F/ r4 w& B4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:+ l  o" C' }. P! [  J) e$ |' u' |' a$ ~8 d

) f, s! b. X' R9 {# r; P) N, i- P   ```
$ Y6 |; M# G( ~& T4 L" m   $args = array(, ^* m" G8 J' ~, X# p
      'post_type' => 'site-wide-notices',/ E" m" M4 |( w7 P8 {' A& ~
      'posts_per_page' => 3,
5 H# X# p  D2 {3 y      'order' => 'DESC',. u9 c6 s/ r0 x' ]4 n2 _
      'orderby' => 'date'$ C& x1 R* V8 I3 M3 X1 o3 C
   );
5 ^; F; u' k/ n   $query = new WP_Query($args);
/ a& G: u* v8 w8 \$ p+ t3 T# F   if ($query->have_posts()) :
: j; w6 C  L! J- @6 R) t$ w' u2 ?      while ($query->have_posts()) : $query->the_post(); ?>
7 C! v  p6 ~5 y/ t# B          <div class="notice">
  C+ ~1 Q/ v  z7 @; U              <h3><?php the_title(); ?></h3>
! N' J( p  S! }+ X              <div class="notice-content"><?php the_content(); ?></div>
, v3 _) I9 D. o# g5 Q0 n% H7 u          </div>
7 C8 G: I$ s5 Q) |      <?php endwhile;( }' p. ]9 d1 I- b7 W) B
      wp_reset_postdata();
( w0 P' X6 ~8 `9 m+ @3 {* a   endif;" Z, k. N% a! B
   ```
* {1 ]8 x8 R; F( `
& F0 {0 w( W' S7 L3 H   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-18 11:14 , Processed in 0.011807 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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