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

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

[复制链接]

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
5 n) D% \3 j! a9 X) @* P4 |& k4 W; a* Z3 O+ W
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。% |$ m' R- T8 P2 I
4 |9 x5 M: F! l0 _
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。  I6 f6 m9 u" }

  ?' H" j& C+ h3 l3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
) M5 I6 ], T+ `- _: U0 K! H  z2 D4 _
- O3 L  g! F9 \5 d4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。2 ]2 q0 d, a+ W: k1 y$ S2 ]

# |- e' b/ e- w' |7 {0 T注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?5 u3 q# r* w9 C5 [; W' t
7 x5 m& R) |& f" u
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
; M2 c/ R; R8 c/ g- y! L" i' H
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:& @9 H! V1 V5 O  G1 R; Y# ^' {

, I0 E3 G/ Q' T' h4 F1 f   ```
6 J& m4 e* l7 e+ Y   add_menu_page(+ G6 ?" m' [$ G- O& B
       '全站公告',% k; a1 l% d* z8 K
       '全站公告',
  e$ v2 s  X' M+ g- [% A       'manage_options', //需要的用户权限
' ?, u( V3 q5 g5 m+ a       'site-wide-notice', //后台页面的 slug6 j  o$ O7 B+ q2 z8 R6 L
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数) n, F+ B3 e: d8 r) @1 f; U: @
       'dashicons-megaphone', //用于显示在菜单中的图标
7 q' C( `( G: X1 U3 L8 ~       30 //菜单项的位置
; O. _# |: h( j3 d! y9 d/ ~. W   );) e. h& n, W0 Y  H' m
   ```
5 B( B( s9 D7 v" {; L3 F5 v. N! p6 s, M- J! w% `& j) I
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
" j0 w1 O7 k3 [$ [' M4 l( y$ _, ~0 B/ u0 M
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:& t& V) `3 X! V2 q, K% e, }7 B

2 d! o3 S6 M! c9 z6 @" @9 c   ```
! K' E: a9 Q4 v! W* y1 e2 U   function render_site_wide_notice_page() {( m( s! K4 M! O7 g
      // 渲染后台页面内容
+ Y9 e5 D8 r) ~0 T2 C& C2 q      echo '<div class="wrap">
2 g* [- o# l3 R" V  Z          <h2>全站公告</h2>
% N- s1 ^. v! b1 u2 Y* s          <form method="post" action="">
& D8 b5 o$ S  V( [7 j, _: n; R              <label for="title">公告标题:</label>0 `; q5 j2 h! y& \7 C" p
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
6 X1 K- g6 j% w8 \: H9 V+ g              <label for="content">公告内容:</label>
8 l( b, G4 d. Z- ~              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>9 y; {: w/ v9 f! P8 [2 X/ w
              <input type="submit" name="submit" value="保存设置">
. C2 G5 m4 H% f, A          </form>
: V' q7 y! q, k4 U3 \) r% `, o7 H      </div>';) z) s3 d/ n2 H

9 n1 Y" ?' n5 q( C      // 处理表单数据2 U6 D) I3 W) K0 z# [4 q. L1 [
      if (isset($_POST['submit'])) {% G6 @3 h5 E; q* Q- x
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));8 b. m& A0 r5 Q5 l( m4 r
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));5 e) Q. D7 G% J$ J" K7 R# S, T$ l
      }: {9 M) E7 w$ _  p
   }
% y: x0 a3 C, c4 p   ```
/ D4 U3 ?4 U4 R/ l& u" P; P/ ]& v- e8 p# J% b; ^7 \
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
) l+ x. n' J$ x6 z1 y% Q6 d! G7 x2 N
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:! O4 c$ i8 m$ O9 _# s% [9 K

: e" `2 y, \' E, v( F. `" Y   ```
$ Q' [- Y( X+ r6 T0 d   <?php/ Q1 b% F! M" _- I
   $site_wide_notice_title = get_option('site_wide_notice_title');0 b* N% |1 ?4 s
   $site_wide_notice_content = get_option('site_wide_notice_content');
1 t% [1 ~' t- P4 a: W   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {/ A5 e) u6 X8 N9 t
       echo '<div class="site-wide-notice">';
: t) A+ d/ V; W& Y' H, Q: y       if (!empty($site_wide_notice_title)) {
6 S: O. m" M. ?* R4 ]( ]4 e6 k           echo '<h3>'.$site_wide_notice_title.'</h3>';: V+ L: F$ j) I! x* G
       }
