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

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

[复制链接]

340

主题

522

回帖

3498

积分

管理员

积分
3498
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
& a, n' f) I; t5 H- z5 m. q
7 H- W8 ^- w/ k+ `0 \6 U1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。; O  C. E6 O+ @& K4 j3 B' b4 L
5 v' V/ Q7 B5 y* y/ J
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。# G4 T3 e8 o$ }; s9 C
& M3 Z  @/ f/ l: ]  N8 K* ^
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。; b: K. c  @  ~2 e2 M$ T
' M$ X- Y5 o: [' q
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
$ }. r# z- N! D( J+ \; C
0 F8 M* s- [0 |8 m  v% I" V注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

522

回帖

3498

积分

管理员

积分
3498
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?3 a& ^" a" |7 n5 L& [

4 p/ v6 x# q6 W# }0 \如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:  k% g6 o" O5 d
. l, a# {8 O! _( V. f2 _
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:. D$ s% `( s+ c
  I2 d* H8 l' [. Y
   ```
$ }# X2 f. H8 L2 C6 J   add_menu_page(
! ~# j/ E7 _! X" e       '全站公告',
% M; Z) l5 |( b4 w) _! Z       '全站公告',
7 u: S) d, y& H3 V       'manage_options', //需要的用户权限
2 f. K; p& o/ M8 C       'site-wide-notice', //后台页面的 slug, @( U' x$ o- A- \
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数- z: p& S+ r8 O: D' b' p- w+ B
       'dashicons-megaphone', //用于显示在菜单中的图标2 Q2 y1 L0 [# m# z
       30 //菜单项的位置
' Q4 u* P: u' {9 ~' b8 R& o! D6 A   );
" b, r0 L+ K  v6 ^2 R2 h8 ^   ```
3 P) c9 e. O& ~: d4 {& j0 Q3 T! k
9 Z' ~" w. {* d   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
8 g2 f# c& R4 d# _
& i% _& S+ I* L( c1 G3 Z' K' c2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:1 s9 E* i% ^, Y& E2 N% A3 L
" X/ F+ C3 e/ z, K- ~2 M. Q8 w% ?
   ```
. z7 ]1 G5 W* [( A* k   function render_site_wide_notice_page() {, g. {& U& j6 E' j
      // 渲染后台页面内容) c% u: ^3 `: l( w0 U! k1 B* G. Y
      echo '<div class="wrap">
7 s* Z2 s, e" T8 o* F$ H! t: r9 c* X          <h2>全站公告</h2>
4 h3 D: d' J8 I( _/ U9 ]* ?          <form method="post" action="">3 z' ^* L8 w' Z9 T
              <label for="title">公告标题:</label># Y4 f& v5 B/ X& U0 P
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>( U4 j; X: }9 [- x
              <label for="content">公告内容:</label>( x5 @. \  q8 g
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>( U; a: D  f4 ^8 u
              <input type="submit" name="submit" value="保存设置">
  w* O; b9 i0 \- Q          </form>
* e' `) C. K* M& y+ ~$ m/ _3 a+ Q      </div>';9 J* G  u2 \$ |$ b+ y

6 }; g1 p0 D! t' U7 o      // 处理表单数据
0 E; g& a- ^* P      if (isset($_POST['submit'])) {' e- c' X+ [& E+ m  y9 ^% }
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));, {" z2 N$ \9 j/ E3 w4 b6 ~6 C& A" v
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));0 P/ @9 B3 n6 U3 B
      }+ j# ]6 v4 M& `
   }$ q. A% k  Q$ C3 p3 g
   ```
. Y9 h6 c( `; j+ W1 _9 i8 e/ g$ M" Q
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。( {# U9 \! p: j

6 f& R1 H; c. R/ k3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:) H) J' t3 F3 _( v4 f" W5 V
& F- g- t+ r& d0 v* n* d0 D5 C1 P
   ```. O. T+ a4 h5 r3 }+ ]# o3 R6 m
   <?php
$ ^9 {" G2 X+ J( H0 d3 G0 D) N6 r   $site_wide_notice_title = get_option('site_wide_notice_title');, t7 Z2 U  S$ j3 t8 D5 D3 l
   $site_wide_notice_content = get_option('site_wide_notice_content');4 ]1 V  o+ S  c) e7 M
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
$ p* N( i& H9 I" g" u, G       echo '<div class="site-wide-notice">';1 Z7 J6 {8 T8 C# D8 H" B' Y1 E
       if (!empty($site_wide_notice_title)) {+ L& X% x# f6 t( P, Y
           echo '<h3>'.$site_wide_notice_title.'</h3>';
" S  z) S! f, C& N. \% [       }, g* r$ I7 n% v3 F3 q' s" _% T2 v
       if (!empty($site_wide_notice_content)) {4 w8 N; J0 X+ y
           echo '<p>'.$site_wide_notice_content.'</p>';
4 h7 H  Q5 Z8 U* p5 d% Y       }
3 _5 K5 T1 ^6 d9 r7 T$ B5 M       echo '</div>';
% u( t5 ?8 }3 B/ e1 E   }
" o9 c" H& {) r) F" [   ?>7 |" G" [5 ~: f5 Y
   ```
6 ]) z6 i6 b  a; m4 z9 v0 Q% m8 \$ ^; u& w  ]$ f/ w
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
" ^' ?: B* N5 o. }. s$ l1 j0 v! ^. a5 R% K/ x
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

