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

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

[复制链接]

332

主题

512

回帖

3366

积分

管理员

积分
3366
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:9 {+ p" Y4 z! T/ B+ e/ e

  Y5 b' ?  i8 ~4 ]0 w1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。$ x( N9 c! F# L, ~0 ]& X1 n

& h+ R9 t1 t  V) C3 W2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
$ e$ v7 [: x! I9 H3 k- r' i5 {
5 `( ^8 H1 e/ ^& e3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
5 `0 z% e& M% s
: B, w" ~+ d/ r4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
& H" |, C/ |( Z9 ^3 a) F  E6 P
; N5 G1 w! |- O8 |* P, I5 h5 ?注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

332

主题

512

回帖

3366

积分

管理员

积分
3366
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
+ d4 H1 N( H: ~) |) _$ a, Q1 ^6 F. b
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:; o! m4 z  `& G4 \, k1 l

% [3 X0 b% G, u0 c+ O1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
' h+ {8 }$ h  S" H1 e* Z3 Z  ?6 w
8 ?/ C: _+ i+ b: {  X5 n7 [' T   ```
+ @) W! F: B9 O' x8 P   add_menu_page(
9 q# T' n! [" U4 F9 O" T       '全站公告',, _, e8 G- S2 m/ @8 B
       '全站公告',6 y' |8 h1 `, t. ?4 \) {$ V
       'manage_options', //需要的用户权限) v) q  t# q! c* p, M# ]" m2 x: L
       'site-wide-notice', //后台页面的 slug
" D! w6 A1 n( |0 N' M  \; X       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
, C) j& k5 S6 ~0 `6 U       'dashicons-megaphone', //用于显示在菜单中的图标
7 @1 Y8 [) o8 o9 P9 Y; }       30 //菜单项的位置7 E' o& ?5 X" L9 Z) U6 D
   );. k. l4 h1 }0 A) k5 X% @, z
   ```
: Z; ^! @( S. v, L0 ?
4 V" [5 b1 g- y   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。( ]. p5 }$ N2 }$ _% X3 w9 h
: b: {% c1 I- q7 D3 v1 a
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:7 [* l! l' L- {% A/ r: i
  x7 d' s( r1 b, d3 V, l" T
   ```
+ ~3 g$ c  E# k0 R9 r4 K   function render_site_wide_notice_page() {5 E$ E5 T  m1 C4 O/ S  Q5 m* A
      // 渲染后台页面内容: ~/ S7 F: K. r6 L& N7 M) a; x
      echo '<div class="wrap">
+ f% X$ m* t* z          <h2>全站公告</h2>
+ k% I9 ~) _# h& b7 h5 e          <form method="post" action="">
& y, t4 C9 D" j5 s! D0 S1 d              <label for="title">公告标题:</label>  H  ]- |" x  a, M3 d
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>+ h' F8 P! h/ V2 [$ F/ y
              <label for="content">公告内容:</label>
+ n6 t0 Z% m% E) r- }9 |' q              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>  ~1 N+ B$ b- o1 z
              <input type="submit" name="submit" value="保存设置">
9 d  d: b7 W5 [% P/ U* s; _          </form>* x* \) H2 O4 K& e. ]- V# j/ }: P
      </div>';% l7 R  Q# W7 [0 }

/ \/ H; @9 D1 T& K9 S# a+ J      // 处理表单数据
  w$ b" S; C  f( ^/ M      if (isset($_POST['submit'])) {' x' h  |6 A& Z! B  W. b9 D9 i' _$ I9 Z7 `
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));# \( _1 P5 D! ^) x" G( c2 X
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));- I* w5 E* Z% l, w; n0 K& g
      }
6 [7 M1 T$ X% r5 }% m, r# r   }2 B) |: U/ p) v- f4 N( X5 g$ y
   ```
0 u: j, X: f, w* ^, l- ^0 W, k9 ]
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
. u: D) w8 O! C  b( [& B' w! y/ p% F* W3 b
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
3 J& w. J4 L/ \( n' Q  v- U( @
, G9 q* M" k4 b+ e% w% ^  k6 j7 {   ```
# E, }! m- J7 _3 E, y% d! A) }   <?php
7 T1 j! F8 P% l3 L3 w8 a6 C+ a. ?   $site_wide_notice_title = get_option('site_wide_notice_title');" |6 n% M0 v' E  P9 w* `6 E- R8 s
   $site_wide_notice_content = get_option('site_wide_notice_content');
