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

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

[复制链接]

331

主题

511

回帖

3351

积分

管理员

积分
3351
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:0 d. F& S/ \4 ]  t) b+ L) V
3 W2 C; y0 m) v, L5 W* {
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。+ i9 A  `/ p# t* }2 j

( q( J+ B" X6 U" {2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
( `  T. |4 C( C: \! c5 ~9 V6 j: m2 x' a& N' j; y! |! Z' M( d7 x
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。. k# o/ R) y& H2 l  {2 {, z
# N9 @( E. m' r( S
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
# A/ P0 c. C, y# R4 Q
& r1 `- E0 ~$ G注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

331

主题

511

回帖

3351

积分

管理员

积分
3351
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?$ I- Z+ h2 t8 V" h/ h$ c; c% W

9 j0 j1 G  c/ U! ?( E! x! Y如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
+ `" Q. T2 n& d4 P. n9 v3 H+ b# y( j8 _& U7 \! H6 v" J
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
1 o: o" {$ A" d" @( ]
+ z' R% @" P; ^; m; B7 I. s   ```
; s4 t( @1 [! v   add_menu_page(/ s% U3 r9 q. J, Q0 |, J& l
       '全站公告',
* A) g0 I! d, {0 _       '全站公告',
5 i- ^  }. f! z: Y" t; E2 M       'manage_options', //需要的用户权限
. `0 Y/ v0 H/ a$ j' E: b' J2 ~       'site-wide-notice', //后台页面的 slug
; b& E, a6 L6 s, Y: ]( }       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
6 H; [' C3 M, i+ L9 j# ]2 u; m       'dashicons-megaphone', //用于显示在菜单中的图标' W  ^3 p% p' i% d
       30 //菜单项的位置5 d0 G3 O# t8 q0 ?! @+ x
   );+ D3 l. S1 Q6 c
   ```
# c) D1 _! A/ o; L
% n! _; r1 S8 g* ~$ X   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
* }5 g9 o( Q. I+ P! f8 H8 k
: x, q$ o6 B+ [! L: j) g2 S. b2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:# U4 O/ N0 Z; J
- U4 m4 c' x  d& ?3 \( o" D" u/ m
   ```
( ]9 T% w8 s( m: E0 P4 f- A8 p: ~+ N   function render_site_wide_notice_page() {. w& W( g, u, J7 o! B. K, Z
      // 渲染后台页面内容6 {1 l; X7 t, V3 N6 e# l
      echo '<div class="wrap">5 W2 s0 z* e5 x: g6 P4 v
          <h2>全站公告</h2>2 u) r8 I$ X0 b! i# V9 A
          <form method="post" action="">; E' t4 f$ W" y" X% j- ^4 Z! M
              <label for="title">公告标题:</label>) {* {4 D9 ~$ |* R6 z) J
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>$ q9 ]4 W( e9 g
              <label for="content">公告内容:</label>0 E+ k& t& h! _  u# A7 \7 a
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
/ i$ W+ w* h0 {& D" [/ [6 W! _              <input type="submit" name="submit" value="保存设置">  z4 x' I9 `8 R8 K
          </form>
% g# E8 v4 N* d; F9 W6 _8 Q+ E: s      </div>';: ^! W2 }& K* W3 Q; Q- u% _9 R  ~

2 E9 y, Y3 Y0 L* s! Q% Z4 @/ @, r% k      // 处理表单数据
3 c& L( P1 O+ L0 M! c      if (isset($_POST['submit'])) {/ e6 ^' f) L% a2 G9 }) H- U
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
' n  E* }& z, [. R4 y2 b  t' f+ c4 |6 R          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
. I" y/ @; f$ R      }( G8 ?) d7 y/ w3 t# K% `/ ?: K
   }3 _4 l2 [4 X5 T6 Q# d) L
   ```8 a! K$ N  b0 r  i6 L5 t) ^* ~
5 i1 Q, j7 {) ]% v
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
! h! ~: Z* V  M. S2 G, P
; F! G* o" V5 i: a2 r/ ?3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
1 P7 J  L$ S6 _2 o5 w2 N, M: f7 ]
) K2 g7 O8 B7 H( x1 @+ v   ```8 ?7 f9 k/ Z+ E9 g3 m2 D
   <?php" o8 c( t, \: Q6 G4 n
   $site_wide_notice_title = get_option('site_wide_notice_title');
3 j, U" ~4 l9 l4 K: x0 G" ?   $site_wide_notice_content = get_option('site_wide_notice_content');
4 y( V) I# G7 x6 U. p2 r3 G   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
$ _+ P, Q4 z" p+ r- ]       echo '<div class="site-wide-notice">';
4 k  o, K) z- ^' M+ R6 @- a       if (!empty($site_wide_notice_title)) {
  b/ M) l. t! x/ x           echo '<h3>'.$site_wide_notice_title.'</h3>';
: i/ M- y/ R! t2 u% y1 X       }
; Q5 a7 W8 I& }( H6 M( l5 G/ Y       if (!empty($site_wide_notice_content)) {% B+ ?1 d7 [) _
           echo '<p>'.$site_wide_notice_content.'</p>';
$ r- y) e: o1 c3 L* G       }
5 R' e5 ^& C/ A( O       echo '</div>';8 q4 g" R  \! J' A; I6 m9 [7 V7 \6 T
   }: J) K3 U7 \- r+ X  o
   ?>) C. C  _* _* C  G5 J! x
   ```
+ D: G; |. P+ i( l0 M6 E! w2 E% \. \+ ]3 F2 {4 r" W2 w
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
# l8 }9 |- ?7 ~6 r2 o/ M, z% W% e6 B- Q; n! F8 d( D; Z
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

331

主题

511

回帖

3351

积分

管理员

积分
3351
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
; c) g/ W  V" c. @$ k) O; a9 h- D) ]" J
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
9 K1 x  k1 J3 q. [; O3 x. C2 k  S. S+ A& E
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
/ y3 s$ L. `% Z6 C
2 B3 t% y* g* G( m9 ]$ b2 k```3 Z1 K& \, `- m1 N
function create_custom_post_type() {
7 P# X% L# r7 t0 Z+ n    $args = array(
% G' O! s5 l: w5 _9 V        'labels' => array(: @( y' D7 d  d1 p
            'name' => '公告',
0 |: I2 Q: S% y9 f            'singular_name' => '公告'+ h. D* M+ w9 ?! D" ?
        ),% i6 e" L% H5 l0 d7 f
        'public' => true,7 _& u3 g8 M- K& c% q' U/ a
        'has_archive' => true,
, h; y; }0 x6 @/ Y% i$ B' q" P! l        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),1 |7 w0 {2 U6 G5 [1 F
        'taxonomies' => array('category', 'post_tag'),- m0 E/ m" s- J6 ^. ]1 f7 R. S0 J
        'menu_icon' => 'dashicons-megaphone',5 o8 ?5 b/ C/ @7 u4 b, `: ^4 y# {
        'menu_position' => 5,$ G( ]9 B( j" y1 A
        'rewrite' => array('slug' => 'site-wide-notices')  v% ^+ }9 d/ @" Q. t
    );
% G* f! Q6 P! S+ F- ?    register_post_type('site-wide-notices', $args);
) d! N. M/ y! [1 d8 Y}
4 J! C. V" i6 o2 ?add_action('init', 'create_custom_post_type');' d: n8 x" d# U+ V+ n9 n+ r
```- B" f& Q9 d1 m5 z
5 d; M% y! \  M
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。7 P+ Q: a; O: ~# |9 U1 R
- M: `+ v; C; q( G) D5 L! N
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。4 G& h- E8 F% U0 c, }% F0 ?. ~3 w
1 }) C3 _* x4 Q( d1 j+ g# {
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
+ P2 J! w8 _+ `6 h) Z& u/ _: X) {* s( q: @) q0 S9 d
```% N7 F2 L9 B2 ]
$args = array(
* C) O) D" l5 J0 V    'posts_per_page' => 3, // 显示的公告数量
, X+ z- s- r- C3 ^' T. N- M, F& l    'post_type' => 'site-wide-notices', // 公告文章类型% L6 V# n6 c* b8 D
    'post_status' => 'publish', // 公告状态4 r% i4 ^7 D4 u  V
    'order' => 'DESC' // 排序方式
; x* P- E# j7 T# ~; j, y);
8 X. P  Z# c4 n
% i5 i1 J  T1 k* |$notices = new WP_Query($args);
8 e1 z" X7 @1 ]6 D( L2 O* Aif ($notices->have_posts()) :
. r8 K7 B6 t4 y$ _& y    while ($notices->have_posts()) : $notices->the_post(); ?>
( M+ d( D$ |9 `. n# X        <div class="notice">+ p" i2 J- H" ^# w, N5 @9 W6 _
            <h3><?php the_title(); ?></h3>
0 P  I7 Z: b, N# p2 }            <div class="notice-content"><?php the_content(); ?></div>. T; l: q: ~2 g' r2 U) D5 r  w( u# [: w
        </div>/ ~" t# O4 b/ e' v6 B3 x- \9 H# l! ^
    <?php endwhile;( C& t- e0 U$ v4 b: z
else :, R9 k3 K0 \' O/ ~, ^( b2 E! \  @# T
    echo "暂无公告";
: n' M' ]$ ~  B& m( M3 K1 `endif;
  m: l" p9 `! wwp_reset_query();3 c3 L; B5 U" s& m7 r
```1 t3 q9 d! c$ r* h

  {9 x" o2 C# a9 c1 U- Q这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
2 K- m0 ]; l* y+ R1 P$ C6 j! K9 f( N+ z" I0 u; n1 N0 _
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

331

主题

511

回帖

3351

积分

管理员

积分
3351
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
2 K4 a8 @2 h( D0 S( k9 }" G% ?8 K" Z* M
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
- E( T/ h0 j9 a4 c) i$ W: `
2 ~* J# C5 X6 s以下是创建自定义插件的步骤:
  T! j2 g& |! p( c% a3 U% Z/ V+ o! N  T6 D0 i
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:- O% U$ z' X. K" L+ J* F9 G

+ e) A  ^' R8 m* ?; m) x   ```+ k/ k, Q1 K4 p- P6 ]( t" `# X) f* [
   <?php! _/ K+ i- H5 b% s& Z
   /*  m9 \( j- Q& m: A9 j6 s
   Plugin Name: Site Wide Notices Plugin
: G1 M" p5 t. q   Description: Adds a new custom post type for site-wide notices.$ ?; I. P7 V& n1 Q3 i% T4 _7 {( Z
   Version: 1.0( ]( ^# B& h0 M, i3 L& ?
   Author: Your Name' V' v7 j# i* w; B6 X
   Author URI: http://example.com. m1 c( \) c* P- D8 L/ A
   */. {" h$ x0 v  f! v: B& ^

" _  [! I8 k7 o5 t: W5 e3 V   // Add plugin code here...
, r0 h7 w7 w$ J/ f- [3 a! [   ```
% F4 u) [" y- X: O) p* \5 d( I& |9 Z7 ^% C" ^* r( x7 l
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
+ x' A/ f. K( n4 ^  c1 {
' ^1 @: E2 @4 W# z' |7 |2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:% v( V+ L, P7 G9 f( M
) m6 w* w/ k: ]& N
   ```
8 N7 E3 H+ X5 i0 ?   add_action('init', 'create_custom_post_type');# K3 R4 P/ y% k0 W. |. g7 V
   function create_custom_post_type() {6 K6 u" b) Z, A/ \
      $labels = array(
+ d0 v) {$ u9 O2 z! t3 I          'name' => 'Site Wide Notices',5 |& U) U- y. |: `
          'singular_name' => 'Site Wide Notice',' q  ?6 J. v# G! z4 x8 @
          'add_new' => 'Add New',
6 c7 y0 x- D# m6 s5 E          'add_new_item' => 'Add New Site Wide Notice',
( ^1 b% a9 S  O  O! _          'edit_item' => 'Edit Site Wide Notice',6 ]& l! H' i/ u/ s7 j3 y3 g
          'new_item' => 'New Site Wide Notice',9 `+ x$ n) r1 `
          'view_item' => 'View Site Wide Notice',
* U* J" x  R8 W2 K. O& {          'search_items' => 'Search Site Wide Notices',
2 X( c( y, q& Z' O% }# D          'not_found' => 'No site-wide notices found',
0 `$ T' D1 \# S3 z4 F0 l: s, \/ M          'not_found_in_trash' => 'No site-wide notices found in trash'
# C2 L1 D5 m/ O8 U! U' K% `      );; T( N" ~) n3 h" p, n

: I/ I5 r' P; q4 f6 ~      $args = array(
5 _  x$ K# [8 ]" o1 [7 |$ k7 i          'labels' => $labels,4 u/ j1 Y$ ~) {0 ~- C3 @
          'public' => true,
' K, i/ @) _) ~9 C8 K9 ]          'has_archive' => true,0 N8 N: `; X0 F) f# t8 H
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
. G! ]2 P' Z* L0 H/ @% N" ]0 @9 H: }* n          'taxonomies' => array('category', 'post_tag'),
2 Q* n8 w5 S" [; j( ]$ A& M          'menu_icon' => 'dashicons-megaphone',% w1 |; Z; V& `# a
          'menu_position' => 5,
2 Y- @$ w$ E7 n* e          'rewrite' => array('slug' => 'site-wide-notices')
# V' N0 C$ `" a. F6 j      );
+ b8 Y. P! u0 B( ]
+ ?4 o3 h( L! W      register_post_type('site-wide-notices', $args);+ Q1 p. p. t; R* M' \. h( J: D
   }
/ o( e0 _5 Q+ R3 C3 T, d- O   ```
" u8 f4 s! S- ~$ r0 m( Q3 v9 `8 C% D& P- }- f) k4 m7 p; E) g2 ]9 h" N* m  Q
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。$ Q+ U* B/ r% s- I3 P3 M
; [: r3 {/ p& b
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
' T' N$ U6 ~8 G4 d1 r! ^2 Y3 L9 X
  [3 P& m2 }" q  u: t; N$ X   ```, Q4 G* ]( E" L5 n
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
* S5 q3 J: u/ W   function add_site_wide_notices_boxes() {" k8 [3 B* k+ W' \0 n2 K2 r
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');- G/ [7 |9 E) L  R: D7 s2 G
   }1 v- v( R# A- H
. ^# p8 a. f$ L  \- G
   function notice_details_meta_box($post) {8 \# R1 S6 ]6 `" [' I3 E
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
# Z) x! `* o9 j+ ~" U; L  }  u      $notice_title = get_post_meta($post->ID, 'notice_title', true);
6 H" o9 q+ m$ ]' k, F" [      $notice_content = get_post_meta($post->ID, 'notice_content', true);
! c7 I$ ]' w: ?0 N% }      ?>
7 C$ \: Z7 J. s4 x      <p># g: l8 P" M, I' F4 y) N# L
          <label for="notice-title">Notice Title</label><br>6 Y5 R6 m! {- N7 X7 i  e& E) J
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">" o( f$ k: k; m) m% y
      </p>
+ y' `$ Y2 w- R5 x! ?: A' P$ s& g      <p>
: A8 C3 f. ^5 ~7 x, ~! `/ ^: m          <label for="notice-content">Notice Content</label><br>
* h% }$ |! b* b& c  V( t          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
& A7 Z9 Z1 X0 X/ c1 n) w5 [* V% K      </p>0 {3 C4 o) a/ ]0 i
      <?php
6 c* u0 n: z# ~3 G   }7 T( \8 y4 @' y  Z" @  R+ K) `

: \: P% k# x6 w% y! _9 y/ h+ G, A   add_action('save_post', 'save_site_wide_notice_meta_box');
8 p( k( Z2 ]$ l: |& ]* H   function save_site_wide_notice_meta_box($post_id) {
- N7 o0 h  D: N      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))( J: l" s. x4 d3 N7 c+ |
         return;
( u- v$ n. Z- L" U9 P      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)  ~# k- y, }. M) u" |+ `, z
         return;# Y# G; H) l+ q" |( J" K6 E

0 v3 e% ~. r. K4 S) V+ P      if (isset($_POST['notice_title'])) {
9 D5 k: x3 U3 P$ U- j# b8 v          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));5 q( a. U6 W2 ?# O
      }: [. c/ F( N. O4 c$ _, t2 E) _
      if (isset($_POST['notice_content'])) {
! ^1 P% Y9 y8 [, P. R/ \, j          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));# j+ o1 G7 S4 N; D( R/ ]
      }4 R! e" h: Z& D7 t: |
   }0 _; i+ D* J. X" o, d
   ```
' n3 d/ n& z: l) b3 y( b: \/ z+ P$ T- Y9 C" x# |6 W+ t+ @7 R
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。8 `4 w4 T$ C6 F+ G
' W$ x8 h! d2 ?% c
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:7 ]% Z1 K2 j7 t! N
- G# i9 L, g- Y: \
   ```
' h" w+ [% Y9 q# S2 e6 Y8 L   $args = array(4 {6 V( |+ R8 n
      'post_type' => 'site-wide-notices',/ c) Y/ H5 V4 a% J5 B& g2 {8 O
      'posts_per_page' => 3,! r, s. |/ I0 F! p& T
      'order' => 'DESC',
" m4 q9 D2 ^) l6 U- Y9 |, u      'orderby' => 'date'
* g: t% A; P: f' W1 z   );
$ |3 O! m8 t& ?: U$ D+ D$ X   $query = new WP_Query($args);
1 K: _6 K. X* S" _! f" ?   if ($query->have_posts()) :
( @) o, Y6 u. ]+ W' j2 t      while ($query->have_posts()) : $query->the_post(); ?># w& r" _7 m$ n& H5 w" b- w1 n( f7 |
          <div class="notice">
/ u2 Y  l, ]4 ]7 \# u              <h3><?php the_title(); ?></h3>
8 z2 O+ I$ v- r0 W9 U7 r              <div class="notice-content"><?php the_content(); ?></div>
3 e6 r* y) W4 A7 K* v1 b          </div>8 j/ x- r- Y9 u% E  o* R8 {. C  T
      <?php endwhile;
* F! C6 _) }" a/ t3 S1 H/ q& I+ L      wp_reset_postdata();
8 Y1 \6 k& i# S( Y( \2 y" f   endif;4 a" P, B1 Q' q
   ```; Y$ o6 A1 L# e. R

& p6 J  s" f3 g1 x7 f- I; Q* m   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|通达产控投资 ( 粤ICP备2023021749号-1|粤公网安备 44030402006137号 )

GMT+8, 2025-11-19 04:52 , Processed in 0.070507 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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