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

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

[复制链接]

335

主题

520

回帖

3419

积分

管理员

积分
3419
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
* d0 h  S) y$ u8 M) x* l5 c: k7 i8 H9 u. v& t& H
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。! {' d. J; ~1 D" J  o

4 Y  Z! ^' \/ n4 S. n' l5 u9 u" i1 `2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
7 @( i- g  f9 Z/ t5 n
/ u' t! T7 a% W5 H3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。: F3 i7 E$ s$ `2 S1 k% o: T( q

3 o$ o8 q1 G5 ^1 O4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
0 t. X( k8 G( F. M! h& w; p& }' J( Y, m, B6 O
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3419

积分

管理员

积分
3419
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
- |6 z3 q% B; t9 J# _0 I1 v/ R6 y
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
4 p9 M& z7 \- M7 ?. a& D6 h) g
1 W( t% t4 ~2 V# v9 o4 f1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:' }  Z6 w' |$ Y  E/ b5 X
- m& v! d0 q* `5 ?0 y  ]
   ```* O. |: E3 y( V+ n  J5 F+ u
   add_menu_page(! v% K2 o2 {$ W
       '全站公告',7 C! U0 K6 b+ K8 {% c
       '全站公告',
: V6 f! Z3 S: a+ W' E8 b( P! r       'manage_options', //需要的用户权限) @  M- @+ @- _
       'site-wide-notice', //后台页面的 slug, S4 W; p5 V! K7 _# ?9 q0 `' o
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
" g! e$ m4 V" H: s       'dashicons-megaphone', //用于显示在菜单中的图标
$ D: l7 H, c9 ~. n, ~, b# K       30 //菜单项的位置
$ H* T: Y7 {3 }) S- j8 f6 M( E. _/ p   );
1 [/ A6 L- c% S7 t! u   ```
. R" N* y, _% g: i9 u* J/ m6 N7 F/ D0 F! b! d0 e/ N' n) U
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。$ k' [, ?, s( A

3 l' V! A" b, w+ R% Z) D5 @2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:- d" u( H7 j5 J! _( J
7 K5 g8 i3 F$ \& v- [! v
   ```
4 w; u# _+ }) \; a+ V   function render_site_wide_notice_page() {
9 P6 r/ @# S/ b* c1 J) c& G1 d- h      // 渲染后台页面内容
' G0 s9 p- p( R/ }0 f4 N: B      echo '<div class="wrap"># j2 w2 s4 [/ r; f
          <h2>全站公告</h2>: _. ~4 T: j) d
          <form method="post" action="">
7 G. W6 x: I! G' L% H% m5 v& [- l$ u1 A              <label for="title">公告标题:</label>
2 n/ A) a, o' x              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>' h$ z3 D' C  i- J
              <label for="content">公告内容:</label>1 X1 \9 t" [  O* L2 s
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>; {  o5 C$ H, J$ ~! ^
              <input type="submit" name="submit" value="保存设置">
, O2 q" @2 m* a/ d, T' \          </form>5 K3 N, C1 O" C4 J. J2 k
      </div>';
  x1 R  m7 e) @( k" }0 P/ E! y
! O* K: x! T; W& A% p& ?      // 处理表单数据
/ f1 v4 t4 l7 }* U( X: J! s      if (isset($_POST['submit'])) {6 F% {' g+ {! t" B
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
2 j7 j4 _0 z  D          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));/ W2 L9 J: k- \" r! B1 }
      }' j& p& b# {. |; R! ^8 X
   }' X3 [/ b5 @8 `, S# X- s, S, l
   ```& [6 b0 f. m& r: Z( H5 @
6 z0 P+ z% s9 E
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
6 p/ [# o' l0 y+ U, W& Q+ ~
2 y, u. N' h# \9 _, [% X4 y1 G9 C; i3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
2 k6 }) _; |3 h& M8 m1 k- [, r0 q
   ```! q* e) V6 O3 J% z7 E$ O
   <?php' G& c3 A+ ~. O5 m3 t
   $site_wide_notice_title = get_option('site_wide_notice_title');* i) `( o: r2 c3 O% |) K  \: I
   $site_wide_notice_content = get_option('site_wide_notice_content');
3 F, P% s, N5 ?# F/ K& A   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
2 U  T4 C* K* L+ h; @( s& t8 t       echo '<div class="site-wide-notice">';- z6 ~7 O. [: g/ Z
       if (!empty($site_wide_notice_title)) {/ w2 ?% b& h7 Q# q/ R8 R7 e. a6 D
           echo '<h3>'.$site_wide_notice_title.'</h3>';% z' D: p  O( m, }$ K0 L6 M
       }
0 D& y5 _  a0 v  F% S  k. k       if (!empty($site_wide_notice_content)) {
' V6 F5 b8 T3 e0 d           echo '<p>'.$site_wide_notice_content.'</p>';
! \0 v+ Z8 d9 J; y1 L: r) g7 W       }: ^* M5 X6 V* ?5 I, \' i0 N) W4 F
       echo '</div>';* \& I; a% S, @0 X
   }2 d& E9 V  p( \7 a, r3 U) M8 |  V5 C
   ?>: u( F, r& \* g( z% c/ F
   ```
. r8 F9 w$ ^% ?. x, F: c, V2 ]0 ]: W! a# Z3 `
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
8 G+ F- Q* h/ h; ^3 K$ L$ {: y1 e- Q, J( Y. u/ G. ^6 C
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

520

回帖

3419

积分

管理员

积分
3419
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?/ |  q: E' Y4 }0 l. c: m( T

1 o' v8 p$ ?. v* r  t. ]1 C7 x您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:" F) J) _# ]) X4 _1 g
5 V" l* c9 D/ X( s8 T, X7 ~! b
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
% B& z) {/ Y% }1 j* R2 G
- H# B2 M4 y/ B2 N- t```  ~; s1 \. G- n% ]5 |. V0 }
function create_custom_post_type() {6 \, Z4 `0 z1 _7 u0 v5 t& S$ u
    $args = array(
  U) L/ v9 l6 t6 z. K        'labels' => array(0 ^* P( d$ {6 ]) V8 k
            'name' => '公告',- G+ M) Z) Q1 C$ X' `% ~9 E) G
            'singular_name' => '公告'0 P1 r# B5 k9 b5 l
        ),) y" i) _4 S: F0 ^6 V0 f
        'public' => true,/ G+ A1 B1 A. U) R9 y$ [
        'has_archive' => true,- u7 W7 x3 b5 m# T3 R
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
% f+ |: G: |7 t; c$ R( K& s        'taxonomies' => array('category', 'post_tag'),6 I/ q1 |9 z2 d4 [& \
        'menu_icon' => 'dashicons-megaphone',: w5 |4 G1 Q" [- Q- M( D- h
        'menu_position' => 5,
. K( i+ _" l/ R4 z9 K, Z        'rewrite' => array('slug' => 'site-wide-notices')
( Y) Z, L: `7 F# X* }) }3 B    );! f9 d; e) A. [! P+ T
    register_post_type('site-wide-notices', $args);
# K, ^* W) X" ^; G% P0 k& P+ D}+ |  E6 v6 m: A* \" {, \
add_action('init', 'create_custom_post_type');
5 @, f& W/ U* h& U) z5 d+ L```
# b- q$ {& A5 r* P. B2 j: J# w
3 m$ Y3 y1 L, x. `0 o5 q8 U在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。9 O: N3 w3 u) w$ u0 y
: J& }2 e6 \" ~& ]' n  I
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
, m$ X# H9 {  ]$ L# ^! ^: W3 Y! W8 j5 M; [
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
4 a% [7 L3 M; t* h8 T* g7 p6 m1 Q3 a1 U
```8 F9 R2 j! o( v- @  T* l0 {5 G
$args = array(
2 u; M  d' @- g3 @# o    'posts_per_page' => 3, // 显示的公告数量4 k7 a& |) N& m4 e8 ~! k$ W/ n& Z
    'post_type' => 'site-wide-notices', // 公告文章类型
8 q* v& c! u2 s    'post_status' => 'publish', // 公告状态9 P, y2 N* C$ L, X
    'order' => 'DESC' // 排序方式: r" O% G( A" S% u  s2 O' z" j) G
);$ m( [, M. L* g# ~% m0 J! Z/ z# w. U* r
6 Q0 o4 f5 {0 R5 Z1 s
$notices = new WP_Query($args);
  F% ~# K' w4 m8 T8 gif ($notices->have_posts()) :
9 r% i, e8 o! o& m" W8 M0 k    while ($notices->have_posts()) : $notices->the_post(); ?>% C+ F+ Y: b! s5 ]
        <div class="notice">& O6 g( P: n3 H! z
            <h3><?php the_title(); ?></h3>; K7 E$ F: s  t+ X- [
            <div class="notice-content"><?php the_content(); ?></div>2 u3 O. n$ E* b7 ^& X' h, A+ \
        </div>
5 R. a) d; h8 N! H# A    <?php endwhile;- ^3 s3 L9 k9 J3 q4 Z
else :
$ B& h8 a* J7 Z& u    echo "暂无公告";5 I+ M3 A' y3 K$ k# H. k5 |5 c: V
endif;
; y' _8 M( w' `# B8 e; owp_reset_query();4 h2 }. x% p& R( p0 F
```
. M& q: h/ M2 H# B, u/ l: J+ H9 `+ G$ ?2 Q3 n& n& y( a, `0 P
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。4 p, @6 k' {1 o) J" O* M3 I9 E/ O

7 f; `- O4 t" T  q9 }以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3419

积分

管理员

积分
3419
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
: }/ T8 k& C5 g* v! ^, b) M7 t) L/ m! b2 o" r3 h
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。+ _( v, A5 z7 s( B- P& o/ C/ j

- C* a9 j( N) h! t4 [以下是创建自定义插件的步骤:
. _3 I5 U) `9 m
' {( ^5 H* B1 I1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:+ J5 b# T3 Q1 |, n
1 _' I) v, U  [& w8 r- u2 r8 b
   ```
# t* p8 ^" K& F( P" _5 Y2 \3 Q& T   <?php
3 ?& b. q$ g5 O. x$ s  p6 K3 I1 y   /*8 _1 f. I% C) Y8 H: K# p7 B0 ]
   Plugin Name: Site Wide Notices Plugin
* _* s5 S* K/ O   Description: Adds a new custom post type for site-wide notices.: V, |. M1 C/ @, p1 B
   Version: 1.0! Y# [/ W0 u# G7 W2 i' F; E6 K
   Author: Your Name# I9 i* x& n! c7 Q) N
   Author URI: http://example.com2 @% T. ^# \( [* S  F5 r/ m
   */4 [; N4 y" X: D. h

+ n5 i* z4 g7 f   // Add plugin code here...
8 p4 Q) R, f+ H- A   ```& `  P! b, I' z
% I7 r# D6 H3 m) q2 X4 l
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
5 X5 {" K# I* ]5 q# V$ {, X( N9 N4 o# ?- ^/ m
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
  O% g) _% i1 K2 L7 H; l) }4 B+ G/ ~  R
   ```  W+ j# e8 n" D2 P
   add_action('init', 'create_custom_post_type');; k+ {/ A: b0 `; R
   function create_custom_post_type() {
' P5 `  J# O) R      $labels = array(
. H9 ^7 E5 ^: _- N5 v          'name' => 'Site Wide Notices',1 ?; i, j, [+ W# g* K) h
          'singular_name' => 'Site Wide Notice',* P! u) ^4 n; Z) p/ Y
          'add_new' => 'Add New',
" p( z! x, S  S3 k8 ~          'add_new_item' => 'Add New Site Wide Notice',
' i' f7 n' M1 i; l* M          'edit_item' => 'Edit Site Wide Notice',
# L8 d, C: s* T- d* F  p+ ^$ e( O          'new_item' => 'New Site Wide Notice',
7 Z5 @/ b6 o% M+ m" K1 I% f2 v* a' [          'view_item' => 'View Site Wide Notice',
7 v& w  o" I. i5 g" h8 o- z, H* ?          'search_items' => 'Search Site Wide Notices',: n* H1 Q/ H. f; j
          'not_found' => 'No site-wide notices found',9 S+ i* f! ~8 o1 N
          'not_found_in_trash' => 'No site-wide notices found in trash'9 [/ s9 v- c5 Y) C' e: p2 {
      );
; W( y" V. S" W3 K, @8 s0 ^, [, J8 m) T8 B2 u4 |6 G. t$ ?
      $args = array(9 V9 `1 U& _7 e/ l( _9 G( ]6 R; H0 t: W
          'labels' => $labels,3 e) c" m6 y- A% @7 t2 B% h9 b
          'public' => true,
" x1 h6 J& k: n          'has_archive' => true,1 |1 f# }) m# Y% i1 U, j
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
5 u% O9 |+ I  V; e          'taxonomies' => array('category', 'post_tag'),6 Q9 y/ D5 n' Y3 h: J1 Y  Q. {3 R
          'menu_icon' => 'dashicons-megaphone',5 z" \" v* j! M) h! E: c  m- [
          'menu_position' => 5,
! l" f; G! f! V) x( n          'rewrite' => array('slug' => 'site-wide-notices')
$ r1 [  h7 c$ l9 E      );1 A! d  \0 H6 }
7 D' x) ?+ x8 M: w, M8 H
      register_post_type('site-wide-notices', $args);
$ x& O6 Z9 W6 Y7 ?   }
2 S7 g% a' _# ?, \. x1 R   ```5 ^  ^1 w* |( f7 ]& K
$ @% I! [1 u! D. M+ U& S
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。8 |1 h9 A/ Q. ^3 H: A# J- p) ^9 j
8 b0 Z6 Q0 A$ e4 t, L2 W2 r
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:& E! S) v. Q+ [
0 @. l& E9 t7 r- Z2 L& S8 _
   ```' W: F# ]; s3 U8 @: H+ t
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
* w) R! {$ c2 u/ j9 ^! I9 _   function add_site_wide_notices_boxes() {8 v' z& f- w% J2 `& R" Y
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');1 i1 _" L/ C3 w' r! ~
   }
. K) n8 [7 q- o4 S* n" x* g
) ^" F0 y1 \9 t( A% Z) P" |   function notice_details_meta_box($post) {
( i4 Z9 [  _# S" q& z! B- p      wp_nonce_field(basename(__FILE__), 'notices_nonce');
* g% l' U1 @; ?, J* r      $notice_title = get_post_meta($post->ID, 'notice_title', true);
8 s! {' l3 j1 G: A* @% D      $notice_content = get_post_meta($post->ID, 'notice_content', true);; n, @& Z7 X' E/ y
      ?>+ v) z$ D! B0 l0 V& @7 B' J) q5 e1 v! d
      <p>
, l- U8 x  r' o; P          <label for="notice-title">Notice Title</label><br>
: q0 ]. U. U" e! b7 I, n          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
9 x2 P6 G& T0 o, J      </p>
: m8 N1 |" v) _. G      <p>
: i. r; G8 i* n5 E          <label for="notice-content">Notice Content</label><br>2 S5 e& ~5 R2 k6 T
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>/ B0 e* e$ s' p1 k5 J  ?  F
      </p>2 j7 @) {8 `& ?; w
      <?php9 M" n; h* R( @' L9 D- {
   }( L% \3 R4 @& q3 k! Q2 F

1 t- ^2 t$ _0 p: w   add_action('save_post', 'save_site_wide_notice_meta_box');1 u9 h% K2 ~- I/ f: Y: O
   function save_site_wide_notice_meta_box($post_id) {
0 D, @& A# R% c  V1 z0 L      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))- X" q  q# q0 R3 W
         return;
9 G3 @& \6 d% G5 a      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE). [7 q/ B5 R/ Z; z  R
         return;
2 L5 F' h! d% Y3 k+ @) h" z3 w7 L6 q
      if (isset($_POST['notice_title'])) {
8 y! @2 v2 X; e9 D/ K          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
1 Q  n1 k7 m7 [( Z) y# K0 v+ ^      }
9 f% Q2 f, ~# g( ^4 M( N' u      if (isset($_POST['notice_content'])) {& k5 w9 i' c0 C! w, _" k3 S4 c
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));: E7 m0 m$ T- g( C2 I' M
      }
" L* {4 `- U1 n/ L- z   }( k* j8 k0 O8 Z- d; s$ i8 ]$ D
   ```/ `! {5 J' _5 E- U% V6 Y5 [$ H
2 i3 j& [0 a: N5 [& F
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。) u* g0 J/ j: j; ^5 v2 X+ q6 F! D
: z' @, N4 g: K7 b0 y8 S
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
1 [/ {1 f, `) q# p2 j9 f( ]4 k
1 O! G+ S& G! c" |+ h9 n& c+ h: @   ```
0 f, p% Y$ v2 @% u4 T% Z, z   $args = array(
3 J  h' k# J/ c$ ~7 r" B      'post_type' => 'site-wide-notices'," x% C5 i" b: G" b; K
      'posts_per_page' => 3,( ^. R, ]( ]/ t3 Q( [7 D
      'order' => 'DESC',
5 f. S' ^% x# b/ }$ w6 H6 q      'orderby' => 'date'( C2 N! t  {/ \
   );
: `/ k& g; `8 f! q4 U   $query = new WP_Query($args);1 c0 p( {5 ]! r& R
   if ($query->have_posts()) :
" k$ n; g  F; k* u4 u$ U      while ($query->have_posts()) : $query->the_post(); ?>
+ l5 E  A! t9 [* R          <div class="notice">
$ i8 m& U& a- l5 i              <h3><?php the_title(); ?></h3>+ p  ?+ x% Q  ^. k+ T. W( c
              <div class="notice-content"><?php the_content(); ?></div>
6 Q9 P1 {2 ]" L! O7 @) ~          </div># i5 L' w' r" V, p: U0 P# t
      <?php endwhile;5 v/ E# ^6 q: L, ?; a
      wp_reset_postdata();
- R* m7 q! b5 z+ I* ^   endif;6 B8 ]; G% D9 ^# P; ^4 K$ h
   ```) _* [! u0 x. B5 j

' j/ F9 D+ R5 r6 z# w* U   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 20:43 , Processed in 0.071036 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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