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

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

[复制链接]

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
& \: K, @' _$ y. q: S5 q0 P2 [8 T9 l& s+ e  U0 q1 y
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。5 L# g  J5 c2 [: S6 _8 S
& _  x  o& {7 @, m" ?0 l
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。. z; F( j" a: \: Y$ y( H* V

) L, R3 m5 h& N9 E3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
+ I4 o9 a2 u% D" M$ R& e/ `; R" b  V/ i5 a# c" Z% o$ K3 r% {2 _0 Q. h9 V- z
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。/ e& z+ Q! l7 b+ B. c& c9 |* L
' N2 s) d$ C1 s
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
, R5 A; ]7 E& k  e8 G4 @: V* C# {0 Y. k1 L) }7 L6 Y
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
6 ?# `$ ?1 @9 a8 ?; \; h' t
$ G3 P2 {0 J& I( f% H, k1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:% [1 a5 B+ v9 Z+ H) f( X# _( X/ f
9 |& S; W- t) ~# R3 j
   ```
7 A2 ^: O" ]3 }+ T: z  ?   add_menu_page(
: N4 Y% R, {  e' D       '全站公告',
- z% E  g. T" i6 x# c       '全站公告',# q: A; J' S, ~1 c* ~7 j: j3 m+ n& E
       'manage_options', //需要的用户权限
5 w. i# g( z, R       'site-wide-notice', //后台页面的 slug% T: {0 m% f1 J
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数1 ~+ u, Q! O5 R: L# L, r3 {
       'dashicons-megaphone', //用于显示在菜单中的图标8 h; `+ m+ i& ?/ s$ Q/ C. i: |
       30 //菜单项的位置2 h' o* q$ ]  N1 F& V
   );
" t, \( s; ]3 x( X# b   ```+ U; B" y5 a& ]3 F/ P2 x7 D1 `

8 C5 E8 G; ]- B$ [7 `9 [' f+ u# p   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。* }2 Z  O- B4 z3 V( \$ k/ [# A* ^
6 @9 w; u* @# C. `/ {
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:% x+ w9 j: {+ J" W6 h
4 f% e- n4 y8 S  f/ }7 N5 R
   ```# Q  u# ]) h$ n: @. G. l$ O
   function render_site_wide_notice_page() {2 H% |# {% s# h, R# m8 j4 Y
      // 渲染后台页面内容5 O) P: _3 X. Z$ f
      echo '<div class="wrap">- b' t; ^3 l- R4 b; l( l
          <h2>全站公告</h2>
' ~2 E: `  W. |( u1 T+ u          <form method="post" action="">2 H+ u/ ?: h% I- @3 t7 Q2 Z! l+ D
              <label for="title">公告标题:</label>
0 b" K: a$ v5 F2 X& O              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
; I4 ^* N+ K& d: X; i" `0 |              <label for="content">公告内容:</label>
3 ]9 Q; X" W: L  U              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>! C2 C' G( m: U9 o' M
              <input type="submit" name="submit" value="保存设置">
  }* }$ Z& Y* y' N6 g: d2 j          </form>
& ]. R# Z) T3 `+ A  j7 k, e      </div>';, _7 z, z; y4 j  X0 p: J$ w
0 h" Z6 `8 e( p1 G( @& z
      // 处理表单数据
) I2 `% Q7 }& R      if (isset($_POST['submit'])) {% o7 O1 t1 |9 N- x. h/ c
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));7 s* \; a; s' W7 y: O
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));! w" H) e5 l1 P8 v3 S" B
      }
) O# _& x* ~7 v9 c, n4 ?   }, ^4 @# E' G. Z$ x
   ```