522

回帖

3498

积分

管理员

积分
3498
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
$ \8 O! {0 x; w: u' R3 @# H8 n# X. _" s# u1 C$ j; G
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
. q0 n2 [; U  \3 U  [. C
1 @$ z1 T4 F- m6 m! g  `3 u6 e+ {1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:8 ]5 x( k4 H) b9 s: |
8 {- ~+ M) R& Q) D# s
```: D- i- o2 }& T: g+ a( L
function create_custom_post_type() {% I  D1 c+ E" t% m( |
    $args = array(& S- E5 Y, f9 ?! F! q
        'labels' => array(
. Q& ], j: m8 i+ B& [            'name' => '公告',
; ^# o$ I9 b" b. P  M            'singular_name' => '公告'
8 a3 l7 Y7 p$ W9 y4 G: R, d$ n        ),7 H* o) M3 b9 d3 S% b0 ]
        'public' => true,
: w" v- k8 P5 l4 r8 j; S        'has_archive' => true,
1 f6 l; s$ T$ B" L; E! _4 a& a# ~        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
# x* H8 F9 ?# V0 D$ G+ b2 P6 ]        'taxonomies' => array('category', 'post_tag'),) p6 ^' e/ V5 B7 y
        'menu_icon' => 'dashicons-megaphone',
2 [: Q3 H- Y! k7 _, l+ @        'menu_position' => 5,1 t, q2 J" I5 q, y- U6 M; f
        'rewrite' => array('slug' => 'site-wide-notices')
) _/ m. m+ v/ @6 a7 f    );" e( \; @! ?. y
    register_post_type('site-wide-notices', $args);9 o" s" [1 G& Y& P6 c
}4 m  \9 x9 ~. o: o& M3 D
add_action('init', 'create_custom_post_type');) Z! s7 @9 m9 W' H
```" G. i6 h! Q" x: z  C1 x" w7 `

: z/ w8 Z& B/ y! ]7 `! Z) b在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
( R* K  ?3 t0 B0 C6 h. o3 Z# l
7 t% l0 I" ?' J2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。$ C) T4 k. c/ E7 t  p

. n4 `- m1 i6 s* S6 z  J3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
: N- i: A' S/ B9 W2 e- r. X) j" R; w: Y- C
```" S  E: ?# L6 K+ w) g  m3 h
$args = array(4 c% @2 [4 D  R% u
    'posts_per_page' => 3, // 显示的公告数量& r4 j: G7 k4 D5 @. D, n: P
    'post_type' => 'site-wide-notices', // 公告文章类型* P: M5 d: ^' G  u$ g% j9 H/ p
    'post_status' => 'publish', // 公告状态
+ |% N! @  h9 s. c4 z$ G" ]& C    'order' => 'DESC' // 排序方式* U. b! O: U: K: H1 Z
);
: @" l* w9 J& G3 r! ~6 u
3 @/ j: ~+ N4 R# y# q0 z$notices = new WP_Query($args);; i+ W- p! r  g2 J, M
if ($notices->have_posts()) :
# |  i7 ~) V: j% L; z, H6 T    while ($notices->have_posts()) : $notices->the_post(); ?>4 P# u8 d. w" d" c
        <div class="notice">
% w! N9 M! L9 o3 r3 d6 S            <h3><?php the_title(); ?></h3>
$ Y' {5 _' V5 z4 b            <div class="notice-content"><?php the_content(); ?></div>0 J8 d9 ~" d$ L, p
        </div>; I1 _7 t  ~) p+ j8 I- \# m( J1 K1 l  ~5 q
    <?php endwhile;' Z/ b7 [  O( e  y$ u7 o. J4 n1 Q
else :6 Y) S0 u5 K4 U0 {2 |
    echo "暂无公告";
9 c# `* i5 r4 B4 [+ jendif;, a. }6 q  f! G% N+ `/ n9 V6 i
wp_reset_query();4 X+ i' T  L* d: y+ g+ S( ~; P
```
# u6 [3 {0 y! c) i  n0 Z0 U% v, J3 b
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。2 q$ k. ]9 m' @( J8 n* J
# R- @; S/ e' T( o0 d
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