: r1 v4 q* W) e3 Z0 ?! ]       if (!empty($site_wide_notice_content)) {
- {5 G; h- J1 D' X# w! o& m           echo '<p>'.$site_wide_notice_content.'</p>';
$ w/ o9 q  f' V6 L& P% v' y       }8 C- S7 f" n' _/ i7 s4 t
       echo '</div>';4 H9 n% L( p6 x' q. e+ M
   }9 L- Q1 o1 i& D1 k
   ?>4 @$ ?9 A: `) X
   ```, N' B- ?) Q: K; r7 J

% l- A: E/ U+ X, d  `0 q9 q' {   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。3 g  m- G. g) h
% t# m( O+ r  b% q* U
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?8 z% q5 W6 C$ y- l) S/ X: E
; p! Z6 b; h3 l" i
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:5 _6 O- O! r# q5 w# [1 H1 P

' D+ I+ \8 O8 U$ q/ w0 T; l# ]1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
3 ]; g+ |1 A, d9 m# }3 K4 C$ i4 ^# L% w6 @/ D
```3 u* P* y, ~$ A5 W4 ~: n
function create_custom_post_type() {) |! Y1 H3 _# g, \6 f' J. a) U
    $args = array(
) w! H& m( P# x        'labels' => array(
3 g2 G: X' y% N- X1 w+ D$ n1 f            'name' => '公告',% H0 r- F6 K. }3 P3 Z% y3 N( a) l
            'singular_name' => '公告'
) g; L9 L* |' M. ?- ~$ z( m        ),# G7 v& f- U- ?! P7 L/ V
        'public' => true,
' I( i6 e( q- R( E% \' v' N        'has_archive' => true,- V8 V* w" R% p7 r1 _
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
& I+ q( {4 k* z  T4 E; E5 ]* \( _        'taxonomies' => array('category', 'post_tag'),
# I* x) Y( B$ _% Y        'menu_icon' => 'dashicons-megaphone',
9 e$ h1 u8 b8 `& ~& K; u        'menu_position' => 5,, v& b* N; }9 }) L$ A, [
        'rewrite' => array('slug' => 'site-wide-notices')
: V; {+ L8 K8 C/ _0 `3 b( L    );
* \& [% u! i$ c, V( }' t% \( D    register_post_type('site-wide-notices', $args);( |2 M+ C& U: F9 K: r7 i  r
}3 r5 Z! b2 H0 n: p
add_action('init', 'create_custom_post_type');
5 o( d- e, a& Z! f& \' {```/ @4 N' m4 J) Z% V
  j! U& ^* e  w7 c
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。- u$ h# p9 i# E4 p( x6 d
% s4 K5 Q( Y6 O9 C+ n  I
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。4 d* B$ N  D9 H; Y
1 q( F; w) Z9 Q. ^- {) M
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:) U$ ~6 `+ D& B) i6 V

  I+ E1 M3 i. f/ z5 H```" n! i% A) H" c
$args = array(
- E7 n* a5 s+ c& A! M    'posts_per_page' => 3, // 显示的公告数量, t# P0 \" K$ D7 w/ F
    'post_type' => 'site-wide-notices', // 公告文章类型& j7 T* ^+ @2 K$ _! X0 n  j; y
    'post_status' => 'publish', // 公告状态4 a8 |6 R* t: d9 Y. m+ {# q0 ^
    'order' => 'DESC' // 排序方式
1 P/ j2 J# Q: m9 F! B* N);7 i: {' e8 O/ H* d; |8 w

) a/ v# h: \" ^% R: x( N9 e$notices = new WP_Query($args);! M: V' ?1 t/ r0 Z6 m& m7 I
if ($notices->have_posts()) :; Z- j# k4 d7 Z. e6 K& d* \) R
    while ($notices->have_posts()) : $notices->the_post(); ?>8 D8 p2 b+ O8 E) w0 k# [9 A% w: x
        <div class="notice">
2 ]7 ?! k- f1 Y            <h3><?php the_title(); ?></h3>
: j, \. X$ {5 T* K8 M1 ~            <div class="notice-content"><?php the_content(); ?></div>3 k- c4 F  J+ w# J. Q" B6 v
        </div>
; |; {) _3 d' V7 e. [  l0 v    <?php endwhile;4 U$ G1 S) D) K( Y# @6 J
else :4 w0 t1 d: R7 D
    echo "暂无公告";' w  m2 k% }- ^5 T+ W1 j: }
endif;. Q& g% t: j2 [/ p4 m
wp_reset_query();* P& H& s+ U' _* y5 T1 Y: _' [% ?
```/ x5 ^8 z7 i7 m+ r( l
, e7 Q' Z/ C* N% x
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
) J1 _  X8 ]6 I; E3 G; z- u
6 O* T  R* @! G5 Y以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

564

回帖

3679

积分

管理员

积分
3679
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
; \/ Q2 H& e) |9 M7 S2 F$ [& E5 B) Y$ |  N1 h2 u
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
& V+ Y, [6 k1 O2 e5 L$ o0 [! \) z& u: V3 I5 |, l# F' `
以下是创建自定义插件的步骤:
9 E! ~3 A3 S" K; u# q" v% ]5 l: y8 k5 A: f
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
2 B- Q: v2 q/ W! g. o5 ~( S% U$ p8 f* m9 T$ A
   ```0 j7 P  t( o0 P3 o+ p
   <?php
4 |# S' @/ _+ T' m: I   /*; y) u. x0 l! l( [, b
   Plugin Name: Site Wide Notices Plugin; z5 G( ~0 k6 e8 M5 ?$ g- U
   Description: Adds a new custom post type for site-wide notices.* @8 y# r5 T# |' X: z
   Version: 1.0
: W7 j; j: A% X6 l   Author: Your Name
  L- H4 a6 b# E. E; y  \: `) X   Author URI: http://example.com" E! ^" H0 c6 |/ L  A6 v7 p- n  t
   */: K3 c$ W9 L7 B

- A* A% u/ m4 b4 W   // Add plugin code here...5 i6 I* @( V7 s& m5 ]: W
   ```
+ R6 ~; R% B, L' [5 p) n: r6 ]+ h7 k" }$ h5 m4 x$ G& D, K
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
0 V) Z# G' [. r6 M- O# Z: p
+ M  x3 W3 {+ X$ t; @2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
4 f* k+ |0 j' u( d; i5 L1 k2 _) |0 k1 [' Z& @
   ```" ~3 j, @' H4 y2 W1 V" i
   add_action('init', 'create_custom_post_type');
5 z" l5 B6 ^- N   function create_custom_post_type() {
7 V2 _, J1 j# p( {* \      $labels = array(7 k5 z/ _; r0 J4 x( V& ?5 s& R
          'name' => 'Site Wide Notices',
+ W* N! ]. Y8 R+ k9 a          'singular_name' => 'Site Wide Notice',; C2 f  ^1 r; G0 m: J
          'add_new' => 'Add New',
2 f+ A9 E: ^  Y          'add_new_item' => 'Add New Site Wide Notice',' k4 c+ k/ R) n: K2 E& m) @/ g
          'edit_item' => 'Edit Site Wide Notice',
5 f$ C7 U6 w! ?+ `  ~1 j0 ~  `  C          'new_item' => 'New Site Wide Notice',
! H1 e: K% w% w! Q) Q  c) ]          'view_item' => 'View Site Wide Notice',  V; q+ N8 s: l& b  j/ K  f/ P
          'search_items' => 'Search Site Wide Notices',1 l7 Q7 E! H! R) Z% `" R0 T
          'not_found' => 'No site-wide notices found',
$ Z# D3 Q9 Y5 R* R          'not_found_in_trash' => 'No site-wide notices found in trash'
+ p, d! k0 Y" U; a5 t& \      );
8 ^; ]" y1 r% K5 Z; k* C9 @$ g' f& W3 n& \9 g. J3 ]) ]
      $args = array(
3 n5 g' Z* m4 @" L& r  b          'labels' => $labels,0 a* {5 k' L- j9 ?: ~% I: b3 Z
          'public' => true,$ ~7 g$ H$ b& |, H% ^; M3 J
          'has_archive' => true,+ d; p9 g6 w! d
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),# W9 ]. U# _9 |8 E& I" l
          'taxonomies' => array('category', 'post_tag'),
5 c& z% S7 J& h  O6 v9 U% C, o# f          'menu_icon' => 'dashicons-megaphone',; |+ p  u/ u9 j/ i7 X: e
          'menu_position' => 5,5 S7 f+ |8 g  E0 F0 a
          'rewrite' => array('slug' => 'site-wide-notices'); B4 f# u) L% ~. m# F6 [  P, b: F
      );
+ K; E3 Y) l: I* F8 t2 {
9 G4 V9 ^6 e( u4 {! ~! A$ F      register_post_type('site-wide-notices', $args);/ e$ G5 p: k7 Z3 m/ Z" l
   }
. \/ p) y3 m3 g* }7 ?; U   ```
( I9 Y" a7 Q+ i( K9 z" `$ D1 L7 _2 ~9 j1 `' C1 w
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。8 J/ Q( P4 c$ c# f" N0 G3 K' x
- E$ V2 v2 z6 }# k" }
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
# V2 D9 n" i/ v! y; y
, @" K6 Z5 I$ y3 W  }- G   ```
$ u3 p) @- R* W% r) E1 Z; _   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');+ P( _$ e- D; V8 `
   function add_site_wide_notices_boxes() {. J7 L8 |' n, u" t! s5 f, @
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');$ S  X3 a9 I" P. b
   }
) ]" M% K" l* X
+ ]6 S, Q2 q* ^0 n. Q. w6 d! s   function notice_details_meta_box($post) {
3 O" G( L& C# X      wp_nonce_field(basename(__FILE__), 'notices_nonce');
/ g) f8 w/ E. E. Y# c5 ^. f. V      $notice_title = get_post_meta($post->ID, 'notice_title', true);$ w# v2 C7 ]9 ]! l  T
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
, {; H7 Z, [: [1 f: u. X      ?>
! R: C; _# H: J3 }* s1 q      <p>8 r$ @: w) v. g
          <label for="notice-title">Notice Title</label><br>
& c5 b, D! O) W7 O% J! V& c/ q6 b          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">$ `% F% ?) T! m! [
      </p>* Z+ V/ k6 l# b! ]  _  W% a
      <p>( ^5 d6 F) C1 m! Y! f; N
          <label for="notice-content">Notice Content</label><br>
' S5 ~# n* s: I8 X7 n1 {! A8 R          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
( z; S7 x7 e  C( P  p: u      </p>% G$ n0 I: v+ ~  }3 n3 T
      <?php
+ e8 I7 ^+ V+ b- t   }( ?+ |! o8 ]+ Q" x/ x" T% N2 w) p
' U! Z. J& [" x- ]% v3 o+ c/ p/ f
   add_action('save_post', 'save_site_wide_notice_meta_box');
8 `# Z) _& j! ~' Q$ k1 \$ r   function save_site_wide_notice_meta_box($post_id) {
4 O& S+ E# T% X& ~! p$ B0 Z! ~      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
! y# X$ ?9 a* @0 `- ?0 c% V         return;7 z. }7 {+ U  R1 P- q$ S- k
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
! J* {7 D1 K  E/ W6 L         return;6 t/ J9 C5 p8 ~1 F

0 w( f, ~+ A9 @! I# f      if (isset($_POST['notice_title'])) {
: f6 _) W3 D/ `4 }( s& y( Q          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));& w% B/ D, A) I: F- j
      }
/ v. s: I, c4 c5 b+ N- _: W4 F- x: F      if (isset($_POST['notice_content'])) {
. I, K8 }, f! C( V& v3 X          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));0 q4 T+ L9 m0 X, v0 z3 q) p
      }
5 `, p, e5 ?3 L% h3 @   }) {7 K' g* t$ X, L0 l, x  ~6 ~
   ```
/ Y* b/ S& ~1 ?& j$ m5 f" ?4 k
& h0 I7 R, J9 z2 |: A4 |* o- L   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
- Q3 C* C8 ?" v+ E' O0 f' X. C/ u
2 D9 W7 B/ F1 J( _1 g8 C4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
" C! w  q  V5 J1 u
9 B/ L# s4 s2 ?4 n! x! E6 h   ```8 U8 ?6 X% n$ f  Q5 g
   $args = array(, X/ a, D$ N# _7 l& b
      'post_type' => 'site-wide-notices',
% C7 V: h% F: |. }3 ~' |      'posts_per_page' => 3,, c4 k$ _: ~1 C. G- v
      'order' => 'DESC',2 c/ B1 O/ x& g
      'orderby' => 'date'; ^8 S* m3 V8 L
   );( e" w1 e/ b$ B+ X3 v3 y
   $query = new WP_Query($args);3 [# c' A6 P$ u  Z" K
   if ($query->have_posts()) :
+ L6 J8 A! G' h; b      while ($query->have_posts()) : $query->the_post(); ?>
; I4 _& A$ [- O; G% J# x          <div class="notice">
# v' a# Z, ~+ v9 y: `              <h3><?php the_title(); ?></h3>7 F, x" ^0 A  ?4 O& f
              <div class="notice-content"><?php the_content(); ?></div>
4 u3 i0 N2 a" A/ b9 u7 m/ g          </div>  [& ]6 h( y: O1 Z3 X% k
      <?php endwhile;
% \% v( j" o8 T4 K! T      wp_reset_postdata();
7 f# P4 S+ z+ M% ?6 H' [   endif;
% N" T, e3 N0 t, {   ```
$ q% ?( J( m; @6 g  T. U% y) H6 a9 J8 @9 K% \5 `
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-11 03:34 , Processed in 0.014580 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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