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

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

[复制链接]

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
% L" l1 `( a6 i- c. J! ?3 F, f# l) I# y
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
( ]8 K4 G  t/ V$ k- i
; }  ~% V* ~+ v6 K2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。0 @7 O+ b+ K: f/ l! c
! M+ X! l, C. `
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。1 Q7 D" U5 ]9 H1 G2 Z
: O+ D9 b0 R& X4 Y
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。! l0 g& x6 A2 |$ g, |4 z0 i7 N

# h6 r; i9 d( W/ V注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?. I  [) Q8 e+ m+ i

) w. ?" u" v2 @! }6 z* L如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
5 t/ s& M+ b  J& N4 O+ E. s7 w& a
5 V1 ^- ]: G9 b' v+ f' F' U/ ^1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:7 ?" d! p) L5 z4 m% w& A

7 T9 U# j2 R( n/ E   ```6 F5 T# I8 J4 I! p$ _2 I
   add_menu_page(8 ~0 l* y% ~: s2 T/ e" Z
       '全站公告',; \- Q- L! p* V) @8 `( m3 @
       '全站公告',
& N7 o  u9 J9 O8 K. N3 ?       'manage_options', //需要的用户权限+ j( k: ~+ k+ {
       'site-wide-notice', //后台页面的 slug' e7 e' D, }4 l! G
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数) ~1 g9 f, b+ B0 v. p, [# [- A
       'dashicons-megaphone', //用于显示在菜单中的图标
4 p. {/ J& b- M5 {! X       30 //菜单项的位置
0 N% C7 a' z& \   );
  Q9 h' L1 }% J; s% t( u; `   ```0 B5 F# I( c& A; m/ x% P
$ \! j/ h$ v5 h2 e6 ^6 H0 ~
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。" s+ h3 Q5 |& `
# J8 T' X# }1 [5 [4 i
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:7 H; @, D6 Q7 x3 p8 \3 g$ L$ U

" C2 {5 l6 @5 K) D   ```; T5 b4 l4 n& K1 ?! @1 R6 @8 w
   function render_site_wide_notice_page() {
% ]$ h# Q! B/ K5 L      // 渲染后台页面内容$ E! W8 Q* C! [3 o  V* U
      echo '<div class="wrap">
1 ~$ ~# t3 U- r# H  Q% H6 M          <h2>全站公告</h2>
5 x  I& M: j& w7 a- ]          <form method="post" action="">; `; }" [  u0 f( q8 Q  \4 g
              <label for="title">公告标题:</label>$ E7 w: y9 C, i, E& b& h+ |
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>3 _, L6 \( d. u0 {8 u- ^( {, ~
              <label for="content">公告内容:</label>
( u4 E5 w: X9 Y/ V              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
2 M& r8 T4 j) x6 K  ?              <input type="submit" name="submit" value="保存设置">
' g' _9 {+ C2 f/ `2 Z* N' k          </form>- a) l0 z1 p& E, R6 T  v) j) d
      </div>';
* D+ Z6 O  r& s
7 A" U& J- W0 S      // 处理表单数据
( C9 h- F) N4 O! @7 z      if (isset($_POST['submit'])) {% J6 m2 V$ J( ^' B, S* d$ j0 h  V
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));5 c, t& H2 H4 m7 t/ H# V; p$ ^
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));1 P, U3 d% h4 e, y; {
      }
