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

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

[复制链接]

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
" H/ `1 |' u% C  u5 Z; L4 j- _' T: A7 g
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
2 \# N6 a& P' H' F$ P
, D' ]) G" }7 l4 n1 c1 W2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。5 d/ _3 s' h  L4 ~# `
; u6 |/ U( ]+ [0 s
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。- S$ b' {5 v: d# \8 J5 E
& D5 L+ E" G! G
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。5 R3 P+ [6 [: e; \

' ]8 l/ E( A3 Q. Z注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?6 f4 ]6 t7 a7 c
1 R% @! u2 R% u+ Z; I+ R" t9 P
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:1 a1 R# _0 s8 S8 ~" `4 z

% U8 k, _6 B8 u0 j; [+ r3 T4 ?& q1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:, }& L- A$ W9 a- b# t" D

3 }  p* z* V+ C7 f% B; G( x- |   ```
, u: I5 q5 F0 g5 r5 D, W$ ?   add_menu_page(8 E0 `. x& u; `/ L% K
       '全站公告',
4 e- I, U2 Y0 f( }' y       '全站公告',
3 M; J7 ~- O" b       'manage_options', //需要的用户权限8 c" `0 h9 U8 L, A/ l6 Q
       'site-wide-notice', //后台页面的 slug
' ?9 E  ~5 R2 R* `% `% B& P: L       'render_site_wide_notice_page', //用于渲染后台页面内容的函数4 w5 _, J, a; ^, {8 f
       'dashicons-megaphone', //用于显示在菜单中的图标3 v; D" d* u2 F+ [7 \  e
       30 //菜单项的位置( R+ X/ b6 X' `3 F  S
   );. j+ x  j* _+ k, W* K
   ```
9 F5 q/ S, t0 @* v/ c7 H, `, W  n. X3 Y
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。6 s$ b8 C7 @$ Q2 r& q8 m

' t( E% a+ v3 J5 b3 P4 e1 ?/ _2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:- ~3 w% f1 z& J4 i4 U3 K

& ^! I; ?. x( H! X) C* ]   ```" i2 ^5 X) z4 y5 h) I$ K
   function render_site_wide_notice_page() {& |2 ?: w& g- L/ S' l
      // 渲染后台页面内容8 w$ A/ @2 D- J$ k6 J$ j8 O
      echo '<div class="wrap">) ]* v. p* k( I5 Y5 _
          <h2>全站公告</h2>% I$ \/ o$ G- W$ V- q  l
          <form method="post" action="">
6 A- x: r+ o& F, V8 b" b1 ^              <label for="title">公告标题:</label>; W/ ~9 H8 p7 g  d+ _3 ^
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
( x+ K3 m: K  R0 W              <label for="content">公告内容:</label>
  L' D0 C6 x' C) r- F  Z# r              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
" R9 D  ^7 B7 f( O2 q( B: y              <input type="submit" name="submit" value="保存设置">  {* H4 c0 c: b; g7 z5 ^( v( N# d6 F
          </form>& P# s5 X; E' R$ H; |
      </div>';0 h: c/ z$ V! o$ M& @9 @7 P; p: Q5 n" w( Q
8 q  W: h1 V! g: U
      // 处理表单数据9 @; |# V; Y! H* O" s  z1 ^
      if (isset($_POST['submit'])) {! ~* f- _3 y7 I* @; D
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));$ I5 v/ T5 d; A, E; M8 @9 [
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));+ S" E+ A, Z; a' ~6 r9 f9 U3 m
      }, b3 b! Q$ W0 E/ r9 l9 a$ J  [
   }+ s2 P, L! _7 w- s8 \
   ```4 y- `0 K" i9 g3 S( O& n$ W8 m
% O$ a0 o! }2 v; @
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
% W1 \2 \" P4 i  G7 O0 ~# l6 @2 Z
, [7 g' J* y- B) _3 i( X" U; b3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:* B1 M8 n0 X3 L% q
2 t1 y, C( {& F% k. A) K$ y  y
   ```9 d! s+ c) V5 Y) @& {# y
   <?php
1 U4 }0 x  v2 w" i   $site_wide_notice_title = get_option('site_wide_notice_title');7 j0 L0 \  o, K% {
   $site_wide_notice_content = get_option('site_wide_notice_content');" U. N/ J3 g3 \& a0 F
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {  x- J: d$ k  b; l1 w1 b4 z. \; Y7 A
       echo '<div class="site-wide-notice">';. k4 A2 G! ~2 ^* S8 x( |( F
       if (!empty($site_wide_notice_title)) {. O7 A# o7 d* i% X2 S- j
           echo '<h3>'.$site_wide_notice_title.'</h3>';& v( D! B5 s( r4 y( P; m1 t
       }2 t( @5 w& p* f( Z' a0 e1 k9 b
       if (!empty($site_wide_notice_content)) {6 e9 Q/ B9 E  K) W' R! x
           echo '<p>'.$site_wide_notice_content.'</p>';
2 A' `4 d* M0 t& w/ }! Z" ?/ O       }& T' a/ L" U% T8 ^4 a
       echo '</div>';
+ x- U1 }8 \5 I4 Z   }$ n$ j9 c4 n7 p( ^" M4 [
   ?>
4 b) H( q, M4 x. A   ```; w6 w" k3 \: d' p, a- p
) R- M  J+ B6 W6 _; [
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。- w$ A* I( Q2 ]3 s

$ w3 R: q: ~0 L% h" V5 X9 _3 N) S请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
4 c$ R0 F2 L: i$ D8 x! s5 F- K1 A1 g& M& h2 A
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:0 E9 _( D. E8 ~: I/ a! {8 w

- m  i& X+ v! c9 F1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
6 E. W  r7 v8 c' H
- f3 H. l$ @7 I. q- h- z2 t( N9 r```3 `& i% n0 y; W3 [, d2 J0 B
function create_custom_post_type() {9 Q  i% m" W$ ]5 W5 e- u
    $args = array(5 A4 b9 R+ F- H: g/ X6 f# M" B  G
        'labels' => array(
) B% O" |: W1 F8 D* K' w            'name' => '公告',
2 [& O/ D& u- e% v' o            'singular_name' => '公告'
; ~6 [5 V9 c* ]        ),
* y9 B8 F) x& I5 }* M        'public' => true,
- d4 d- Z* o) U0 s# \4 i6 N        'has_archive' => true,. @( X" ^7 T8 S; C
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),  r/ Z% c; F4 ]6 l, M: X) C$ x' v
        'taxonomies' => array('category', 'post_tag'),1 t6 f1 @6 `- D4 P3 f* T
        'menu_icon' => 'dashicons-megaphone',
' Q: r7 X) `/ l9 Z        'menu_position' => 5,2 z9 B* e- p* n+ g$ X
        'rewrite' => array('slug' => 'site-wide-notices')
8 S$ O& ~9 A) I1 G8 l" A  y6 R    );
+ Q, F" ~4 l# [1 k5 N! P    register_post_type('site-wide-notices', $args);+ i( b% }2 L* Z/ P
}! b6 J4 ^* e  e; o- v5 @) e" V
add_action('init', 'create_custom_post_type');) r. p: ?0 }; J# R+ G3 b% n+ c
```9 w' R9 |" z0 {4 i$ S. P) P
" ^; w/ c" g( E8 t4 n6 ]; ?& s: g
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
* a6 k: p2 b4 ^: U  [( e' d4 w. T8 [8 ~" B
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。( a6 P  f# n  }/ U

' \- G8 U( R1 G1 ]: m3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:* n5 y* h2 [* k3 c4 I1 |
0 Q, a3 t$ T: \: @3 w; u
```4 v- ]+ q7 Z1 X
$args = array(
! K/ b8 \# T. n7 n0 M    'posts_per_page' => 3, // 显示的公告数量
' W# ]$ `" l: R7 X( L  S    'post_type' => 'site-wide-notices', // 公告文章类型
+ ^+ k$ }7 _) a6 R2 M  i    'post_status' => 'publish', // 公告状态
/ d( S& ~6 O& M3 b" B    'order' => 'DESC' // 排序方式: b8 x+ ~0 d. I- L6 g" \5 J6 }
);6 l- o8 L4 j7 p* y* ?
7 |) r! M5 B, n: A$ ]
$notices = new WP_Query($args);3 u) q: ~! `6 n. G( m, }& K9 h8 H$ F
if ($notices->have_posts()) :) ^% s. L/ K1 w/ f# g( i
    while ($notices->have_posts()) : $notices->the_post(); ?>' @+ E' X8 h  r( s( j! y
        <div class="notice">  v/ m: t/ H5 o, c" B+ ]
            <h3><?php the_title(); ?></h3>* D# |$ C6 ]3 C4 H0 w1 n
            <div class="notice-content"><?php the_content(); ?></div>
' l  X# h) m6 {' a5 z' r3 `+ M        </div>
& ?4 g/ j, j8 n) j( {2 E4 k& Z    <?php endwhile;4 G6 F* k8 L+ `. Q& Z
else :
& [( P) L; v* i) Y    echo "暂无公告";
. s) A4 o, n6 ]) [$ Oendif;
- X% l' j& E7 R6 R  h3 J% \! ?" Pwp_reset_query();
5 e/ Y  B! Q/ ~# Z```0 |% N! U$ U9 K2 g. w. L! M3 R
' X* V. S6 i1 [7 d: v* w& m8 {
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
+ L/ J+ s3 b% x  W7 a% H" ]; l6 I  W
' R3 \3 A0 o9 g* }! {# v以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?! Q( R# P* ]7 ~; I
/ r( z, S! \! x) ]( p- t4 G% W
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。  |  z/ f5 g2 z
$ c+ y- k! |2 W9 b. v7 W
以下是创建自定义插件的步骤:! X& `* E0 N, r) R! W

* U6 N+ k8 X1 `, l1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
4 C4 Y) V% T8 ~, ^* _4 L/ ?& U) T- i5 D1 H: |
   ```
! K& P$ t6 g- U' G   <?php1 S2 Z( `8 L( I" s6 }" g( `: |
   /*
5 i. p/ z$ R# w: Z5 `5 |  {   Plugin Name: Site Wide Notices Plugin
/ K& E/ ?. M! E; ?. \1 V0 V. p   Description: Adds a new custom post type for site-wide notices.
* c. @" r2 H9 N4 ]   Version: 1.0
1 G* b: ]2 j1 ~& a# p" s   Author: Your Name
; b: T! u* }: V4 r1 w, j( `) k   Author URI: http://example.com  s$ ^  X9 f, b* K1 h& G
   */
: w! n5 f/ ?3 X" M. w4 a+ w2 ?8 ?+ u5 k
   // Add plugin code here...5 k) H3 @& |, Z( M: _8 C
   ```3 k1 A- k& a, Z
0 n& M0 R3 j8 I1 o# `; G
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
' o) a0 R+ n& F9 h0 \& ~, s+ o0 j
: s4 j8 A2 }; f" \5 G2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:) x. b5 m. V! B8 j5 r( |' v
) q- y& T4 m5 l0 f3 Y1 F
   ```3 a! W- l( V0 G9 `1 f3 C
   add_action('init', 'create_custom_post_type');