522

回帖

3498

积分

管理员

积分
3498
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
5 o. G! D  `+ h
2 h1 ?: t6 e4 R; G1 t9 e( ]如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。2 {0 Y* D- r) q8 f6 P

5 ?2 v8 [5 f2 }' j- ]5 W6 g以下是创建自定义插件的步骤:
  }" d9 o  H' m/ [' H! P% O4 k- c/ @3 i- n7 I3 J. W$ c4 D. d& k
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
$ u7 v" e2 i0 w0 Q! L" D! I* y1 E- P, |, ]7 R
   ```0 \  m0 ~+ l- f$ p# v7 v5 p
   <?php, |; C& \5 K' F0 W% X
   /*. A+ {, m2 g: i
   Plugin Name: Site Wide Notices Plugin* \- I! Y3 w! Q
   Description: Adds a new custom post type for site-wide notices.8 I8 e1 u3 Y4 n
   Version: 1.0, \# B/ ~1 c3 \2 T: \& g+ m2 W
   Author: Your Name
: _7 E( e1 c; F   Author URI: http://example.com
6 L0 U) f* T0 u3 {2 G- t7 Y   */' A1 W3 i9 K- l( N
+ B8 M0 N1 k/ J$ P0 R; ]
   // Add plugin code here...
+ A/ t" F8 Y5 f- I  [  ]9 l- D   ```
8 S; T) ?3 Q& @+ ~% Y* r
  h. B8 W$ r$ ?$ t0 C! \$ C   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。8 R& N$ Q% H! q# e