# N8 Y4 }9 Z' F3 h8 o& p' z2 y   }
6 S- i; N: ^) U( |   ```
6 f9 _4 a% w3 P% [  A; {: b0 P& O; \# S2 n
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。, @( _* c4 L4 ^1 o- x# f7 F
& O3 |" Q, _( z7 Z+ g
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:; U' y' \6 J, ?1 F" D
3 j; s, r9 v& [3 |. f
   ```! r- Q6 D0 j) n( p8 H( x0 x4 b/ C9 j
   <?php
, [; t( T: x6 \0 C   $site_wide_notice_title = get_option('site_wide_notice_title');9 u1 [0 n! o4 S8 W& I
   $site_wide_notice_content = get_option('site_wide_notice_content');, [* T0 H- b( d: h
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
& y5 U" w7 Z2 z, ]7 i       echo '<div class="site-wide-notice">';# I3 ]6 j' ~# c8 K6 M9 |8 n
       if (!empty($site_wide_notice_title)) {3 C7 }; }" l% \1 O& ^' B0 f
           echo '<h3>'.$site_wide_notice_title.'</h3>';1 U% i, N- T( W( i4 w7 |
       }
0 J  n4 B: f9 K) H! t       if (!empty($site_wide_notice_content)) {
3 M+ B2 Y) d/ j  z, p, ?           echo '<p>'.$site_wide_notice_content.'</p>';
0 E) ~/ T- U1 Q       }& ]! u+ i( U/ u" y$ J& V) S- a
       echo '</div>';
# |: N" d8 J. ^, n5 E   }! L3 V. W- X0 p
   ?>
; u7 p- U9 Y0 Y- W- I- k4 P6 `   ```
8 J5 C0 A5 `( U+ x
$ M* |0 [+ `. B7 Z; q7 b8 F   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
2 W8 U, V# v% W9 i; x4 W9 [& e1 U7 P& P3 r5 j( T- j  \1 h* o( L
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
, ^4 p( ?3 u7 t8 K
4 B! J/ V9 J2 M6 d" V您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
/ }; @* ]! ]1 L& S8 ?; X
8 e! H  Y5 o- [' x1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
6 A/ L3 E0 E5 G- X/ s0 ]4 h
& c9 G% A1 Q: ]6 b7 k; c, ~```) g+ v4 Q1 E( W( C7 h1 u
function create_custom_post_type() {0 F5 a1 f4 _  a7 J' E2 \* o
    $args = array(
) ]1 d% d+ m; N, V        'labels' => array(
; u  G" H. X7 Y0 c            'name' => '公告',
' D9 L2 ~' E. y  \) Q* R  k4 K            'singular_name' => '公告', |) G3 h% r( ^6 z: g# j
        ),
" ?& m: e5 N& U+ `# H, V        'public' => true,
" m& R- D2 [" A. x( s        'has_archive' => true,; T0 h' N" W- l4 E$ I
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),3 R+ c0 O' Q# i8 j  e6 f
        'taxonomies' => array('category', 'post_tag'),
5 e- R5 G4 N0 L# q6 g# D* D        'menu_icon' => 'dashicons-megaphone',
! E% z- n) N- ?        'menu_position' => 5,
0 i3 T2 m( P: \) Z  h, x7 I9 t$ M        'rewrite' => array('slug' => 'site-wide-notices')
/ a( [4 @" D: p3 z4 ~    );3 T0 r4 H; P* b
    register_post_type('site-wide-notices', $args);
0 s/ Q! ^. D" }# V; B: L}
0 P5 {* O+ j% Madd_action('init', 'create_custom_post_type');
/ Y  O. S! o5 o```
' L& m0 J0 K9 x" {* \4 _6 m& o8 E# o( Q6 @" y# J. `
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
. |/ [* ^2 I# i: G
$ I  C# W' g+ U0 a% t2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。. y% W0 w- ]5 j% r& T# l1 h8 Y8 s4 y/ X

+ D" b! k" \% R: k( ~# y# |% F3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:. M- N- _$ L3 P, G
9 V" b1 Z& s+ _# {/ G/ |7 }7 E3 U
```; U5 ~3 D+ O2 A! a( d! Y
$args = array(
. Y- s+ M  a* C" a    'posts_per_page' => 3, // 显示的公告数量
$ h: b$ q, ^, X' G    'post_type' => 'site-wide-notices', // 公告文章类型
/ c# n0 P1 @) d/ t1 f+ r    'post_status' => 'publish', // 公告状态
! ?8 u; m# D, H' K/ B9 M2 h    'order' => 'DESC' // 排序方式
! L/ a+ S$ K  A( b; X2 |);. P  T+ ~* ^) Q* a3 v; a

. s  l' V" M3 [- T2 N2 R$notices = new WP_Query($args);9 c8 v! |7 R% S6 R2 N
if ($notices->have_posts()) :9 z% ~9 C9 {$ ~) X/ A
    while ($notices->have_posts()) : $notices->the_post(); ?>8 }( i: x- B5 p. k2 j
        <div class="notice">
5 @6 ]. z. r# j' A5 S3 R            <h3><?php the_title(); ?></h3>! [: v& n3 W6 R: ^& b
            <div class="notice-content"><?php the_content(); ?></div>9 X/ o, q' m2 i$ d( I
        </div>
& K. @8 y  _0 @1 |9 G# p  r. s0 }- _    <?php endwhile;9 A) V6 Q8 i) v+ F2 R
else :# T# i/ t! \% |  s
    echo "暂无公告";
5 B( ^3 C6 j6 W$ A5 wendif;6 A0 Y3 U& {7 J" k2 t
wp_reset_query();/ m& q5 F0 K7 q; M9 m1 o; q$ U
```7 p1 ?! b' g) ~2 t
3 p) W& W  i% t2 S8 m2 w
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
$ @- V4 {7 N: ]4 S- p8 x  K( k7 [4 z0 M" P9 p1 g5 ]3 s
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
, Z' v9 T/ k: k3 s# J! F# k. M- x& P/ C$ V
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。  W" Z* O9 X* {' g9 }7 J
4 X' L! t0 V/ Q1 c4 g1 [
以下是创建自定义插件的步骤:" U8 I! V8 i$ g' w- y& g$ ~
5 Q4 D$ y) _0 p" T
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
- E* [6 q3 x# P4 ]. h* t7 u6 [; y" r# K. c
   ```2 }0 [4 P. B) U7 U9 J8 R; L& j/ b- i
   <?php
+ X, S1 l* m6 P' _9 u. i6 `   /*1 I0 h- T! _! T" O- {- ?' v& |7 N
   Plugin Name: Site Wide Notices Plugin% `1 m+ J9 ]# g; W; R  I, u
   Description: Adds a new custom post type for site-wide notices.
' O4 ^  ]3 n/ i9 z   Version: 1.0: ?  ~3 w1 Y- r7 M: |
   Author: Your Name
/ g8 v& \$ L" O/ |2 `   Author URI: http://example.com
" ]1 z2 F* e* d/ _   */% y# U) I) u/ l% Q# a# F+ U
% w/ |7 y& f( d8 Z- h2 F$ O
   // Add plugin code here...5 h1 x* J2 L" ?1 Q# L$ P
   ```6 {! j9 z( c" z; n

& q) b& G  v5 d( R: ^: C+ X- L   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
. j8 Q, a6 ~! E# ^. g
  K0 \$ }( v' I8 p8 H" c( B+ E2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:" q% ?3 y0 h3 C, n; }6 x
6 d! c- N7 F3 i% G. D: ^: s
   ```" P& I9 I; D' Q3 G. M9 S& ~
   add_action('init', 'create_custom_post_type');
# X6 T. b2 \) q# j* f8 v, x   function create_custom_post_type() {0 D- h" s, a# @* b" ~$ q
      $labels = array(8 L# M( @/ ~; `& t" @4 D2 I9 A
          'name' => 'Site Wide Notices',* N3 _2 @9 l- N. ~* Y# r% P0 K. V
          'singular_name' => 'Site Wide Notice',
! a+ W, `: W- S# G! ^  G) L          'add_new' => 'Add New',
- \5 l2 C3 w  z; `3 l& P          'add_new_item' => 'Add New Site Wide Notice',3 R% k, f1 J" |; X* D
          'edit_item' => 'Edit Site Wide Notice',
$ f! ~" C6 |5 y2 i          'new_item' => 'New Site Wide Notice',( B- m) T! {! J2 z$ Q
          'view_item' => 'View Site Wide Notice',
. `2 O5 y4 L. c& W          'search_items' => 'Search Site Wide Notices',) f+ V5 o: V' m3 J" A- p. O6 W
          'not_found' => 'No site-wide notices found',
4 D1 m) J. T$ m! `, z+ p          'not_found_in_trash' => 'No site-wide notices found in trash'. x3 s+ T- @( N( ]. ~0 P6 j
      );' c! ~4 \. {1 k8 d0 z
% ?! C8 w8 g, w6 P4 x
      $args = array(, H& w' ^1 K4 X* o0 }4 q0 G* e
          'labels' => $labels,6 {" w2 h% E, i
          'public' => true,) g# p( r6 N- [& B$ W
          'has_archive' => true,0 [, G  {  Z- y
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
0 N5 Y, r3 n) V8 f          'taxonomies' => array('category', 'post_tag'),# Y& T  _- E. I( f
          'menu_icon' => 'dashicons-megaphone',& y, K! Z# P6 [* b* i
          'menu_position' => 5,4 d! }8 ?  r. `1 ?& V) k% P
          'rewrite' => array('slug' => 'site-wide-notices')
: l1 [0 d2 \, g* W      );
$ @1 c, e" X. v, a/ G  v8 `$ M0 h' H# ?
9 c) A; c1 Z; q. |      register_post_type('site-wide-notices', $args);
' z; J* O" t( R   }
1 k3 F% i" h2 X7 R   ```  ~7 H: e2 g% E7 O7 ^& W' a- }
0 H  b6 u% }0 D4 O
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
8 w0 D5 C( f; Y( n9 E
: ~3 a; N! f  N1 F8 H) o3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:* G5 _$ ^7 g' s6 c  `% Q

5 O; m, Q# s2 ^* m/ g$ M9 K) V   ```
. r' y  f. }7 M6 b/ X' C4 O0 J$ |+ R   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
6 g0 y9 y1 Z1 j8 Z7 T- H/ e! s( S   function add_site_wide_notices_boxes() {! C' ~4 r+ c  I' @
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');$ h  \+ ^  e2 `( x( |: F, `
   }
. y! p$ i6 F; f2 T) D2 ~) i
( ~+ S. p' M' C$ w% A   function notice_details_meta_box($post) {3 `$ I5 B% {" N1 b3 r
      wp_nonce_field(basename(__FILE__), 'notices_nonce');2 g9 P: d1 N) l/ c
      $notice_title = get_post_meta($post->ID, 'notice_title', true);9 T# y% L+ y) D2 n9 n1 l4 i
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
. }( Y. L8 k: y- q5 s" A' q      ?>' n* ~" b' h6 @2 z! N
      <p>
/ y6 y+ P, }* I# U2 x! S: l. e          <label for="notice-title">Notice Title</label><br>
/ |" a  s2 Y: u          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
1 p, Y, _7 o( r; U( O+ b# h4 F4 s      </p>; ~" n1 D' _; g( f6 P! s/ B
      <p>: {  x) ^4 f6 q: K
          <label for="notice-content">Notice Content</label><br>
* M% Y7 ]" T* B$ O6 i) U          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
6 F- `2 B- E' i! P. {  T2 I" [0 @5 o      </p>, W6 e( Q0 e( l, S1 q- T8 X- ?
      <?php: a1 U1 b4 [/ t4 {
   }
+ Y; ^4 l5 x0 M9 S' i4 Y; R  o1 @* z+ N; A
   add_action('save_post', 'save_site_wide_notice_meta_box');, I3 K6 [) R# V& m6 M% l# r  n
   function save_site_wide_notice_meta_box($post_id) {
) t" t0 l$ L+ i8 D      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
& t% [  T9 g8 P* H$ q         return;, r$ b! Z& a. j+ Q/ Y( q7 t2 f- G2 ?% v2 }
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
+ x( J1 |8 h7 F         return;8 p/ @% [# A7 \5 q6 A  @0 m
+ P2 c+ u. q* t* |: k2 i
      if (isset($_POST['notice_title'])) {
# h2 f3 d5 R, \7 F  A( m+ L: J9 v* {          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
$ w' ?! d* |1 v1 \      }
% I+ X3 C! ^9 g" M0 D2 x      if (isset($_POST['notice_content'])) {0 \4 S  R- B. y5 R( D) z
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));' P; ?) ?7 X% b* O* g
      }
- g4 W1 H1 q: a  a: l1 X3 H6 X   }" O0 C1 {% u: i7 t
   ```
  _' a+ U1 D/ H  i. R3 H/ o. i- d/ \, i9 D" ~0 x
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。# n8 o! _) ]: N+ f% q' A

3 _: B) w8 ?& J0 H- [+ B: l! u4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:7 [$ \$ Y0 v- s# X- C

" }) Z7 x( R2 O" G" F   ```
( r! G) B/ M$ z3 [! o& v2 T, B   $args = array(% ?3 ^+ L& g. O
      'post_type' => 'site-wide-notices',9 j% M! Z/ o: {/ g( [- _
      'posts_per_page' => 3,) \7 `! y) P- e0 Y7 }
      'order' => 'DESC',
; ^9 c' S1 w* \7 j: O; Y4 l  p  z) F# i      'orderby' => 'date'
' o* r& ?" H$ g- O- R   );
- N8 p" a6 B/ }! W% ?   $query = new WP_Query($args);
' |5 o6 x. d* Q( U- w   if ($query->have_posts()) :+ T; W) `# }1 `) d5 ^7 l
      while ($query->have_posts()) : $query->the_post(); ?>
% g- G4 Q, l/ r! M& ~! g+ d1 g          <div class="notice">. z; k" w' V' ]# P. y; X% B( f- V
              <h3><?php the_title(); ?></h3>0 U8 B8 N2 Q* V- E1 M: \* ^: V. ?
              <div class="notice-content"><?php the_content(); ?></div>" W/ f  }2 d1 o# ^0 Y" N
          </div>
2 @) c% y' S. p& m      <?php endwhile;
+ J2 ^. G, }$ [; W      wp_reset_postdata();
. t3 n$ \& i. i4 j. a   endif;# ~) m: S( b  ?1 b0 Q4 e
   ```
  f% N& s- ?& n! y8 H3 e9 A- e' I& c8 F5 G
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 09:53 , Processed in 0.080592 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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