! _' q# W1 W& J7 s" a' M; G   function create_custom_post_type() {: E# G9 M2 v9 ?) J6 E
      $labels = array(
# r$ B* i" E+ B          'name' => 'Site Wide Notices',1 N' ^: T1 n' |- x% ]# O8 B# f
          'singular_name' => 'Site Wide Notice',- ]/ K0 D4 z# W
          'add_new' => 'Add New',
  p4 f7 Z! |4 \( `          'add_new_item' => 'Add New Site Wide Notice',
, e3 j2 l/ U# q1 s* i          'edit_item' => 'Edit Site Wide Notice',
0 M& R% U) [6 T4 e5 @          'new_item' => 'New Site Wide Notice',
1 G0 s7 C& e& R" }  u          'view_item' => 'View Site Wide Notice',0 A% I* L" I* U/ G, c, c' i
          'search_items' => 'Search Site Wide Notices',
& q8 ^  E) m7 H- Z1 A. F1 N          'not_found' => 'No site-wide notices found',
# b" E+ k" B  t: M% b          'not_found_in_trash' => 'No site-wide notices found in trash'
# u) ]% F# t# z  {" P: M* f      );$ v# M/ b' g; x% \

: k8 o2 n! O# {7 _7 z; m      $args = array(2 k, F: T/ k/ {2 y" N
          'labels' => $labels,# b) c# z- }  O/ h" |3 W" k, f
          'public' => true,3 u  P* h+ C: r" a' X. r- {
          'has_archive' => true,, s  j8 @, H) o+ `! ^6 c1 u- N
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),- t7 t5 v, G5 \3 @( j5 U
          'taxonomies' => array('category', 'post_tag'),- W# n( r/ h6 K' e6 }" b2 e: x9 A
          'menu_icon' => 'dashicons-megaphone',
9 r$ g5 w9 n2 K$ R. G" U          'menu_position' => 5,
5 _2 J1 {7 a7 v8 k4 O          'rewrite' => array('slug' => 'site-wide-notices')# @" ~) y0 j: V0 L/ }1 |2 K
      );
' Q, K+ I3 P8 l; P% O9 V8 a
/ T( B# G  ~2 y$ x2 w* h: b) F      register_post_type('site-wide-notices', $args);
+ l4 y: G( ]! v# B7 R   }/ T  J  q6 ^6 R& E
   ```
/ {/ c* F$ I' x) I$ ?  b
+ ?! A, b" f0 B   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。+ r7 h: M; N4 |

' G6 A" o- r' {0 I3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
: ]0 H2 H7 Q" W' }$ Q% a* {2 q4 e, e4 I2 ~
   ```3 Q$ r1 M/ |0 W: P& o+ V/ v
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');6 I7 O* y  ~3 D. m0 y: \
   function add_site_wide_notices_boxes() {: }; [) e  w% K5 c# n
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
& n) j- m2 t" R   }
7 W8 R# ^. x) w/ f5 \0 w' w; }5 h
* c- ]; E# n# {* I* \' k) q   function notice_details_meta_box($post) {+ B" X0 I3 N7 L$ m- m" @. z' @
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
5 O9 _) K3 {; [' o      $notice_title = get_post_meta($post->ID, 'notice_title', true);
/ z  ^' v8 T# f  L' d3 b      $notice_content = get_post_meta($post->ID, 'notice_content', true);/ `% l  A( R, Y1 K& D! e; E, M8 f& y3 N
      ?>8 q1 ?+ l9 D0 h
      <p>
/ c$ T7 g# t* G% b& E) l! k1 F          <label for="notice-title">Notice Title</label><br>4 y/ P% O9 h" h$ ]
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
4 X" |  s: Z& d3 S0 s  f      </p>
0 o5 l8 L, D" V  x5 y5 M4 h      <p>
& J$ U; |4 k7 v2 N6 }0 u$ e' o          <label for="notice-content">Notice Content</label><br>7 T& p7 J4 y* F0 m$ O+ E
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>% P; ]! J( ~) T" X( J# ]6 I
      </p>
( [6 s; R8 l% t+ O; @4 U8 m& t      <?php1 i  B. P5 q! z) u+ L' C7 g& E5 o
   }
2 C& {/ _) `. J' q  y; m5 k2 ~' o- M6 m  f% d' a/ |
   add_action('save_post', 'save_site_wide_notice_meta_box');
( n* n9 S5 z/ Y! p& B   function save_site_wide_notice_meta_box($post_id) {% B1 x( C8 w& T- Z
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
1 R. s' O" S% s" D% P% X         return;# P$ L6 [& p0 E9 F$ T) w; h
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)1 k9 j8 R, N6 ~- P. w4 P9 ^3 n
         return;
- c3 s3 c/ g" {
/ S: h1 W% _1 g8 V+ O      if (isset($_POST['notice_title'])) {( g9 h1 T: i+ j: X# w
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
. F; i8 o( h, S" A      }
* C" t8 E. Q8 o9 }2 [: L/ ^) m      if (isset($_POST['notice_content'])) {7 J; E" B, w4 u  L# p( T
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
; H  j1 d; L2 U- h' J      }$ A: V1 E) R; J" V) t+ t; Y
   }
( f/ j* i% z1 f: S$ ?   ```& E% l, M6 k& |$ N1 q) a4 ~  E8 i
. V  M; v( Q- [
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
( s% ^% [7 c: M6 w5 V3 H3 }$ i2 c+ C/ C7 S
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:) @% Y  i( Y/ X$ k) A! B  p6 o/ \

+ j1 u5 @$ D& ?9 V! W% s0 K   ```8 M- V4 o- {* V9 _2 [7 A! y  n" x8 ]
   $args = array(
1 Q, w- ]& r( A- m. L      'post_type' => 'site-wide-notices',
3 D, N9 ~( R% P9 H      'posts_per_page' => 3,# c, k+ `& P: x; D
      'order' => 'DESC',
! s  A& _4 e0 ^; f+ s& _8 Y) u      'orderby' => 'date', i4 y% Y* ?) t, J. G( I: }( Q0 k
   );
- T8 R5 F. H" Z! D0 l7 d   $query = new WP_Query($args);
% T4 A& G* H/ Z; I9 g3 y& d( X   if ($query->have_posts()) :
$ h& R3 B# G3 J      while ($query->have_posts()) : $query->the_post(); ?>
. Q5 ?& |5 @& R          <div class="notice">
  w( v) X/ |, L5 U( ]              <h3><?php the_title(); ?></h3>
1 H" o7 ~" Y( [2 \' ~! w              <div class="notice-content"><?php the_content(); ?></div>
: [7 V$ A! J9 i  Y* o7 L          </div>* g" T% z9 B* i$ p# f8 u7 b
      <?php endwhile;5 S3 s% k8 a5 {1 l/ w5 V
      wp_reset_postdata();
, ]# O% L! h  B8 r4 u   endif;& b: R- @4 g9 m8 \$ g, a4 J
   ```
' z" e( b( f! I: u* p) i+ Q. T( ?
" ]4 J. v$ ?1 F) ~/ j5 J   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 00:58 , Processed in 0.017549 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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