, u( U( m* [% K$ {. b! u  Y- U/ B2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
. P, ^6 {: J  K7 Z/ k. p% P, s. p
: H; {( R' @; @% a   ```; u; U8 J9 i" h3 q! [' E; S$ k
   add_action('init', 'create_custom_post_type');
" }' v$ T/ v0 j$ I   function create_custom_post_type() {8 }+ y: j% k4 h3 ?' w& B& P
      $labels = array(' i9 r  M5 ~6 }: e% {1 K$ I
          'name' => 'Site Wide Notices',
, \( s8 B' q+ G1 C# P- M& t          'singular_name' => 'Site Wide Notice',
  \5 W! A- |* `; U' d8 h2 p8 L, h          'add_new' => 'Add New',
. h. K' u  W2 Z0 w9 }% Q0 E          'add_new_item' => 'Add New Site Wide Notice',
% i: k8 Q7 g' T2 Y, B' }  F          'edit_item' => 'Edit Site Wide Notice',
) [' Z# [+ Z9 ~/ K* w          'new_item' => 'New Site Wide Notice',
" B: C* l' U0 a/ ~          'view_item' => 'View Site Wide Notice',  X/ r7 h0 Z+ u" j4 V
          'search_items' => 'Search Site Wide Notices',1 Z: V6 _( w4 f! a* `
          'not_found' => 'No site-wide notices found',
  a, \( f% d3 F; _2 v* W  Q% i1 h          'not_found_in_trash' => 'No site-wide notices found in trash'
% @7 H* K* a' u4 Z3 ~5 t# o8 Z      );% ]% _! E4 V5 l
8 d& v7 T4 V8 n& `& v
      $args = array(
7 ^( `+ Y2 f% F9 w          'labels' => $labels,
# |7 @' `$ @* F4 W4 C* z  {9 Q1 V          'public' => true,# d0 r7 C. P, y2 h  P8 I
          'has_archive' => true,& @2 Y' J6 @4 k% m. C! W4 G& J/ v! }3 a
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),) j& P4 m+ D3 Q% j; I$ ^
          'taxonomies' => array('category', 'post_tag'),
8 ~* h. ^6 z' i5 C6 g2 Z          'menu_icon' => 'dashicons-megaphone',- E: X. X8 z: C/ V0 D
          'menu_position' => 5,! y: p6 {- q! a6 f
          'rewrite' => array('slug' => 'site-wide-notices')0 N5 u. D  c' w/ M) }0 O
      );
& F( P( {" n- s) ]( W+ T& k
) C/ ^1 F5 n0 h& s      register_post_type('site-wide-notices', $args);
& I" M2 @" y9 ]1 j, k   }
7 q8 `$ y: O% G8 c3 N) S, M4 U   ```
! E( q4 D  M9 h/ S4 p* r& L# Y- S. k6 R: ]4 q5 N2 X% {8 _- k, F3 d
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。( C$ ~0 O+ ~$ f
7 G! x+ j8 s$ a( {& U7 i
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:* T& z& |7 u2 M& p
$ p: z1 N  ?+ N& l# C: \, s
   ```( A% d& V3 u. j' C. r: F% M
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');+ u/ O$ n. K' v8 _' T1 W. j; r6 c
   function add_site_wide_notices_boxes() {
: Q1 o' O5 a& X' G) B      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
# M/ ?& P9 {0 [   }
- b/ z9 d4 |* K  [' d/ V  j3 z4 }9 r( Y0 c7 ]. k" l5 ]! i- `
   function notice_details_meta_box($post) {
! F. b& L% J6 ?# w& i      wp_nonce_field(basename(__FILE__), 'notices_nonce');
% {( @( @* n- q7 d3 |- x, I      $notice_title = get_post_meta($post->ID, 'notice_title', true);
0 t) K7 X5 X4 s6 L  ?  P* d) p      $notice_content = get_post_meta($post->ID, 'notice_content', true);
# I$ \- b$ k  F8 {, k      ?>
4 P; o& S2 _! [+ n3 c4 `$ ]# r, o      <p>
6 y/ x9 u+ y3 m5 C3 c5 l0 |          <label for="notice-title">Notice Title</label><br>
! Z% c* }7 K: C2 l( E& E          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">3 [: x) E8 ?4 r0 _( |
      </p>
8 _" ^( ^$ J/ d      <p>
) V, n2 ^$ ]% G, M( \          <label for="notice-content">Notice Content</label><br>
' u) f) h% d5 L) {          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
2 b" Y; G2 ~4 [9 T      </p>" u3 \+ t6 a+ t2 B9 }4 c
      <?php7 N; g6 {2 d( Z5 \# t. t% w
   }
+ a/ {8 O/ e9 p, K& }. r: S& |. ~" D
   add_action('save_post', 'save_site_wide_notice_meta_box');
: R# p+ X& C' ]- g' E4 w' q9 Y   function save_site_wide_notice_meta_box($post_id) {+ D+ m# W9 G' Q
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))$ K  }: H  o, h# |3 X- X4 `* R8 e* X
         return;9 O+ k) {7 W& x; A2 e5 C2 z
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)  @" b, C/ G9 S0 ]
         return;
* T" T: ]$ e9 ?. y; x
7 E& }1 _! t; d: A. p( W, T! Y0 p      if (isset($_POST['notice_title'])) {) _) s% r5 T% A4 P$ O
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));  s8 e) P1 j, q/ W/ c9 q
      }
# O& N$ z* j1 E3 H( G3 p# L      if (isset($_POST['notice_content'])) {. M% `' X6 X& i* r6 p
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));0 g& `. P+ q$ [) [" u& @
      }
5 T4 o! i1 c3 @4 P+ o$ z   }% V8 G: u  M, W- i! l" Q
   ```
' U8 b7 p' X9 _% K9 u0 A3 [7 a& ]# o/ \7 c6 v# a. b/ G1 F
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
  i' k+ S4 f! H# e2 A0 s
. A. C5 r, q& R3 V+ ~# w5 X4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:& f- W+ c) u' H% P+ `. O  U6 D  T

& p& P, a; c0 |+ Q1 O   ```
- r1 j. t2 k# e4 Y1 n   $args = array(+ Z& c2 m. g1 K" N$ X* [
      'post_type' => 'site-wide-notices',/ n3 |. D  |6 O& G4 ?
      'posts_per_page' => 3,
* m* c7 I* U0 A& u- y/ P      'order' => 'DESC',
! W  v" k, g* Z! u% |) g# d      'orderby' => 'date'
" i3 e) B$ D( R$ ?" k$ M   );
7 u1 S! M' r9 |4 C* }! x   $query = new WP_Query($args);9 \# y; Y7 }4 P$ q$ v: P
   if ($query->have_posts()) :/ D6 J( ^# ~  x; d' S
      while ($query->have_posts()) : $query->the_post(); ?>; K- ]: _! m& {& E% W9 w
          <div class="notice">/ c' B! h. K. H' e
              <h3><?php the_title(); ?></h3># U. L" x: Z8 ^9 B6 a9 p
              <div class="notice-content"><?php the_content(); ?></div>
  K. X/ f$ W4 h8 P# e& `: I          </div>- x0 g/ G0 e# n9 E
      <?php endwhile;) J, J3 [% H  C* w3 o$ I
      wp_reset_postdata();$ c$ T3 \& p" ~% V' y# |1 ^2 U
   endif;
5 S# G6 B+ @, z2 L/ \6 K9 N   ```
9 p, N* `- o/ z9 W( A# [. K1 O  ~, Q9 {. }
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 20:44 , Processed in 0.013555 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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