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

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

[复制链接]

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:  Z4 Y0 z# ?$ i  o- u' I$ z

, O" m( {0 k) e8 f  Y( ?0 |1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
4 V$ G6 p1 N; \' [
6 D* t% L( L9 ^5 G$ t% p* G% ?/ W6 Y2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。# Y2 q9 g" s. p* p( z" u* J
( [: M3 x# C: ]+ K
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。% R5 N# t9 [& H1 V/ w5 c

7 r# r3 l" k6 b$ o4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。  q& n( Z9 p+ j
# t( k" |' p6 W7 P/ d( ^; K0 L
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?+ D; s. h' Q. q1 i4 \! Q3 F

4 p* x) `( U  K& h+ d如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
6 Y) z/ T! b9 t3 ]9 n7 `% U- u6 v9 m$ z3 R+ O6 ^, p( k2 p* g3 W
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:. Q; y( B5 |$ n
3 Q6 y7 e" O0 H9 ~& ~8 @
   ```
( N; x% S& F1 h# C   add_menu_page(
  c5 U- p# F! V  g5 z* a( E       '全站公告',- o8 l) o4 U! P) g
       '全站公告',! X2 u2 o* P0 ]3 x
       'manage_options', //需要的用户权限
9 t( Z6 e$ c0 v+ E' A& M9 I, A       'site-wide-notice', //后台页面的 slug  p( Y7 ?8 i- X* q/ j  x3 ~/ V0 _
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
# X$ K( }( y! A8 ~4 l2 W1 z       'dashicons-megaphone', //用于显示在菜单中的图标
4 y0 H8 ?. z) w/ E' r; \       30 //菜单项的位置
, D6 G: G/ M$ Y6 H/ R   );/ h/ C5 g7 i+ ]& ~# `) r
   ```2 s; M) ~/ o5 M$ p8 }8 a* C

0 i$ u) _, Y+ }0 H, G8 G( H   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。" ^/ y2 C$ G1 G# G; A3 e3 x. H' \5 }- K3 w

, k2 C" g$ d5 W$ a1 }3 V2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:  [5 I5 F3 l$ _3 t- Y9 f

( I  d1 x9 [! Z9 C- U) b   ```' a- q6 @: ]$ f' b( d& a# D4 E, Q' P% F" |7 Q
   function render_site_wide_notice_page() {4 a$ l8 T: S2 _; ?. n8 O0 {
      // 渲染后台页面内容. s* A' U1 b" |, Q6 r+ j
      echo '<div class="wrap">
/ w$ t) @7 }/ Y1 }7 J          <h2>全站公告</h2>) [& L7 G+ }* H9 [3 J/ j
          <form method="post" action="">
, b. c8 Q# v) N# A& m9 J+ |              <label for="title">公告标题:</label>
) V! V0 k. n: g              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
1 t! G* m) T9 S              <label for="content">公告内容:</label>2 w: W: x5 j/ [* W5 m$ `
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>- H: E% V' ]* Q; }
              <input type="submit" name="submit" value="保存设置">
% W( F" S% Y, a          </form>5 T2 i2 `! B& `
      </div>';( w" Z4 {5 ^! U9 _

# Z8 J$ d, W. Q: x- Q      // 处理表单数据
2 T% N$ M0 j( r4 v) ~      if (isset($_POST['submit'])) {: N4 L% i) J' O9 S) h/ Z7 V! i
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
" w$ B) j% d5 A0 O1 |2 `$ K. h2 G          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
6 T, f. p6 z; t/ ~& `- F5 Q, l7 w      }* n( V% E) ~0 o+ K0 ~2 Q! [
   }. j0 @+ h& N# Q5 t+ s% W& z8 v
   ```
! V0 R1 v- z% {; T
( c' b1 u, Y$ f; ]( r& _* k: l   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。- m) d) P& A( g  j2 y! r) A/ N

; j& A0 _8 N$ ^. h3 ]3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
1 `! @$ N$ q4 H
* f% F3 R& a+ y& `) o   ```% x. Q' Z" Y% w. S/ I( b* a; C
   <?php
; o8 \6 c$ a7 Z: F$ t, ~3 v   $site_wide_notice_title = get_option('site_wide_notice_title');
) J9 i& a6 w- n/ R- L% f  S7 I* g   $site_wide_notice_content = get_option('site_wide_notice_content');( @' S& t9 O4 B& U) |
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {5 n  F7 I; q9 {" S* d
       echo '<div class="site-wide-notice">';$ y  m4 w) K  i3 A8 E3 \: C0 q
       if (!empty($site_wide_notice_title)) {/ L4 u; [0 o4 w4 ?1 z
           echo '<h3>'.$site_wide_notice_title.'</h3>';" }7 V+ k4 ^1 _3 ^1 g3 T
       }! X! L2 g8 B# H9 O' h. Q) @: H
       if (!empty($site_wide_notice_content)) {
4 D: J" l* L5 G- f% L           echo '<p>'.$site_wide_notice_content.'</p>';
8 W( K  A& p5 Z" M+ `9 {       }( _. n1 R. ]& u/ B% g9 _
       echo '</div>';7 B* [) |5 j: ~  p* P, U* B! f
   }
' c( j2 c% l, C2 w0 h; {- s   ?>
* c8 A& ?, v9 A3 C   ```2 o, b% c# ~2 K

3 v$ A9 h+ d6 m: h; e( n   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
- _  a+ c; c7 p+ A8 l0 b* ~7 `2 r( a% N8 p$ }* V/ k
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?* [4 c2 X+ [3 \; N: r

9 n* c0 b- m. @2 i您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
! M7 Y; ~: Q# k4 W
7 n$ X3 N  D8 ~3 e7 a1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
4 _' ~8 _( ~, o& J9 O, N2 I3 v  v) A6 ^2 u# U. Q: j( C2 V4 ?5 X+ s1 T
```& J4 b1 r/ G' q1 w( j0 |
function create_custom_post_type() {
& ~% I/ f& k1 [5 V& o6 F    $args = array(
7 B4 [6 C9 e7 Y; ~        'labels' => array(
" L/ V. z, K# r# F7 f: U& H* h            'name' => '公告',
5 C( t  R6 V: K( }% W: G            'singular_name' => '公告'
: |/ q+ T/ o7 b) S2 |        ),
6 l: c; n1 {. u% A4 C% @        'public' => true,
, D3 T& _$ b( i+ z- s6 S! \& p- p        'has_archive' => true,
+ q! B2 K: D3 m: [5 f        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),1 y2 `& h9 g. y7 G, }
        'taxonomies' => array('category', 'post_tag'),
9 k# p- W: V% p1 K. D. D" o        'menu_icon' => 'dashicons-megaphone',
/ l: x3 j4 D5 }7 D        'menu_position' => 5,% S# P1 y3 [  D* L4 D
        'rewrite' => array('slug' => 'site-wide-notices')' A+ _( v$ V' H; L) h$ n
    );