" W6 H* o2 n5 i1 U' r6 y   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
% T; L1 P- f% p& D% f3 z       echo '<div class="site-wide-notice">';
; f# a8 {4 k9 t0 K       if (!empty($site_wide_notice_title)) {
% E+ a" \6 z6 k) s3 {" u           echo '<h3>'.$site_wide_notice_title.'</h3>';: q; C* k9 `% C# G. B; Y8 v
       }9 W5 C+ w! D0 e5 }3 y- f+ l
       if (!empty($site_wide_notice_content)) {
# s3 B$ U+ d5 r& g2 d           echo '<p>'.$site_wide_notice_content.'</p>';
% |& w( g' L$ V2 D       }
6 T  Q; ~  G! a" {6 z% N       echo '</div>';
8 x, @7 _7 l4 r2 j. @  R5 a8 V* A   }& W2 X/ C; C  G- [: ]% M
   ?>3 Z. a" @2 w- O; {' d, ~; g  H  p
   ```
" d: i7 C; G  E  i0 T  A
5 y/ _  ^( K! Q" D! p, q: j* a   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
2 D% w+ E, l1 T! N5 o/ C3 W$ @6 h% ?" z3 T8 T$ Z
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

332

主题

512

回帖

3366

积分

管理员

积分
3366
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
5 N/ q) y1 V  G4 y+ W3 o6 b* }% m* x& [
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:6 m: s6 z$ E7 X' y4 F

7 u3 q3 D9 c* y/ m+ N( }1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
  y- x9 ~" v  T  k8 k4 p
9 o/ b9 Y2 ^9 P. v* V```
+ Q) r  A8 U+ W5 p& e# S( ^function create_custom_post_type() {0 m& h) D! [1 i* s
    $args = array(
' |7 _4 c# z- J* Z# g# a        'labels' => array(
8 I2 `1 C6 j- `0 D2 j            'name' => '公告',
7 Y, K( Z; u/ s( w' h% h& w$ S            'singular_name' => '公告'4 t: ~7 S4 r# E% t* F8 z  y
        )," J" h0 i3 _, U" R' `5 S
        'public' => true,: N3 W$ e/ |/ t: e' n
        'has_archive' => true,9 A3 K) g% r& w
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
" H, _. p$ n5 u# m; ?        'taxonomies' => array('category', 'post_tag'),( i( I6 ]( t0 p$ L/ l. Z8 M
        'menu_icon' => 'dashicons-megaphone',1 s: a$ b' m# U7 A5 m
        'menu_position' => 5,
