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

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

[复制链接]

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:5 {) d: q9 F, A: U
  S! c2 O! \1 g7 g3 r
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
% |' g! [3 g. I% V% {" d4 E  G" k1 i' N: G6 c
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
& H4 o; c/ q2 e5 D( L( v
2 ?% J& c1 ~& f: P0 z: S8 I3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
! Z5 W0 `' z: U( d8 q, `# Z- U
, m( J8 s5 B/ H: X: I3 L- t4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
; Z2 `, t/ @8 N; g/ E) a- d2 ]9 V- j$ X8 D" F
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
& G7 T1 [* X3 E. N6 `( l
" V# V" Q5 [  ~$ u6 B. M如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
8 t- y3 E, F3 v+ k' C& O! Z9 l
8 r& _" E; e! g% ^5 }, \1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
7 f7 c' L5 B( v
7 X% Q$ |( \8 v; N* `0 ~0 l# @   ```
6 K* g# t6 z) t: O9 R3 }/ ~3 x   add_menu_page(
3 n& n2 H- v  l; J       '全站公告',* g  p( W/ l7 E  N' e$ u( X
       '全站公告',
5 L  ?" }' Y- |       'manage_options', //需要的用户权限
2 `  S: \2 ?" d       'site-wide-notice', //后台页面的 slug* h! w5 f$ ^7 p' {5 p. [, m3 z
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数4 o  ]3 Y& e6 D, a) b, r9 d# g
       'dashicons-megaphone', //用于显示在菜单中的图标# M! ]! P; u: F  Q. N& c
       30 //菜单项的位置
% M: L0 V' ]5 `7 R3 f( A7 j   );* a  y9 F7 w0 q! w8 q0 `* D
   ```7 w8 {% j- N1 w  Y* w0 C

' i0 W* M' ~# X6 a) T* t# [0 y   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
: a/ n6 d3 m1 R' C, M! g: {; K! K4 a) e! h' Y
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:# Q0 Z5 |) ^2 p( D) P

0 T7 _1 v1 e. ]" w   ```6 u7 r7 a" w4 N8 u  O
   function render_site_wide_notice_page() {
( ?) |. y+ A* R8 T" V) j9 G      // 渲染后台页面内容7 ~, |& H  D1 Z# P1 I
      echo '<div class="wrap">! l- g- z! {0 w
          <h2>全站公告</h2>  h! Y+ G  O' b) R/ P* ?
          <form method="post" action="">
2 k2 u, Q) q) t4 o7 p              <label for="title">公告标题:</label>8 K+ @- D6 p  ]5 M3 U$ n. B1 G
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>8 P& _: h$ k+ P& W
              <label for="content">公告内容:</label>
- g$ }% V: ^! F- x: ~6 n/ }" V              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>: b' u" D  z/ B4 Z- q! K6 W
              <input type="submit" name="submit" value="保存设置">
7 Q# ]+ o2 k) U& X! d; O          </form>
. Q3 c2 a0 U. b4 G" c3 |      </div>';
1 H' Q1 O  O6 g/ F2 F# |  O
$ r. W; H" Y2 ]4 X' V7 H- m      // 处理表单数据, o/ g) P3 k0 E$ V6 H# [, `  e
      if (isset($_POST['submit'])) {
+ ]. i( o9 _% x' r5 o          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));& I) f. `$ L' J7 k# I9 e
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));( i6 L& I* X. a# y
      }
" z- C& ?3 y, e& n5 O, s7 E6 g   }
* \, c/ ]; M0 k5 E+ B) u% v   ```0 b& m7 ?5 b4 g2 a. l) u

& E* t9 U, L/ o& k, I   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。) k' q" C# n4 s, M$ o. f
/ W/ V8 _1 C0 b* k( w
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
; n: m2 f0 h8 |% v
: w8 h& v% w+ _% p   ```: x. f' q0 p% c8 O1 c- v9 w
   <?php" F6 V( g# D% ~0 b( y" ?
   $site_wide_notice_title = get_option('site_wide_notice_title');. k) _0 G; G- X$ y2 q4 A
   $site_wide_notice_content = get_option('site_wide_notice_content');" F/ w. t: j7 n1 d( r( b9 d) I
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {. `' b0 ~1 B" O3 y* _
       echo '<div class="site-wide-notice">';1 v3 C& j+ y. H1 m
       if (!empty($site_wide_notice_title)) {! k9 `2 p2 K6 C0 o+ L* j
           echo '<h3>'.$site_wide_notice_title.'</h3>';: k6 V: {) R2 R& v- O( _, G
       }
# S0 O0 W3 [1 O       if (!empty($site_wide_notice_content)) {" `+ P7 ]: ]0 E- q- B. Z/ e, P
           echo '<p>'.$site_wide_notice_content.'</p>';
) |: y" }7 ^: _5 T       }
( c0 K! G& Q! |' I+ l2 ~# P* W       echo '</div>';' {6 V7 X7 j% i- M
   }
  h+ B1 z6 A$ P6 Y0 B1 J: ~* U9 |   ?>
9 O# |( r1 @, i0 E6 c( z- Y   ```/ n% d4 E8 M; g* [9 x5 B& U/ ^
3 Y8 F9 z9 Z- K* }# M( ?
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。& x$ F( w6 @3 e$ |% Z- |
+ S: ?* i6 k( Z5 F( v2 @& U
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?7 |  E6 d  {: S0 O

7 y1 d' I; D; C+ h( \& Z* |您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
' T2 E: d9 r' |, E; f4 N$ u' `5 B
3 V, W/ N; O2 {$ S' j0 s2 k% G4 m1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:3 A  Q7 ?  D# F( ~6 a+ O3 `3 f
1 O* ^* {- ]1 _/ n  W; j
```
4 g% V; Y0 d" M8 ?7 [% Kfunction create_custom_post_type() {
3 b$ Z0 r* d* v* [: h    $args = array(
+ F+ L# W) w# S6 b        'labels' => array(6 b/ V. z% \* E
            'name' => '公告',8 X4 |  O2 p2 @
            'singular_name' => '公告'- i  a* F6 r6 \' n  z4 q, [; w
        ),, X, d: y' X3 ]; H# G0 T6 Y/ ]- K9 d
        'public' => true,: S6 I3 ]# {  I- |5 I4 N
        'has_archive' => true,7 s* j+ c7 ^+ y0 W* T  Q4 b
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),' Q  z" `* p3 d8 L
        'taxonomies' => array('category', 'post_tag'),
. v: h, \0 n, Q. A        'menu_icon' => 'dashicons-megaphone',  \( s# z2 M% ]; R* |
        'menu_position' => 5,9 s3 ~3 \  B: W$ M8 W7 E' j
        'rewrite' => array('slug' => 'site-wide-notices')
) |- V0 b/ J. \( Q    );
. x0 r7 t) _$ h    register_post_type('site-wide-notices', $args);
5 [; X/ I2 F6 c  x}/ t' z6 B' ~, _+ W" \  H& X
add_action('init', 'create_custom_post_type');
6 V& r. x' c( S, b1 k  b4 l& L/ U```
9 D. |" u' ?1 h# ]: y$ J5 X
2 ~6 {' Z6 r3 C, K# y% G在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。7 H1 Z: }0 w  X6 `1 l
  _& G0 }* \) N
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。$ W5 {- x$ y2 A% p$ K9 j, ?+ M5 m5 A
) `- D1 {9 y& A3 a5 {4 b
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
8 N1 ]% v4 V* {/ Y$ h1 L
+ i8 g- B7 U3 i3 u2 H```
% A( F9 Q2 @; ^! k) H4 g$args = array(
5 w  ?' @; T, ^; y2 n    'posts_per_page' => 3, // 显示的公告数量
, s; q0 _& d( X- D: w9 _    'post_type' => 'site-wide-notices', // 公告文章类型
' w5 \5 t  _. e/ S    'post_status' => 'publish', // 公告状态
- q, r  j" m0 Q1 V" n    'order' => 'DESC' // 排序方式
% M4 D" l  q5 o( X! z);
. u5 p( b; y0 t9 \, j2 O' s/ V9 J: r$ N5 b0 e- J7 B! D
$notices = new WP_Query($args);
. q. Y7 ^' U/ f8 Mif ($notices->have_posts()) :8 D# Z& H- Q# F
    while ($notices->have_posts()) : $notices->the_post(); ?>
+ J" {5 T9 \3 {; M8 R  `        <div class="notice">
0 x% a% K2 N8 H            <h3><?php the_title(); ?></h3>
1 M4 S" P' k4 e( [            <div class="notice-content"><?php the_content(); ?></div>
8 s0 b! t* y# x        </div>/ ^% Y+ Y, D7 u2 g) }
    <?php endwhile;) q4 V/ x# z* D* |7 T0 f% ?
else :
2 a, y7 Q) _8 Q% K    echo "暂无公告";) w: U, z7 W! |8 _& |1 T" A  L
endif;4 t+ u% N. ^( T. h$ R: ~
wp_reset_query();
# K" g/ J! `0 w2 }* o' b5 f```' _, e% {! M$ y1 q1 O6 p
! |3 h7 ]  L0 \& i3 g3 K7 ?8 M
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
6 ^. M+ t3 z& U4 r2 W' c0 Q! C" J: C8 S2 d/ O5 y7 V6 \  |
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3685

积分

管理员

积分
3685
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?) i. F& o1 ]& s  V9 f

# h0 U" x( R9 L" F/ h1 o& \, H如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。* J& b. f" O# P+ v8 Q$ _+ _$ t7 a

9 q  N6 {8 S; T* G0 B以下是创建自定义插件的步骤:
! \; _0 o' v3 w$ S; Z
! d/ m, G/ r6 z( f! S1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
: S* E+ |& [' _# J2 {6 k( e0 @& H% }' @6 K6 d
   ```
, B" f- O+ }" J4 S' r; N, o1 T   <?php
( r; Y( Z: W- {& A' B: E( W( u   /*+ `$ ^8 h3 S" l+ O/ M- S
   Plugin Name: Site Wide Notices Plugin
4 i+ W7 s9 t; U1 Z) h   Description: Adds a new custom post type for site-wide notices./ @- L: a+ p' ?& f1 j2 p
   Version: 1.0  q7 S5 ^& S9 H: f8 R0 o' s
   Author: Your Name' T5 {! X: [" ?5 ^& t$ ^" o
   Author URI: http://example.com
+ k8 F. ^3 A0 @% V3 |+ N- F  h   */
2 F( h) q' f9 w/ |6 ~6 ~
7 D# A2 k. ?- ]   // Add plugin code here...1 _9 G, \6 Z1 S7 c
   ```
  p; _( G8 g) ?, T; B: X6 e4 m
" r# Y6 a$ W8 ^; Y8 U/ ]5 O1 `6 W% Y   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
, B6 T5 U# K" H! w1 `( {3 I" G# [3 B, Y8 G/ H
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
) n6 ]: G% x( ~, q
3 M* ?7 F. H6 o3 _   ```% ~; v( l  j- @4 g% N, a
   add_action('init', 'create_custom_post_type');7 L8 H6 }8 x/ S1 w
   function create_custom_post_type() {
0 t% m/ y) Y; s      $labels = array(' [- W% \, R" J: r, x# q8 _
          'name' => 'Site Wide Notices',
5 O' x) o" Y) `$ ?  j          'singular_name' => 'Site Wide Notice',# _1 A9 z: n+ f4 x7 n+ x. B
          'add_new' => 'Add New',+ q" w' q  a0 l
          'add_new_item' => 'Add New Site Wide Notice',
0 P; D, Y8 {5 b' K# D: V          'edit_item' => 'Edit Site Wide Notice',
4 g" }% |  E8 }: u          'new_item' => 'New Site Wide Notice',$ B' k* l8 ?% O- F7 L# N. u
          'view_item' => 'View Site Wide Notice',
, n2 U1 i) k: K) p! A8 u& ]          'search_items' => 'Search Site Wide Notices',
' K3 D- y/ Y" V# X% z          'not_found' => 'No site-wide notices found',
( e7 f, h" W! m: V0 D' Q4 u" g/ N          'not_found_in_trash' => 'No site-wide notices found in trash': u5 N4 Z# m! @* s
      );" e. a* y/ l3 F( Y; x