. C) Q4 ^9 ^9 |  t0 s7 P% k& {    register_post_type('site-wide-notices', $args);
% G6 }" m, y' m5 j}; A* p' }! F( |" f5 R, v6 W' _
add_action('init', 'create_custom_post_type');
/ [! i8 o1 N6 G4 t" g) }, v```
( I1 e4 b8 [, l; U
' u" y  v! T4 b2 b0 E$ x在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
9 q% _4 J# u  Y8 Z7 l9 I# u4 W; ]; J3 V7 V
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
0 V3 ]3 o8 y' T* t) t9 f1 z" s% Q0 k
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
% @* j2 f$ y: Q" R" i5 N, Y) r
4 _) h) i' {# i5 O```
9 [, i- P" J* ?  \; d" X$args = array(: t( ]4 z, G8 c" K
    'posts_per_page' => 3, // 显示的公告数量
$ l, g4 f5 q% c& C. @, M6 |1 b" h" I- p    'post_type' => 'site-wide-notices', // 公告文章类型8 l' \6 `! K+ ^9 _. P2 q2 L( {% M9 L
    'post_status' => 'publish', // 公告状态" P8 k) i3 ~: z3 X1 x
    'order' => 'DESC' // 排序方式
& u8 u( d9 f$ q; `" {0 k% Q; H  x);/ K& E1 a6 R& m/ ?) \& J; k
# y4 @# \- t3 ?8 l0 \
$notices = new WP_Query($args);/ e% @( j* w2 N% ]3 a% g. \5 l+ j, m
if ($notices->have_posts()) :
: d5 _- U+ H1 \( t6 R$ _    while ($notices->have_posts()) : $notices->the_post(); ?>
1 a$ o4 @0 K2 B/ ~- d# X! L) R        <div class="notice">
7 n$ r6 M& w3 S; U- I6 w            <h3><?php the_title(); ?></h3>
8 S. X/ Y  z" p8 V8 x            <div class="notice-content"><?php the_content(); ?></div>
, L$ ~0 H3 Y# ~- v, E8 M        </div>
. Q% A" ~' C( O/ K    <?php endwhile;
$ e6 K/ [) C" F$ G0 k3 ~else :
. }6 C$ v* F( X8 ^    echo "暂无公告";) G$ j6 I) J) q
endif;. E# L1 Z( w5 s+ O6 {0 {! K
wp_reset_query();
) }$ I' {% p8 a- s: |) y4 ]7 [```( o- P: T' X  @: v# K

/ Z4 s: w. m8 L* m这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
, d) l& \: `: }) p
& a- n+ M3 d0 b8 ^6 L0 g. {& Y% m' ?以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?, x' m4 b9 w; m
9 h) h4 B  C+ Q) V
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。* R# z% D5 Z0 d. D- O/ u
& M: k) ?$ f! X- u& E  N
以下是创建自定义插件的步骤:  J* p, h1 o, G( N: \7 A8 C6 s

4 \4 p+ X) d+ I1 P/ g$ x1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:, |: O7 i1 f, a* q

, Z  S3 `+ F8 C0 p% l, ?1 z  ?   ```
! R: b5 l$ Q* J  h' a" `! C! p  I   <?php7 W1 T: r# v; r8 j: G# @
   /*
8 W& J$ K7 K4 u   Plugin Name: Site Wide Notices Plugin; r/ Z# b9 m" l# ^# M& ^; M
   Description: Adds a new custom post type for site-wide notices.) }) D$ b( q( e6 p( t* z
   Version: 1.04 \' _9 H. u8 G* t+ s$ c8 `
   Author: Your Name
7 I( u, b; ~9 c9 Q$ J   Author URI: http://example.com3 F; `7 i1 k+ [1 ]
   */6 v4 @  `; W, S  L( O) q
$ r- }% d+ v% a/ |' O+ T
   // Add plugin code here...9 F7 E6 a6 Y. a
   ```: k, F# }. ?* G% i0 a! J8 m9 K3 x
6 L( g' l- n& h
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。6 E  d9 v1 H1 I# k  F: L

" t0 c  h( g( s: j- k7 P$ u2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
* X3 i8 D9 }) z1 ^* C
, X/ r1 Z8 C6 v   ```+ I1 B" i2 i# r- h( U7 R
   add_action('init', 'create_custom_post_type');) K3 H0 E& v0 Y( n" `, q
   function create_custom_post_type() {
: l) I4 Z6 [: j. Z9 U      $labels = array(
! p9 f+ e  H7 x          'name' => 'Site Wide Notices',
* C! y* b- ^" |9 @          'singular_name' => 'Site Wide Notice',
# c4 D0 [( y& a8 S; ?% r          'add_new' => 'Add New',
. {) i) A& k/ i% w0 ~          'add_new_item' => 'Add New Site Wide Notice',6 P7 Y# \) G  {! j
          'edit_item' => 'Edit Site Wide Notice',: o$ Q$ x  k% v" w5 J/ @  K
          'new_item' => 'New Site Wide Notice'," n# }$ r8 B. f+ z, l
          'view_item' => 'View Site Wide Notice',; G6 ]- b, p& u& {0 Q% v
          'search_items' => 'Search Site Wide Notices',. z# y& k1 h% p$ S
          'not_found' => 'No site-wide notices found',
+ x) D- o/ n: R1 `' p. N          'not_found_in_trash' => 'No site-wide notices found in trash'
4 a& P& P+ M' j7 M* p      );" x/ B1 v0 O3 G3 v
/ {5 M; X$ ?& S1 ^; t' M3 I( Z- ]
      $args = array() s* C+ \$ h7 l5 Y9 ~: r
          'labels' => $labels,
2 p" z/ C' z- S, z! H- r          'public' => true,- q; z% S2 c0 ^% ]3 x& h
          'has_archive' => true,
# h1 V# g% T5 f! n" U) L. S0 B          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
  F# _& p8 S& L: k/ e( B          'taxonomies' => array('category', 'post_tag'),
' `7 c* t" @& Q$ q          'menu_icon' => 'dashicons-megaphone',
# H7 e3 p7 M: J          'menu_position' => 5,
) p$ l: R3 @& Q( k          'rewrite' => array('slug' => 'site-wide-notices')* ]( S. _  U9 D3 p7 h1 C3 L
      );+ Q" M' r4 f( ~7 i

5 ~8 R( T  i/ K* x      register_post_type('site-wide-notices', $args);& G. o+ w2 y6 M' S5 c
   }
! ?% q5 V, }7 K0 }! ?   ```$ W; ?. R" s. ]: i; }7 D
6 W2 o  R$ X+ x/ {( p) v8 [7 F
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。  I. w3 X6 q) G

0 h3 ^3 K" G8 T4 ~# P6 Y. E( J3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
- [+ G" I# W; o/ M. U
! C+ n+ i; S5 w  A1 D: r/ k+ U   ```0 d0 W% H7 C" I3 Y* r& Q: N
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
) x  s5 l' R& e- v8 Y4 }   function add_site_wide_notices_boxes() {
6 m" M( ]6 n+ `; E- h, e      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
( P& L5 O$ b" i( w6 c1 n( L& p   }
! k( f. |9 `( N2 f4 Y- f3 X# `4 h3 k
   function notice_details_meta_box($post) {  Y0 `5 [. N& Y) C4 o
      wp_nonce_field(basename(__FILE__), 'notices_nonce');0 Z+ R3 q* m1 r
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
& N+ q' }* W; d% h$ O      $notice_content = get_post_meta($post->ID, 'notice_content', true);1 y8 d: u# ~2 c0 f) F
      ?>
  O* A2 G2 y& V: n0 r      <p>- d; H6 R' R% `8 `6 b* w
          <label for="notice-title">Notice Title</label><br>& k/ m7 ]6 c$ z; B- G  h8 [
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
) k! Z. \, U+ `& P      </p>/ Y8 z4 z5 P# i( z2 T8 s. U9 v2 j
      <p>
% s, w- C5 W- ~0 Y5 l  f& C) q% _2 O          <label for="notice-content">Notice Content</label><br>( @1 Q  f% {% U$ S5 M, K0 Z
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
$ @- R; I+ u0 f- T) y      </p>
1 Y$ I* Z/ r) f/ A      <?php
6 S1 C# O+ w3 O0 V   }) C$ R0 _2 J; x+ K: ?3 u
. W- Y7 K4 ]' K% ~
   add_action('save_post', 'save_site_wide_notice_meta_box');9 w( m) ]% i& y: c+ S
   function save_site_wide_notice_meta_box($post_id) {
$ `# y' D* J3 e* D      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))# z) x& g. _+ e; d* I
         return;" r5 H( d& d& a! h. w6 C0 I
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)/ {# s1 p1 C0 D
         return;
/ H& t4 `( L0 \/ ~# C8 U) L6 x) n0 N+ L/ Y+ [7 P/ t/ Q2 r
      if (isset($_POST['notice_title'])) {
* Y2 f+ f2 V' [$ I          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));6 l1 e; I2 r7 O7 L  a) F1 l
      }2 x  Q3 d. d. ]( w2 _  a& W
      if (isset($_POST['notice_content'])) {
7 n5 m$ f4 l( K/ e) I. [3 Y          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));; ~1 U, B3 O& i/ {. M2 ~
      }& o; z& ~9 A) [. k# P
   }
2 _; T1 {' u- |+ s2 c   ```" Y* T' H5 o0 d1 b% n
3 ?$ Q0 }0 J" I  y7 e& d- A
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
5 i9 h! z4 Q. U2 f9 v% N
: @7 i: z* v+ _9 W& S4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:( _) {' r. t& t0 f* K3 r

! z$ ?& A3 V* S0 B% }3 t   ```0 Y, O' C: n5 N# e& t; V7 e! Z
   $args = array(( o8 T. g4 a* Y% }
      'post_type' => 'site-wide-notices',
- q! j( a1 X% r% ?8 {: ~- z' d* c% w      'posts_per_page' => 3,/ z" P; p" M+ Z/ e
      'order' => 'DESC',2 c6 n. s8 K$ ]- X: m5 j1 |
      'orderby' => 'date'/ s3 t0 d3 B  O, d. X
   );# U# @' @: z) [& T: z
   $query = new WP_Query($args);5 I& o5 a+ n% ~3 o/ K
   if ($query->have_posts()) :
( C0 k6 p2 u  _' _      while ($query->have_posts()) : $query->the_post(); ?>
1 k  b& X2 e! e, z1 j/ @          <div class="notice">; a3 b# H" I1 j+ S9 T' l
              <h3><?php the_title(); ?></h3>" `* |1 `5 h+ y6 |) M5 L- W
              <div class="notice-content"><?php the_content(); ?></div>
! N: V1 r& m- q: D9 j7 s( W          </div>3 z6 f$ ]+ D9 J0 J* ]
      <?php endwhile;- J, Z! s' G: R8 q! n( ~; ]! C
      wp_reset_postdata();
. j1 h& B$ D. Y" m+ j& h; E/ K   endif;
2 S" A- Z3 T9 {. w7 Z   ```
% e/ |) I7 o0 ?0 `
2 ^( q. m* ~* B! U( B   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 02:28 , Processed in 0.096574 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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