+ G5 N0 t9 _9 L! }# w6 H9 g        'rewrite' => array('slug' => 'site-wide-notices'), T* s" K  q! z0 j3 j2 ]7 F
    );+ g- n. Q! W0 v9 ?- j8 z5 V( h& h
    register_post_type('site-wide-notices', $args);) o) @) m. r8 n/ r! q
}7 s) K! O8 G$ k% Z6 @' o9 y2 d
add_action('init', 'create_custom_post_type');/ [8 P4 Z1 r( `- u5 b$ |0 N
```3 ?: z& ^$ ~8 S7 n" ~0 i
( K: l. L# w$ L8 x# w4 X! }8 K
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。# C' J" k9 ?: n- b" x

9 K$ X- R" N3 y/ b2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。* L; T7 \7 p6 H8 R! a) y
! e+ o9 H* {1 c8 s* G- b* ?
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:6 E, @0 |0 f0 M; s/ B% H

1 G3 v) }, F) W0 |. V. s' @```
7 e9 G+ \9 z' B5 Z$args = array(
9 s0 U& R; _0 v    'posts_per_page' => 3, // 显示的公告数量! u2 J+ p( N- l  s
    'post_type' => 'site-wide-notices', // 公告文章类型$ K# r% P+ R. y
    'post_status' => 'publish', // 公告状态
+ o2 o9 X8 d7 S    'order' => 'DESC' // 排序方式
4 i2 |- ?9 Q3 b& Y8 k- ]) J);( e5 T, V: t7 t& ~  o8 {% F
2 w, s" }: l& n4 i
$notices = new WP_Query($args);9 a$ S: }  V% ?6 {
if ($notices->have_posts()) :6 `4 L3 ^* {1 s- F1 H( u
    while ($notices->have_posts()) : $notices->the_post(); ?>
9 V/ F  O, b/ c+ Y0 @# f        <div class="notice">* u! O5 \2 I( P
            <h3><?php the_title(); ?></h3>
' E" {( i! t1 u: i            <div class="notice-content"><?php the_content(); ?></div>9 T$ N8 W' o0 A& ]  u8 X; t
        </div>
$ f0 b3 t! s" [& [' P, `    <?php endwhile;
( h: |0 h) i! \1 I4 qelse :6 ?' f! B* I& o$ R" ^+ G( N
    echo "暂无公告";
3 K' b$ V& ?. d. vendif;
: b% a# [' {& C0 P* W, Swp_reset_query();$ q! q) K$ z. b2 S9 j! [
```
! Z1 Y, F  d$ T7 \! z2 j0 H# a4 u8 U: X6 x( l( @
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
2 _5 }! T5 y8 {/ B2 R. i6 b
4 i% x! Y6 F" [2 X: `8 G以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

332

主题

512

回帖

3366

积分

管理员

积分
3366
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
9 v& u2 m: G, n/ M  q4 c4 E5 G# `/ K: j* h( a( O# L8 @' N
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。, x1 O- Y0 P1 i3 u; Z- p5 k

: L! P" G2 [! ~6 d1 |" f$ x! c2 ^以下是创建自定义插件的步骤:
) p) N+ P2 ^; L- K  R$ c6 H5 t2 Y( w% n
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:+ u3 |5 P" l! I0 D6 y6 V3 Y

1 G- c* `9 |  n; o, _   ```8 T" L' a* b" y; t# ?! e
   <?php
* E8 t5 D8 b6 S6 M3 I   /*
2 @3 h1 L- l) V& M   Plugin Name: Site Wide Notices Plugin( S" q6 s/ ?- F% T4 b
   Description: Adds a new custom post type for site-wide notices.
3 i( g; O0 Y# E, {: y; a8 x   Version: 1.0- W( v! @* B& L/ y9 O% }! [! \' i
   Author: Your Name, S9 p. \9 K; `
   Author URI: http://example.com
9 B( ]2 `" D% N% N) j   */
; S& f0 ]4 p( j4 b
) V4 e+ m" d$ m& ~5 K( E1 M   // Add plugin code here...
1 r7 V; z: ^, Y4 @6 O3 N# Y. q   ```
4 K$ m8 T; C8 X2 B+ g* n, U+ V, f: j, l
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
6 d. o. t3 s6 ]$ E0 k2 x
' I* C& ]8 J) O: v+ ?2 g1 Y6 A/ T2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:" I$ o! j9 r8 `1 ?! @- r/ [3 `5 d
) U- T# g  w$ R, q$ J
   ```$ Y2 Z, O3 H9 S$ y/ S
   add_action('init', 'create_custom_post_type');
/ K+ a/ x* S$ D6 N1 n3 M- ?   function create_custom_post_type() {
1 z- J+ d1 K% o" O3 w1 `      $labels = array(
6 H& T' d- h( m9 {" _          'name' => 'Site Wide Notices',
5 j, V, g8 B6 F* G- d          'singular_name' => 'Site Wide Notice',& W% r. t9 l/ Q
          'add_new' => 'Add New',
* y# V: `* h) x1 i( c, E          'add_new_item' => 'Add New Site Wide Notice',
% G# d' B; r. M          'edit_item' => 'Edit Site Wide Notice',
" S, i1 x7 R/ v+ V7 g3 g) h          'new_item' => 'New Site Wide Notice',
( P& J, a3 t- ^* c          'view_item' => 'View Site Wide Notice',
/ F% i& b- O' E3 G$ C          'search_items' => 'Search Site Wide Notices',' F  R' q: j6 D- A4 e" ^4 e* K
          'not_found' => 'No site-wide notices found',# ~( y" W- x! G3 U0 |
          'not_found_in_trash' => 'No site-wide notices found in trash'
+ `) P, G$ w% r, K" @% s9 ]      );
" x) g, U6 Z8 |3 u/ p
! C# v! r# o' K$ c      $args = array(% A% U+ p" m5 v+ }0 C
          'labels' => $labels,
1 c5 J  e6 Z, a- E, \" [          'public' => true,
) K- [! Z5 H, p' A( ^          'has_archive' => true,
; V2 k: g+ Y- Z          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
0 ]  j$ W0 d/ p$ T+ r          'taxonomies' => array('category', 'post_tag'),# V3 u! G+ V  K' O5 e' h- M8 B
          'menu_icon' => 'dashicons-megaphone',& D( g$ J- {5 R7 ~2 K1 ~) n; R/ J
          'menu_position' => 5,
: u' u( o, f. S5 J4 F$ h* K7 P8 i          'rewrite' => array('slug' => 'site-wide-notices')$ f& `8 C: V, N7 l4 L1 e
      );. U5 C% [$ u' V  j6 T- I/ E3 y
7 L+ _! m& _+ t9 a5 e
      register_post_type('site-wide-notices', $args);9 j' ?# W4 R. L& s
   }* X: o( Q1 S2 A( `2 s7 q7 g
   ```
# E: e; A( T/ X% Y: S$ x7 E& _# ]/ U; f. {& Q% H' e" _
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。' k: H0 `, Q2 k2 Y8 x$ h7 I; g
1 [+ |3 j' ]9 y- u' f  z5 r8 Z
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
7 Y  v" Y" \, J& H; R1 s
6 Y! I$ U! C2 {- V   ```5 j) D4 y% c5 f- s, {2 i; v: D8 D# c
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');' |0 `% p" r' o% u0 V
   function add_site_wide_notices_boxes() {
  O% [9 X8 L" t& [+ R! o      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
) M& t: ~3 t! @! F$ h& a! c( m   }
5 Y  ]' N! j2 D0 k8 R; o: J2 _$ T/ B
# g) `+ Q" m, c, i   function notice_details_meta_box($post) {* ^0 \# P3 K2 b$ u
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
7 o  w! q0 P# P, o: x      $notice_title = get_post_meta($post->ID, 'notice_title', true);; {6 V+ N6 ]8 k3 l9 N6 m% M& L
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
3 Q2 ~1 Q: q7 F+ W9 E! L      ?>
0 N) J0 ]% M" K; q      <p>
  I3 Y% V& }* J, E0 {. e: b          <label for="notice-title">Notice Title</label><br>! w, s) m' D& ~1 F$ B- v  ^
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
- ~! e' i- P; }7 C  P0 b/ j9 ^      </p>7 |7 b5 n9 e. b5 }
      <p>  G' L% l0 I0 j9 U) ^
          <label for="notice-content">Notice Content</label><br>
, F' ^9 K, B6 i6 [5 E- i          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
* w$ ?, _! y; T! i7 j- V0 G; k1 X      </p>
) r& {* j7 S3 j( S& ]      <?php
: j4 h9 M8 i, `3 P3 ^- X   }- v, G4 D. H) w7 Z2 {- F7 b1 J
4 D2 R7 L) x7 D/ a. k$ |
   add_action('save_post', 'save_site_wide_notice_meta_box');" h$ o0 T9 w4 r; _6 x" m
   function save_site_wide_notice_meta_box($post_id) {
# f# M5 x: {) b8 {, O      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__))). c$ {2 L4 W6 a; j
         return;
! _1 R5 O/ O6 H% A% w      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
) k* b. d- ]9 T+ z: f         return;) f: e+ m( i6 s8 ~4 L

" M% O" g# }5 A: N- O6 G$ e5 p) M      if (isset($_POST['notice_title'])) {: y& b9 C, @1 ^. O
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));& M( n$ O4 }) c  u' [6 {
      }
. j1 d& p5 u- q% k: t6 U% {5 X9 l      if (isset($_POST['notice_content'])) {! k, S2 C0 J6 g" D: n# S; J
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));# b7 w! ^% \0 P% x
      }
% @2 l% h( `; c   }
: L8 X8 q/ h1 P$ u   ```
4 m6 G, i& ]3 X: U9 T
( }: O% R6 x, j5 C# U/ P: u   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。8 D+ a  E6 S9 ^, x# H) O& z
3 w" v1 w2 w7 t! a2 W
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
% y% B8 P2 w. }& }; i8 C9 P# v( Z% A3 Y! _; V! @
   ```! m% L0 @# l" S' |# c2 ^
   $args = array(
( D' {- L5 U# [! D$ j# {  P2 A% F7 K      'post_type' => 'site-wide-notices',! C+ [) [) t: ]0 ?6 [5 F
      'posts_per_page' => 3,$ g) V: Y$ c% g. o  a8 G  b1 P2 y6 S; _' y
      'order' => 'DESC',& k; h( x0 i- R. D+ q
      'orderby' => 'date'
( P/ L6 N/ u2 ~   );+ ~1 s' d# U/ K4 N
   $query = new WP_Query($args);
' G% H' \6 }" p   if ($query->have_posts()) :$ e: R9 d( c. c' r3 J$ w, E8 i
      while ($query->have_posts()) : $query->the_post(); ?>
( k7 a0 P$ a. I7 L: g          <div class="notice">* J  U" ?2 l* Q  {( K# j
              <h3><?php the_title(); ?></h3>
' i" J7 i5 m. E$ N1 R& f, V3 ?              <div class="notice-content"><?php the_content(); ?></div>, s! B% L4 i- [1 e% A
          </div>; w$ k9 G8 A  V9 u
      <?php endwhile;  v0 _1 c" h; a" T1 q) A3 D* F" j
      wp_reset_postdata();- V: L  J2 ~1 s. J
   endif;
  c1 E2 @- N% e, w* V   ```
+ O! R3 _3 m' q. ]2 x! q, o1 e$ [4 i
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 14:42 , Processed in 0.103101 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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