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

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

[复制链接]

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
" @6 T# s0 b0 @% S* \: n3 B# H6 G! K2 G( F: A+ l$ t- E& t4 h
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
& u7 |/ f1 A0 k; _, c9 u* F9 J7 e- n2 j3 t, Y8 s
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。. j$ y- c/ e4 \. \, S* ]

1 a0 V8 E8 o! W3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
; V; R6 q" ^" G5 ?9 ~' K! U+ c& L# B( u) f3 {
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。% B% z& B8 C/ N. B5 h& p: Q8 Y

+ x0 x( P# @  q* a4 E5 I& G注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?! h, o% c+ u  e- k7 y9 i; H  ], ~
% J3 S7 u2 Y1 o5 [: c
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:3 n, b* W: n9 S6 x( z

1 a" V/ s: M8 l: ?1 ^7 I( g* b1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
6 b9 }; Q, `# p$ X; J8 l
+ D# l3 d! e, N+ x0 l9 p6 v   ```
# j0 D! Z6 D" d9 ~$ Q   add_menu_page(( U6 {5 F% i, ]# m9 E
       '全站公告',$ N$ J1 B: i: H- i  P3 _0 q) j
       '全站公告',
+ ~8 q* W. i, \( F       'manage_options', //需要的用户权限
3 I( Z, O; b( f% a* |       'site-wide-notice', //后台页面的 slug" \# [9 \& v5 F; u4 e3 e
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数2 Q1 V& n3 f- X# r7 N
       'dashicons-megaphone', //用于显示在菜单中的图标
0 U5 S9 b+ O, k+ i6 t5 T7 U& w       30 //菜单项的位置
( j% v. |: i4 H* m% e8 d   );5 A' U3 S7 M& v, r# W; n
   ```
! |4 y4 s) d+ Z( o
0 N. c& g; D  n  T2 \& g6 |3 C# \9 @0 l   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。  [2 y8 W0 a6 `7 f' J% z* e  f
, ^9 H6 x9 U4 |9 w, ^
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:3 `8 H3 e8 N$ R2 Y

$ _. e% b8 C  T$ ]5 b   ```
. F# T8 I# D) }3 {   function render_site_wide_notice_page() {! Y" R" z3 q- p# X* d4 O* z/ B* m
      // 渲染后台页面内容# f- y, ~: Y" K( M$ H& `9 I$ l& \
      echo '<div class="wrap">
/ `/ b2 v' x. U+ E' {* w          <h2>全站公告</h2>
, v% n( k& l" r. b( B% y+ n          <form method="post" action="">7 ?% a+ \* K' P2 q. X
              <label for="title">公告标题:</label>2 X4 ~1 m, `6 v# M. W1 a+ ^
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
9 k- O+ H0 {1 W8 u( c              <label for="content">公告内容:</label>
. y& q" n- c6 A8 M' l              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>8 x9 D1 j: g2 [7 L) j- B  U* J
              <input type="submit" name="submit" value="保存设置">
6 D9 l- H. s; D# Q9 x7 ~          </form>& R4 J0 S! y# [; D2 H" t8 i
      </div>';; U. M' w; g$ h4 p2 v, e

5 Y0 Q% s; g! u. ~      // 处理表单数据
+ `4 [; Y) S( Z( Y* N      if (isset($_POST['submit'])) {" B: }3 P# y# j* G
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));: d' C/ f" d' ?$ H' x% W
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));- u( J- z0 U* o5 E; q5 v
      }, e8 j7 K0 X1 i6 O6 J) A
   }
' k  M/ ^6 {4 X3 F$ U   ```! B' Y: _  ^( f' T# O% p
, ~7 m$ o% Z: O" d/ L. B. t
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。. [% A$ G7 J. W# E, B3 A

3 N, D1 r* x+ k/ T3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:* y7 j/ ]4 e5 k/ m2 B0 E8 Z7 d
" [9 Q" L. ?0 G8 A  @, V
   ```& A* B6 L0 D. M& S4 e+ w
   <?php+ ~( I2 `" N2 p! h/ k
   $site_wide_notice_title = get_option('site_wide_notice_title');+ }+ w* V8 }2 q5 ?1 l: R( T
   $site_wide_notice_content = get_option('site_wide_notice_content');
$ A" g  |& r3 z! L* U6 o' c   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {8 K; y! n) E) R4 d
       echo '<div class="site-wide-notice">';) R0 Y' K" ^3 W) s
       if (!empty($site_wide_notice_title)) {1 U7 ~. u3 o: {3 r8 C
           echo '<h3>'.$site_wide_notice_title.'</h3>';
: S% u5 H0 h! m3 m6 c       }
7 D9 `" n5 Y8 A, L! s. b       if (!empty($site_wide_notice_content)) {1 i3 C& j6 J5 p0 f5 K
           echo '<p>'.$site_wide_notice_content.'</p>';
8 l8 L% q0 U! s. A       }$ U3 h/ l1 i: a  ]% P
       echo '</div>';
' S& c- y) l9 Q$ k% G* l% ^   }- ]" ?4 P; a* ]7 C
   ?>: F' v# u# |  M2 I7 b9 k
   ```  P. O2 L: m/ @7 `% v$ B. w2 L

1 G5 |+ x' ^) I  L; a( K5 d   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
3 ]0 g; Y+ [9 E( b/ X: n
. g& {; @+ `6 {* s3 |请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?( a2 F  I' ^& ^6 W
3 |+ H/ i. y% i
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
( y6 l! i* y* U/ G1 e* y, p- Z
9 E. R8 k" s8 S1 |1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
* E6 E0 Z, Y* K( @5 T- v6 w! ~! e3 P
/ [- K$ z+ m$ O) h. A* g$ `6 t' R3 W```
- A- j- A  U# \8 @6 w: e1 c; }8 n4 kfunction create_custom_post_type() {
) K) j5 E/ q# h  m- J' ]    $args = array(
5 D6 P8 d, M  F$ P  v) W        'labels' => array(
" V7 S' x, t. o  ?$ k: y            'name' => '公告',% I$ }! j1 i* x
            'singular_name' => '公告'
  \$ x2 l4 A, S" @        ),
! h- M- B' Q/ O- }) n: |        'public' => true,  B' J2 i/ M: p9 C" t( e
        'has_archive' => true,: B9 S& D: Y8 u, v- a9 e  H! m7 c
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
* n8 p7 t3 Q) ^; O        'taxonomies' => array('category', 'post_tag'),& P6 i% a% G+ u7 `% v& Q2 u
        'menu_icon' => 'dashicons-megaphone',) g) ?9 m, L5 U  h
        'menu_position' => 5,0 ^/ _% S: f) z
        'rewrite' => array('slug' => 'site-wide-notices')
1 e& ^& {0 ]/ e; ]: ~    );
0 B8 s) _% d. f6 T, G  w5 F/ S" m    register_post_type('site-wide-notices', $args);
& Z8 O0 M+ b# P5 b}* `: l" \# g+ Q" l: B
add_action('init', 'create_custom_post_type');: [# O  W& r9 t) y; b
```) G( O' K9 }8 @( p4 d
4 V$ I( _& L$ W. X( n( w7 ~3 C8 r8 c
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。% a# U" q0 m3 Q' s: Y9 {

5 R/ k. E3 x0 `. n9 S( M" O3 {2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。+ G% R6 J0 Q! c% x/ P+ D4 {

) O* B& s% J  C) u3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:$ A/ _+ ~! J2 J. B5 T6 j: r  T

  V# \: f; m) b  a```) b6 h4 i$ h# |# Q6 S
$args = array(5 y4 h" h/ C  w! j1 D
    'posts_per_page' => 3, // 显示的公告数量
( x+ g  W% q8 ]# l  t$ g/ ]! B    'post_type' => 'site-wide-notices', // 公告文章类型
: ^, i8 A9 P( ]9 C    'post_status' => 'publish', // 公告状态+ \9 W  |2 Z/ g/ _: N
    'order' => 'DESC' // 排序方式
# x" x! H; d# l; ?4 A, S);  |; a+ F; M, c+ C
/ c* K4 i+ U6 S. J% e' ]
$notices = new WP_Query($args);
- W7 |" w% g7 Cif ($notices->have_posts()) :( K* ^. n8 x0 ~! r
    while ($notices->have_posts()) : $notices->the_post(); ?>; B4 ?" [. `5 n6 c5 p, _
        <div class="notice">
. {3 o& x' e# g- I8 i) @8 ^0 V            <h3><?php the_title(); ?></h3>& W8 F8 V& y" B2 c/ T1 ^. N( o
            <div class="notice-content"><?php the_content(); ?></div>
/ Y  G: j* m. U' q0 v        </div>
7 I) J# h# _- Z2 B! V    <?php endwhile;
( \6 R- f5 B5 @* Z( ~0 gelse :
- d3 _  @. K, r8 r    echo "暂无公告";
# W9 G( m5 D, u* `$ s5 d$ f' z3 Pendif;6 B$ {+ E8 ]7 p2 h* D, i9 T
wp_reset_query();
/ G2 R% e/ A7 X' d" o```$ k* l$ o0 f; {1 q) J' v
2 n2 E: f$ O, C3 `; u2 Q
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
8 o' \1 k) I( R: ^% M2 C; c& J1 @  V
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?- g* L8 B2 s- N1 e) f7 M4 \
$ p' C! G/ H: \) o2 ]( o8 ~1 E7 ^
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。3 N" w; L+ y$ k
, r' W6 b/ r8 K& V# f7 Y
以下是创建自定义插件的步骤:
9 o1 A: P- N+ a  N) |0 G2 k
) x& Q* r2 f+ w$ S* X5 u% U1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:1 U3 Q% L# [; V: h' ], W5 t  w6 ~( D
9 ^& }8 Y1 p. b- Q7 l% Y
   ```
; O# f" M, M6 F9 @5 B. u) L# K: t   <?php
0 A, n1 _! x5 P  C  I1 d( z   /*
1 T& V$ B2 c7 B. ~2 H   Plugin Name: Site Wide Notices Plugin
, d- c+ n# }2 n4 M4 O8 y4 m   Description: Adds a new custom post type for site-wide notices.6 r( d: q* j5 i5 k1 d
   Version: 1.02 x. d2 B  A6 r  C0 a5 K% k7 t
   Author: Your Name
' P' u9 g& D9 K1 |: X5 C( {: y! G9 U   Author URI: http://example.com
8 U9 O* I5 f! e  D9 J* x  i   */
+ d* r2 j( r  |9 f9 w) Z" L9 r( i% {; g
   // Add plugin code here.../ y2 D) H" j' V
   ```4 V7 T- z# h2 [$ \% q) k

7 P% O0 ?/ d8 E6 R, l$ A3 @/ s( m: |   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
6 S7 I$ E) C" ~$ m2 d$ x6 n! }- ]8 j7 E: Q4 h# b3 n
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
) u, m2 H# v) M- ]/ T5 N8 M( \1 U' t6 Q$ i% i6 p% G7 z
   ```
' b5 o8 y& B8 s( l6 P   add_action('init', 'create_custom_post_type');, |4 `" j, _* Z$ `+ T% w" k
   function create_custom_post_type() {
. y) G: H) p' h$ S( w' T1 a      $labels = array(
0 s. }7 x  q: s$ _+ k) J          'name' => 'Site Wide Notices',
+ F( z1 @3 D/ M& T+ W          'singular_name' => 'Site Wide Notice',) V9 f8 W" u8 `. a2 {9 e! ]* O5 h& B
          'add_new' => 'Add New',2 Z* g" Y" N  v+ t! j9 G+ p+ y
          'add_new_item' => 'Add New Site Wide Notice',9 I2 k* w# R3 ^7 ^
          'edit_item' => 'Edit Site Wide Notice',
: G! {  T5 u6 w          'new_item' => 'New Site Wide Notice',6 _" K& \' q% }! }, c+ i; R
          'view_item' => 'View Site Wide Notice',
5 I$ I/ V  I$ r9 N9 e: x          'search_items' => 'Search Site Wide Notices',4 p, p: w6 f" R
          'not_found' => 'No site-wide notices found',& t2 S+ q+ F" s0 l: Y( e
          'not_found_in_trash' => 'No site-wide notices found in trash') B4 V& }7 W- V
      );
$ \/ e2 G$ u8 O- Z0 {2 {2 e) R9 E6 L6 A0 b' g; W7 D5 m+ |! l# q
      $args = array(
) G* D& `) k5 d. o# E* Q% {          'labels' => $labels,
, C8 q3 z6 j1 @" d5 ^: L' z          'public' => true,
* f  j; D% Q: l3 m$ h          'has_archive' => true,
, b# x( b0 @( g4 F          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),. ?- F; {5 T8 C/ j0 j6 u, E
          'taxonomies' => array('category', 'post_tag'),( p; M; u* P7 t- N9 j
          'menu_icon' => 'dashicons-megaphone',3 {$ w2 [1 v. G2 `. C. H
          'menu_position' => 5,+ C( B2 X, @9 d) [7 ~
          'rewrite' => array('slug' => 'site-wide-notices')
, m# Q* M" e4 X( R      );4 X1 p/ t' Z- A3 P. q/ i" U8 \6 B% P
6 H! G# p5 E6 a6 Z. {6 _. W" N
      register_post_type('site-wide-notices', $args);3 e/ J. `2 h& H2 r; C& b
   }
4 c, l6 a4 s. {, R1 j, Q0 m   ```+ h- A; @6 q# ~* X5 n( S

6 Z! Y$ H! \- J' v9 h. Q   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
3 Y3 M+ e* y. b- B2 G' ]) J8 Y( \7 P1 `6 v6 U5 d: q
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
1 `) V; w+ T1 r4 {! ^9 O! N4 r7 ~% T2 R( u/ k$ j
   ```
, d/ A1 b& D. X+ ~   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
3 g% p; c; r3 E, D   function add_site_wide_notices_boxes() {! U$ ?3 c( e/ \4 m9 H9 [
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
1 d8 N6 F6 U9 p   }
1 h& g( J' `- J( N9 p4 _5 p" ~( u# g) B" l
   function notice_details_meta_box($post) {
7 w) k9 s( X! |0 [  E      wp_nonce_field(basename(__FILE__), 'notices_nonce');
7 y7 t, z! O' e& b      $notice_title = get_post_meta($post->ID, 'notice_title', true);
4 z2 V( x# J. Z' G, N5 b* A      $notice_content = get_post_meta($post->ID, 'notice_content', true);
2 j4 g$ h; h+ @      ?>$ Z% C3 ^6 L3 i3 k0 F
      <p>8 y) H* G8 l3 h2 m) M" U
          <label for="notice-title">Notice Title</label><br>3 b4 }) B. i/ ]: Q
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
( l6 V  z; a$ T      </p>1 u  k& T) C$ q* `. o5 E
      <p>7 G( K% O* m2 n* `( ~, L0 O, G9 f
          <label for="notice-content">Notice Content</label><br>
, m  t7 n$ l. ^1 O, c1 t          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>9 x8 i, V1 n2 A/ O$ A, n) E
      </p>1 r8 @2 r, ?6 q, A1 D
      <?php
' v0 }! j2 H9 ~( h, J   }
6 v( G( H9 T7 N9 f7 ~2 q8 X1 ~0 \; Z# l  K; B
   add_action('save_post', 'save_site_wide_notice_meta_box');
  Y. j7 t, x6 J  X9 R, p# Y   function save_site_wide_notice_meta_box($post_id) {
, ~+ `1 y9 I' A0 @      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
4 N) G* C5 G4 S2 ^         return;( h' ~5 S( d+ x" a* p0 y) X" f! x8 q
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)/ Z7 ?) h' F3 ?, y5 @
         return;
4 J# p* @3 e+ a. A- M4 f5 W8 ]2 Q$ }5 A* w
      if (isset($_POST['notice_title'])) {
6 }& @9 O; M3 x$ N  @8 f          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
2 A2 t5 o9 P: Z3 x1 V  g      }
/ K0 d3 B+ A/ Y$ Z      if (isset($_POST['notice_content'])) {
* |# q0 c$ O0 l; V/ g: A          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));# S4 m7 k, l2 a8 P' T0 E6 x, [
      }3 O. ?0 |2 q6 x' V
   }0 }! E3 r9 }6 m$ \  P0 r3 e
   ```
1 V$ W% x, ~+ f3 u$ B! E# Q; W; q/ @3 e3 q7 ?' ^. i2 f% n
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
+ _6 {$ P' l" B+ m9 Y4 P2 @, l( ]1 D* Y" }7 t
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
  ]( b# ]: E+ q$ |; g! J/ l6 ]; z' {+ t; ]9 J
   ```
$ z/ Q" [8 n$ }0 x+ C9 |   $args = array(% O" c2 c' a) T- s
      'post_type' => 'site-wide-notices',- P+ e* S$ s, n+ l
      'posts_per_page' => 3,9 d" i+ X4 f1 \  p; V; f# [2 }
      'order' => 'DESC',
* H6 ?8 S, P7 X$ E( k' w      'orderby' => 'date'
8 E3 W4 T) v7 a7 m5 t' T9 P   );
0 N4 b' t$ K6 l9 S" A0 p/ t   $query = new WP_Query($args);
9 R' L& ]8 P5 L" V2 o$ H   if ($query->have_posts()) :
( W* }" Q0 P# S1 H      while ($query->have_posts()) : $query->the_post(); ?>
- K, B2 h  B3 l! j  O: I. r          <div class="notice">
$ f" }5 }& y0 G3 R4 G4 L              <h3><?php the_title(); ?></h3>
5 x; t' j/ V" w% R2 b              <div class="notice-content"><?php the_content(); ?></div>+ Y. u5 M. G, X$ @6 `3 L
          </div>* @7 j; T1 I  P( ]) f
      <?php endwhile;
# r2 N5 x/ S8 g( e' Q      wp_reset_postdata();
2 _9 R7 o" W' N5 q, _; s. o   endif;. {7 O1 n9 a" a8 O: f
   ```# ?* v5 u/ ?, r
4 [* f3 a% z! g
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-19 14:32 , Processed in 0.013373 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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