% j8 d$ z1 T5 V& d; z' i
, {1 r1 R9 `( n+ v   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
/ z2 b- x( o- I' c$ z7 n" k/ v  X5 y/ [: q% H: L; z, r! |
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:7 p/ q  t# A+ s  X- ?

- |' [  d$ n+ `  F6 F   ```
+ U6 R2 p' F, k' _: ~) I$ t0 k   <?php
% R- p  ?0 T# \. T- u   $site_wide_notice_title = get_option('site_wide_notice_title');
& Q" s4 m2 \# {' E   $site_wide_notice_content = get_option('site_wide_notice_content');; X1 |8 |4 @  t; a) x% M
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
+ P$ D4 f- P/ h* D( d3 T* d/ L( B       echo '<div class="site-wide-notice">';
. ~  |7 h5 ]  v+ G& _3 @       if (!empty($site_wide_notice_title)) {( |) Z0 B8 n' ]% y* p
           echo '<h3>'.$site_wide_notice_title.'</h3>';
! Z: b. K+ l9 \! i' }( ~       }
. s2 j7 U( n4 Z0 n# X  S4 |       if (!empty($site_wide_notice_content)) {% H" e8 G- K: m6 u1 V4 i; `4 ?
           echo '<p>'.$site_wide_notice_content.'</p>';1 R, s4 G9 E( U  X2 G% [( Y- u
       }" A9 ~- E9 A" k' K' x1 r
       echo '</div>';
: v2 j/ i% m  U& B! D   }2 _7 u: {  f# I. X( Y4 V; W: k7 `
   ?>( ~; _: G# O/ ]$ _2 s  t
   ```
& L9 Y! e- r  b; W" j& x
% }/ n+ C9 u3 M/ [) {   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。  @8 J+ _) a' L7 ~2 v+ e5 ^# d$ c
6 E9 H+ g* z% q( s1 z' ]1 a
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?- \3 Z3 p* e( B3 p- I, c
& E6 K4 F% O# d  O
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
" Y5 u$ |# J0 P0 P
1 J2 K# r: \4 U% }& n; R, v1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:6 E; J0 ?& C- J2 b' j' C

. r$ o: P" n$ N  S* T( v" B$ A$ _  A8 H* H```
) g; r1 s+ v- _+ Q0 dfunction create_custom_post_type() {) I9 f  l  J7 o: A1 [; d( i* Y8 F
    $args = array(
- C: x, ~: W/ y- R3 `0 \  E0 m        'labels' => array(9 w, W3 Y1 J6 A5 q( l
            'name' => '公告',9 A. F) s  i+ u4 l" U( x
            'singular_name' => '公告'
" i& e8 k5 G, y6 ?: I, Q        ),
  E! l! U* K: v1 H  h/ B  X+ D        'public' => true,% I+ L6 ]0 a3 ~7 X- {4 u; {. R5 [+ i
        'has_archive' => true,
5 W. Q2 }$ @( J4 Y- ^# N, Z- K1 T  N2 H, R        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
% C: i( J) `  M        'taxonomies' => array('category', 'post_tag'),1 u( m6 J  e! `8 Z: }
        'menu_icon' => 'dashicons-megaphone',
/ B, m) d' W& @5 T) `        'menu_position' => 5,
8 j$ X. j9 L6 c- z* W9 u5 e        'rewrite' => array('slug' => 'site-wide-notices')
$ G3 K( z2 Y; H% q! W7 B    );* z2 C* ~1 j8 W2 w" ?4 L9 J' Z
    register_post_type('site-wide-notices', $args);
: Q9 i4 t: t$ `, K9 K% v/ e}
4 |2 a* ^( o$ F: x3 \add_action('init', 'create_custom_post_type');2 e6 s: m% p  n; u& z  q1 ^3 _
```
# E: A+ D" i. e5 \/ }8 I4 E2 N
  {% m3 x0 N, M; `$ v) C在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
$ Q% [5 A; T2 q# t$ I9 T) k* s
3 ]) }% `0 L4 R# n1 ^. B2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
( ^# z5 z( ?4 t" K+ \8 k5 |/ q9 b1 Z* n2 t6 B! ^3 ^% M
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
4 U% p  Q( z3 A* X3 |8 i2 i9 n
0 T- t8 f/ X  t' g/ O) d5 a```
4 y' N. d8 J" i1 j3 Y$args = array(
' ~3 }4 l& f* c5 Y1 \" z9 d6 e    'posts_per_page' => 3, // 显示的公告数量
1 i& y: B8 h4 f7 x9 ?    'post_type' => 'site-wide-notices', // 公告文章类型
  l) _$ L" Z( f( }9 @, \# h    'post_status' => 'publish', // 公告状态
. S, L. `) o6 c) X7 J    'order' => 'DESC' // 排序方式
8 x% a' {4 j; ]6 L, ~7 [2 m. q  ~);
2 L6 R) _/ z1 b0 s) Z" O7 ]$ U2 W" I* V' L: E1 Z+ y1 K0 d; r! n: S
$notices = new WP_Query($args);
$ J( ^- j) o0 j9 v1 {/ Xif ($notices->have_posts()) :- T, ~# G8 \4 N$ L3 W" g7 A
    while ($notices->have_posts()) : $notices->the_post(); ?>: S$ c; z) u8 c5 ^4 j
        <div class="notice">( v0 A2 X6 X- w, m/ d7 C" p
            <h3><?php the_title(); ?></h3>! N5 G  ^) B# n2 x  H# x
            <div class="notice-content"><?php the_content(); ?></div>
! B/ Y3 D+ y7 G: z6 z        </div>- I3 p! G  h2 a6 r! r
    <?php endwhile;
5 P- a0 A; X3 @; a) [: J; b2 welse :
7 y1 N( ~# @2 X+ i& o# o) T7 E    echo "暂无公告";5 p9 f. ^9 i$ [
endif;
/ A* `  u: Z$ K. i9 r/ Twp_reset_query();* p- V! S9 B0 P  m- a, t# b
```# Q) p8 k8 w9 z5 c

' g$ g$ |7 G' g3 ]1 e) [这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
4 A# Y8 m  o' j5 R: j5 }+ o2 x. N9 F' V% b' E3 ?
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

530

回帖

3542

积分

管理员

积分
3542
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
6 j7 r% J- w0 s. ~! {
8 o/ F! t  D7 _/ L如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
) e% [( [, S0 p# f6 m7 f+ G
# {8 L1 i5 W' B0 `! v以下是创建自定义插件的步骤:: E0 ?! S/ m( w) Y8 W8 Y

+ C6 @3 I( n( Q( t% k1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:; _: D/ @+ n! f' _$ R& i

! L3 v  a3 r: T   ```
0 a0 [2 K& L* ~+ g9 t9 \$ z( B   <?php4 H7 O! b$ R2 ^# N& ]( [
   /*( `  s0 v0 L: l
   Plugin Name: Site Wide Notices Plugin: k5 Q( w  J4 U3 }$ D
   Description: Adds a new custom post type for site-wide notices.9 V6 {5 _* E9 V
   Version: 1.0% k5 G: e/ g# U5 F) |! r* v+ h8 ~
   Author: Your Name7 {* r1 Z0 d  h" Z6 |+ y
   Author URI: http://example.com
1 R) K7 `% X$ R$ X/ {# Z, E! L   */
$ m9 B4 n' S! B& ^3 B% j. b" W: R: p# y4 Q# z9 h1 ]- ~0 d% `+ w
   // Add plugin code here...7 l9 p% g" I) N5 Z2 v
   ```
6 Q# B3 d9 a5 _! X: D" P% X1 c0 q, M# {6 d& N+ }. D
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
3 s3 W* `% ~0 E4 E5 a
" r; F5 @; V, s9 y# k: R2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
* D3 c  J) ?% b% a% c4 y/ X4 y1 |3 ?4 t! h
   ```
8 ]! g- H# n* \7 ^6 q   add_action('init', 'create_custom_post_type');
$ H  |( f* Q/ h/ h8 o   function create_custom_post_type() {
% v* x/ e& T7 I; C6 T: u- Y2 @9 q      $labels = array(
, d. R& F, P! i" {          'name' => 'Site Wide Notices',
5 u* b5 q, h: Z2 z" d2 y$ k          'singular_name' => 'Site Wide Notice',* @1 h( z7 A* t/ s. i* t: A$ a; P
          'add_new' => 'Add New',
# l7 q" Q( k7 v  w& J& l$ r# D          'add_new_item' => 'Add New Site Wide Notice',
5 a& P% c* \" [, r5 r          'edit_item' => 'Edit Site Wide Notice',% Y* M* @6 S7 z! m' v
          'new_item' => 'New Site Wide Notice',
8 h7 W$ B3 ]& n! F  M          'view_item' => 'View Site Wide Notice',5 S1 m/ f, k" @$ `$ ^# O: e4 ]
          'search_items' => 'Search Site Wide Notices',. l6 j: g/ `% c
          'not_found' => 'No site-wide notices found',
+ d4 Y5 k, q5 g# D4 F          'not_found_in_trash' => 'No site-wide notices found in trash'
5 t/ h8 P- \. ^5 R' c      );8 V6 f2 ~: t+ w1 h, u" C# @

/ k6 V3 \$ D9 Z4 F1 t# Z      $args = array(
6 `  }- Y6 b/ u# N4 a  ?7 V          'labels' => $labels,% ^4 N. T) W6 A) f) h+ p
          'public' => true,+ z! F) p. R4 m2 o: y
          'has_archive' => true,
1 M, f4 N5 |7 [. Z          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),& F: T7 ^: ]% e+ ?  x
          'taxonomies' => array('category', 'post_tag'),8 r3 F4 h- G3 h0 l$ C) |
          'menu_icon' => 'dashicons-megaphone',
/ x3 Q8 `! s1 T/ v6 F: C          'menu_position' => 5,
) A& A- R  j0 z) I. n          'rewrite' => array('slug' => 'site-wide-notices')
9 h* q. s  [4 s! V      );3 K/ k) F2 `6 v' \" a
4 k, h% H" w( \
      register_post_type('site-wide-notices', $args);
- J$ H" s7 ~1 I5 `0 `* `   }
- x- z" _, V5 q1 F6 Y   ```
1 U" }5 ~. N# k. h$ @0 c
4 k5 f2 |5 o! v   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
$ z- N3 B4 [2 B; S( K5 l8 S: i5 }
5 Y+ ]0 w. ]0 _7 i/ I2 n3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
6 H$ S! I3 d+ Q( g  D
! h- ~: A; I2 o& G1 j$ O   ```+ o) V' ~9 G% S+ K$ t. x4 w" t
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
! x6 P: L4 t6 e; u' I: D# f   function add_site_wide_notices_boxes() {0 j* p3 ?  U  S4 P3 g
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
9 `7 [) Z: V8 F6 z3 Y- j   }
  d3 D2 j. ?* e% ^
2 k4 x9 g6 p" z- j' t3 ~   function notice_details_meta_box($post) {
1 k5 ?& \( G, N$ G      wp_nonce_field(basename(__FILE__), 'notices_nonce');7 u& ~! S2 G$ c/ G3 o
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
4 u( b2 o, i' m7 O( r7 g      $notice_content = get_post_meta($post->ID, 'notice_content', true);
; q6 h8 T$ H) q, o! E6 w      ?>* f2 w- Z9 T% a- G$ X
      <p>( x9 |5 v# z6 O
          <label for="notice-title">Notice Title</label><br>: q) Y6 z5 E- [* `: h
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
+ d' u5 o( y) n6 |. N5 V      </p>
: {8 G' a; C% h) k7 |4 i      <p>
) J1 D2 F& f5 l% U          <label for="notice-content">Notice Content</label><br>
. B: I2 Y) E8 T2 g; S4 V! O          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
: P. M+ E; j" U3 K# Y1 j      </p>
; f  W% S7 H! a0 P. x      <?php  g. r; L; o( R/ X6 H
   }( b: N9 q$ U7 @6 f
6 f7 t; T8 |  ~3 g5 f
   add_action('save_post', 'save_site_wide_notice_meta_box');& I! @$ E5 D, z& R: @, `$ g
   function save_site_wide_notice_meta_box($post_id) {
$ D6 F! x" Q8 |2 _. A) L, r      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))5 Q4 o& M+ e3 e' O' |
         return;& n+ c1 e) d0 \/ f
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
4 G0 ]; n2 @# N  d% {" ?2 Z         return;& S+ h3 o% R" d
. [* v3 y3 D: K+ z/ S
      if (isset($_POST['notice_title'])) {1 _& P7 J1 F. R  U: i
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));+ F) s' ?) D1 g  L. q
      }  T8 e/ G5 N0 c0 W$ P
      if (isset($_POST['notice_content'])) {
1 L& D0 Z" A- S' ~$ V4 S$ Y          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
# l6 N0 j9 H# t2 n0 i      }
( b+ J9 x6 W, p( C0 a- U   }9 k5 i  x/ w: L
   ```
: e" H) a- _/ d: B- J/ y; Z
6 t- m/ `" y, K8 [" f' _   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
* M) G! T$ s4 ~0 I
1 @+ o+ P. K7 w) ]4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:- o- z+ y# }. X' _# a6 r

, {' S  f( L, _   ```+ Z& j, a5 Y# K7 B
   $args = array(
" ]  T0 |5 g2 u6 F      'post_type' => 'site-wide-notices',1 V" o( i8 _9 S( @# X* t  ~# ~
      'posts_per_page' => 3,
/ m+ h- {2 ]! L9 Z      'order' => 'DESC',
+ n$ i) A4 I! O2 y3 d: M      'orderby' => 'date'0 n& p  a# t) ?' \& c
   );6 I4 X* ]0 T1 l5 E
   $query = new WP_Query($args);2 N4 a" F0 \, d  c- d* \
   if ($query->have_posts()) :
9 X5 [  Q8 _2 v. i  l      while ($query->have_posts()) : $query->the_post(); ?># [1 F) S* ~8 c- |- n+ D( T" q
          <div class="notice">5 C. V3 m. X# |* b$ W
              <h3><?php the_title(); ?></h3>' e; h7 O. t2 v' {4 }5 L4 n
              <div class="notice-content"><?php the_content(); ?></div>
5 |8 \  N+ }( g5 l) }          </div>4 E5 \2 Z) K! ?- k9 d
      <?php endwhile;
" o- h- x; A2 S6 l3 Y      wp_reset_postdata();
2 B" i/ U0 F3 u/ _' u   endif;  i6 e2 ^9 X/ \2 i1 ^: t6 d
   ```
. t1 u2 _6 H  j0 N; r
" M$ F; k  Q& ?7 g   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-23 10:35 , Processed in 0.019399 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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