( `( s6 W/ y; t* o" [! o0 ?      $args = array(
0 D3 c1 R& @9 x' y" j          'labels' => $labels,* T0 E- M" X9 _9 X5 a
          'public' => true,: n% `6 B6 O! ]& C4 J1 h. O
          'has_archive' => true,5 ?- ^, |0 J/ Z7 E% ?
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
- {8 T4 e* k$ |          'taxonomies' => array('category', 'post_tag'),! t, [. E1 }. n! t) c0 H' o+ F
          'menu_icon' => 'dashicons-megaphone',
1 l! K3 a+ ~7 Z1 h, Q. |- X          'menu_position' => 5,  f1 N; M  n  C' D; W
          'rewrite' => array('slug' => 'site-wide-notices')
+ d' `3 N0 k& |9 G  c/ c1 X      );
5 [- B5 `- a- C& ?' n' g& V. E! \+ ?- l& G7 k' C0 W2 s5 O
      register_post_type('site-wide-notices', $args);, a* I+ x9 g' W) I0 N" x) S
   }" D5 A- n/ B; s' m3 p: Q
   ```6 `. x0 K( e5 U, ~$ b- G
; O# t6 P5 A" y! A/ ]- P
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。5 Z: C, ^) g- I% j$ h" I- Q% ]

2 g0 Q8 U7 y5 y2 |0 Z' k3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:, c+ s; p% ?( P
/ E2 p7 G+ |8 h) m, g5 _
   ```. i# N+ x; ^2 m# s9 h( u
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
; @$ V$ h- x3 ~- u$ j' q! Q" L   function add_site_wide_notices_boxes() {, K& O" ~5 T& G2 q
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
0 J: J4 B0 R( Y, V4 @   }# n5 ^! A0 C$ M  ^, V* m7 ?

/ D. _- Q$ ~/ P3 u- S* C9 S   function notice_details_meta_box($post) {- [5 X& {' ^$ Q6 n* G8 _& T: R  c: I
      wp_nonce_field(basename(__FILE__), 'notices_nonce');' d* N0 z9 I- r
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
1 ]: j% i9 {% d# J. [, y      $notice_content = get_post_meta($post->ID, 'notice_content', true);
/ \0 ~9 q# f# V" b4 ?( b) N0 I      ?>/ u1 _3 w, o3 o0 K$ r6 V0 N
      <p>3 t& T' z; ^7 x# A
          <label for="notice-title">Notice Title</label><br>
7 _1 u' C6 S: `' I& {          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
- {3 B. H$ v, X( S" f  \      </p>
+ \! \# ?5 G5 b3 l      <p>! ?! ?5 I3 B5 ^3 |0 _; e5 O! D0 A$ X
          <label for="notice-content">Notice Content</label><br>
1 p6 Q$ \; p" t4 i' T  q* @- E          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>& U5 O% Y. h6 O0 T$ C- D; @5 d# ~
      </p># O5 f! ^% D# k2 N# _
      <?php
) \8 D5 O" A/ p# U6 p8 H$ s   }6 c0 r* k& _! t
, n- X0 Z6 p" m. A4 }. k2 k
   add_action('save_post', 'save_site_wide_notice_meta_box');" h( m6 w) |* D0 |9 x4 Q3 Z; m
   function save_site_wide_notice_meta_box($post_id) {
# w* W" {/ e. M$ U      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
4 i1 K' P6 B- m0 N         return;
  f6 f+ I7 K4 B2 @4 u  s) L      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)+ U0 b0 X6 L0 d- O" X% n
         return;
4 v+ q- z: g) {; c6 c1 \- H/ t( {: C" `$ L
      if (isset($_POST['notice_title'])) {
' J- v0 p0 Q* R  ]+ n          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));- |! D$ L) D# P) s4 E
      }
) i& ~4 I! G: F, s+ y. ?1 A      if (isset($_POST['notice_content'])) {
: P, V/ q; Z& F2 \% D  H          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));- i  O: v/ j0 R5 h- S& P" E/ u% [
      }
! F1 ^: w6 z% d9 R   }8 h& t7 ]# a9 V- z' S
   ```" J4 e$ T* v0 E' S) M
  s/ {% E! u9 Q( `# Y2 f
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
' f7 F. Y+ H$ w% U% _/ @0 O) H9 h3 `
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
- R8 R/ S4 D' U  l* U5 U' [; v" g( l
   ```0 h3 G3 ~$ a. i4 w
   $args = array(6 x) k' i+ G: r
      'post_type' => 'site-wide-notices',4 V2 ?0 o% s+ T3 Q; [6 A* s, q
      'posts_per_page' => 3,
, F, t6 s0 }7 X) h5 Q+ F$ \- |, N+ q      'order' => 'DESC',
: c$ e1 i& S" E      'orderby' => 'date'
" d! |$ J: Z0 J0 w, L0 _   );
5 m3 x2 U# e! N( A* O* ?" E, n5 u   $query = new WP_Query($args);
8 h7 C" o0 K) U  o3 t4 _6 O   if ($query->have_posts()) :! }0 U2 N" q6 j! }
      while ($query->have_posts()) : $query->the_post(); ?>- ]# Q4 a/ u! f* t9 e4 z
          <div class="notice">, o  z' o  W/ `: {, B, q. ~! i
              <h3><?php the_title(); ?></h3>
7 E! G+ c, V8 k3 _& e              <div class="notice-content"><?php the_content(); ?></div>9 K* i: d7 V' k& \0 [/ h4 V
          </div>& d' N( l/ d) n( C+ s
      <?php endwhile;9 T8 n, ~7 K8 h3 _9 g- q
      wp_reset_postdata();
+ ?+ B1 H- r, o   endif;) ?3 {' }8 O; L) ^
   ```
( v, T* Y- }7 G& _7 n' s: N
$ f  j' x. ]7 r, t& J   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-16 22:32 , Processed in 0.013650 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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