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

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

[复制链接]

335

主题

520

回帖

3437

积分

管理员

积分
3437
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:& a9 L6 Q+ o( o. d4 T' P

1 B4 e' `' i" Y* J6 P1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
/ g/ `4 _# V! c$ M: c( s7 F% ]1 \, S  A4 o7 a- K  h
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。  E% \9 K5 o5 h2 ]) X) g0 I; A

+ l" e- H7 B7 V6 n" J: E3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。2 v5 G" X! t! L& Z8 ]6 Z! _$ t

& U2 ?; L$ m7 e; s4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
8 T/ _4 h9 z" h2 I* [, Q  ^/ s$ P4 \7 L9 E! S
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3437

积分

管理员

积分
3437
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
& i5 O( E4 z; f% c
1 s( \) v: z6 D6 {6 {如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:, e) l6 k6 B! t. r6 [8 k

# {, H9 i! t$ f  J' Q! F2 P" N: J) V1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:6 m6 U! y- E0 O2 p$ O2 }, e
5 G  y+ {  B4 H) U
   ```
; I% n* t5 x* C* l! d: g/ R* U7 V   add_menu_page(8 S) x- ?5 i3 V7 }. R$ T
       '全站公告',
! n8 c- h& ~& E& u) v5 a       '全站公告',4 e$ J% z! \- ?, ~% h
       'manage_options', //需要的用户权限
6 D- _( K  [( r, r& p" u7 f! G/ |       'site-wide-notice', //后台页面的 slug+ J* r- R7 o/ G% r& d- B
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数) U' D" J/ l# ]: _
       'dashicons-megaphone', //用于显示在菜单中的图标, \5 d' O* ~2 C. ^& t" Y+ v
       30 //菜单项的位置
& x! ~6 k. r9 d% S  q   );: Z6 N5 A6 I) ?) F
   ```
" w4 M' e9 t! a" E% {( r" X2 H
+ C8 ?2 j* W! f+ S2 g$ C   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。, _* z/ X5 y7 z* M- p

' b2 S, Z. Q! A, c' [3 t2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:2 V+ ~& G2 t) E& y! Z* I' G# }' b, m

; d) l$ i- x8 ~, M0 a/ G" ~   ```7 l, G. M# ]% n" C7 w: }3 ?
   function render_site_wide_notice_page() {
: k( Q2 T! u7 v+ C/ @      // 渲染后台页面内容9 a7 S- }* \$ U# @5 A4 ]* D/ D5 k9 ^
      echo '<div class="wrap">
; J, c3 R- ?8 ]  i/ V: P/ C          <h2>全站公告</h2>
3 X$ z4 Y# J# c          <form method="post" action="">
/ H( `- G! F* p              <label for="title">公告标题:</label>
4 v4 o% U  O* `              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
1 S1 }. R4 O8 u2 z0 V( X$ `              <label for="content">公告内容:</label>1 [( E" o5 s4 g' x# E
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
; g. K* l8 c, N9 k% K# J              <input type="submit" name="submit" value="保存设置">
' z! J6 ?5 r. C, W          </form>& D) ?5 F( t, P& m6 \8 b
      </div>';
( w- s/ r% j* f0 P, v# ~% K  P+ b9 E: {; v6 [3 }
      // 处理表单数据- C  ^, o1 {* F3 e
      if (isset($_POST['submit'])) {
+ y4 H. V; B0 ?2 ?  n6 p          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
' c& o) d! o! q  K4 r5 h$ B& d6 \+ p          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
; p! ?/ r, [8 {1 X      }
, i2 g1 T! D- @1 L, t   }  H* v: Q4 G: K6 |+ X& F
   ```& w7 e4 m: i# E, J
8 `! Q  ~: b0 }5 e
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
1 G! i3 B/ v4 {- U/ W9 Q! r% y$ |7 W1 `" q6 ]* c5 j* \
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:2 t+ K! J( J) p
+ {( }6 h* j& E$ w
   ```- S* z3 `' b  e
   <?php
8 j3 ~0 J- p1 E, Q! y& o   $site_wide_notice_title = get_option('site_wide_notice_title');) P$ w; j, V6 x- b
   $site_wide_notice_content = get_option('site_wide_notice_content');
; u6 e) D* Y; ^) B9 X   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {$ o5 [7 \0 B* h% d, n& w1 l
       echo '<div class="site-wide-notice">';
5 U" P$ C% u2 r* X       if (!empty($site_wide_notice_title)) {
, D$ l- `! W' K. W4 E4 O6 l           echo '<h3>'.$site_wide_notice_title.'</h3>';0 j/ {- F+ d2 a% c6 \
       }
' A8 I9 W. N# X4 ]# r' }       if (!empty($site_wide_notice_content)) {
- o2 S) a2 s! K8 p           echo '<p>'.$site_wide_notice_content.'</p>';7 O5 S2 }; j9 G9 x: G1 K% G4 V* D
       }
* p9 O. T" H) q/ ~       echo '</div>';$ E* Q0 P2 K) G+ Q
   }  \! N2 \2 {4 k
   ?>8 `0 I) a3 P8 l6 J/ d
   ```
( E; j6 ^- [, D, i# O7 U. U! e% @8 Q8 F, d" `
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。- x3 Y8 X2 h9 x2 B! c6 e$ h

2 G! }) ?  o9 v0 E' y1 G请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

520

回帖

3437

积分

管理员

积分
3437
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
/ |( Q2 e# E2 a0 d# ]- [9 B% R# l0 k- Q1 `
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:* ~( B5 O$ i5 Z3 k' a: I  I

  @4 R( `/ @1 W  f2 M1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
2 a4 P# X2 o. D6 \
1 F" n* z3 r; ^```
6 a& Q( ]& T3 y+ m1 H9 L$ ?function create_custom_post_type() {0 D+ ]6 n9 s  s1 B6 K  D4 x
    $args = array(1 H& ]+ g5 j% ~1 c7 v  N) T# a& M
        'labels' => array(2 M; I+ o% P- q8 A0 [; s
            'name' => '公告',
2 h, o0 P4 r" f. P) s4 K9 C3 y            'singular_name' => '公告'. q& z+ D, |: L3 o
        ),& U" A% g4 m. r" Z# G  o3 W6 t$ {. T- {
        'public' => true,
+ ~4 ~6 D- f. M9 `. G$ z! k( e        'has_archive' => true,8 s4 e6 b- n3 e$ E
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),  ]2 k+ c5 U- m  C+ W: |; \/ ?0 |
        'taxonomies' => array('category', 'post_tag'),: v# [5 L1 |/ l+ Y
        'menu_icon' => 'dashicons-megaphone',1 d8 ~' p* H* ~; S4 ~/ M7 U- R9 ]
        'menu_position' => 5,: C4 s5 c4 i# _
        'rewrite' => array('slug' => 'site-wide-notices')
1 y: A3 i5 x7 L. E# D9 z& W    );
+ f1 G9 u: w  X) k4 h    register_post_type('site-wide-notices', $args);4 }8 m4 o7 w+ U( d1 g# l
}
# `( Y* f/ U8 t; B8 ?, J: Oadd_action('init', 'create_custom_post_type');
; Y' g# U' R  s! |```, a8 B, G- g; p: i

* L- X3 J1 Q9 S9 y" M! p在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
- j# K( J% v! t
- @' k/ ]2 C  Y# H5 z: l2 A% m2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。4 ?; ?$ C) g0 C

+ v% D" T: H+ b. v  g4 l3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
$ r5 O# z! f! V% u$ f$ G2 L4 F  t# T+ ^) i% ~! _
```- [# r) U- Z  _, d3 L& X
$args = array(
0 v6 \% G( C; J; @3 v" L    'posts_per_page' => 3, // 显示的公告数量
* B5 A% ?, y0 g2 e% z* `/ L    'post_type' => 'site-wide-notices', // 公告文章类型8 m" i  K7 D! [0 K1 @, `# B- n& c
    'post_status' => 'publish', // 公告状态! ?! c0 O& I- f, e. Y' c% ?
    'order' => 'DESC' // 排序方式! X- Z0 t1 R5 \9 B
);2 T. Z& r- O  B  Z9 _8 @: T' Q" N; P
$ z, d! N6 r: Q: g
$notices = new WP_Query($args);* y" _0 k9 i4 \  p1 d
if ($notices->have_posts()) :
* f- x+ e  a/ Z' r% S, }    while ($notices->have_posts()) : $notices->the_post(); ?>
' R  C# @, H8 U3 s' t; H# v        <div class="notice">
( P# Z' \; n) m3 ?) W5 A2 C            <h3><?php the_title(); ?></h3>
" D$ M9 ]! [4 W8 V/ |, K, W4 j, X            <div class="notice-content"><?php the_content(); ?></div>5 v# _0 L6 A4 \4 G* p  c
        </div>
) T6 @2 a7 K# u" h+ ^7 ~1 ?1 L# B    <?php endwhile;9 y! }* J6 D, w
else :
3 U2 M2 e6 k$ m6 `, |. C    echo "暂无公告";
9 G3 _/ J9 B" o' y4 hendif;
4 }$ c  @7 r& B6 z. @! Gwp_reset_query();
7 Y" L* J6 g$ B& Y5 Q  i& s```
6 L1 J5 K8 r8 B! r2 Y# F' R& {" x- U) X
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。  ?1 T4 S2 [3 o( N* c
! }& a& m! m1 U( X+ J! G3 x) o, d. V
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3437

积分

管理员

积分
3437
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?; K8 S( z8 x, ^  k8 O) C1 V  V5 J
5 @. M( }  b* z5 D
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。; R1 F8 T. T9 J, R% N$ O% z

# q& q5 z0 `! L! c5 g1 y5 |以下是创建自定义插件的步骤:
3 i! f) D+ N/ R8 \4 T; o5 ~$ b% ]# G5 z; e1 m
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
0 O& |0 x1 c& [( ?, n1 H( n
+ ?2 o" Y! y$ A. @7 F" a6 M& f   ```
4 z1 C- @7 f9 |  ?   <?php
+ M$ v0 i" i3 M6 E8 _8 d   /*
; {0 M* @; y; T, a* {   Plugin Name: Site Wide Notices Plugin3 E) H7 }8 v7 u0 l: n
   Description: Adds a new custom post type for site-wide notices." k8 `$ v) F' y( }& R
   Version: 1.0/ k  t  }# A6 G% p; j, n
   Author: Your Name
2 r8 e4 V# x" o' W4 v' J   Author URI: http://example.com/ B& X: `2 s( T9 Y8 m
   */
2 E$ d  i" L  {7 P, J
3 Z8 _9 q3 t" B& I   // Add plugin code here...
- I3 `6 h+ u0 `1 i5 P$ Y   ```) |. O5 S' S, a; u* p! J' G
. ^, r9 s1 v4 Z
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。2 X! J3 U3 {0 I
# ~/ }0 E/ B% e7 Y
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:" o* {& F4 i% ]5 x6 ~3 y+ y2 n
/ C9 C# F9 ?; ?# H/ q
   ```6 k' C+ I1 P" _1 W2 I% r( t+ j" k4 P
   add_action('init', 'create_custom_post_type');1 j  G  t0 ]8 h. D) K* {0 t
   function create_custom_post_type() {4 P, w6 X( y: F2 k3 W5 ]$ `
      $labels = array(
4 |; S; q8 W2 @- d          'name' => 'Site Wide Notices',
" P% w& ^6 P0 J; G8 Y/ R          'singular_name' => 'Site Wide Notice',9 x6 y1 V8 A: b! Q
          'add_new' => 'Add New',. g. ^- s6 j! h9 d
          'add_new_item' => 'Add New Site Wide Notice',
/ {8 ^" A) W8 U! a+ z% `6 R          'edit_item' => 'Edit Site Wide Notice',
4 n# Q7 }) f# B' o          'new_item' => 'New Site Wide Notice',  s! _$ o) @8 o/ u8 j7 _  x2 T
          'view_item' => 'View Site Wide Notice',# t6 S2 Y, Z  E
          'search_items' => 'Search Site Wide Notices',5 f9 U- o7 |: G$ o1 i+ X
          'not_found' => 'No site-wide notices found',
2 d* ]+ Z: Q  g          'not_found_in_trash' => 'No site-wide notices found in trash'9 \3 }6 w# \4 U& E" M& u  K
      );: _$ A2 o& K9 l- c1 C
; X, _* B. R$ l  _( }
      $args = array(
2 ^& U4 p% M+ B: I8 C2 w5 Q& A+ \) R          'labels' => $labels,
2 _- w1 D7 ~$ q          'public' => true,! K& }! y7 V1 q# K6 o
          'has_archive' => true,
0 b1 F0 V" I% i& M, y0 [8 V          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
$ R* l% X4 ]9 P- P+ {          'taxonomies' => array('category', 'post_tag'),
  t$ E8 ?' c) t' ~! ^          'menu_icon' => 'dashicons-megaphone',! ~2 j9 }: c& Q- i
          'menu_position' => 5,
7 k" V* a* B. r: o' l          'rewrite' => array('slug' => 'site-wide-notices')
. M" r; L1 M; m" h9 c8 M% G7 v0 G      );9 I  i6 h7 n& {+ O: f5 r; w

* |' t4 t% R  [7 @# p  M3 n. n% K      register_post_type('site-wide-notices', $args);
9 i' L7 c8 o/ L% q. @   }
2 |+ g& l4 p- Z& {5 g   ```6 W* v9 u- p) r* j0 Q

4 T6 y! h/ e' t% w# r   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。% X1 Z1 z) q7 g- b6 }) r9 S
" Z( \" A) f3 f# N+ e! D
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:: Z5 ^7 E' A% y% J  N
$ t$ ]! J7 E& S: I2 }' V
   ```  u& [- a0 ]) \7 \8 g
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
6 a3 ?. R. G; E! G3 v: R8 o  B+ K   function add_site_wide_notices_boxes() {
! b8 Y8 Q! T* H3 V& a4 M      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');+ I" [/ y$ l8 U1 J( P5 _- b" J
   }  ^2 ~- L) F1 a- u$ a8 \# P
5 n1 b* I9 I4 ]% a' s" G$ a
   function notice_details_meta_box($post) {
2 N9 J# f3 l- R      wp_nonce_field(basename(__FILE__), 'notices_nonce');* \7 g& c& K$ g. K' b3 j, L0 o6 X) l
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
/ i! W- ?7 z/ ]4 a- ]      $notice_content = get_post_meta($post->ID, 'notice_content', true);
# a- _, g' @' R1 s# K      ?>: B( {* i# q  O: Z( E- r
      <p>
$ v3 J. y5 _0 r          <label for="notice-title">Notice Title</label><br>
) R7 ~2 N8 m; e; j# ~9 q          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">* F7 `; \$ w+ ?7 S5 G6 q
      </p>5 k0 ?" p$ b( A7 F, t& E) Y1 v$ |* k
      <p># B* i% h1 }7 j( K
          <label for="notice-content">Notice Content</label><br>( m: f& w) }: Q6 l, M+ }9 s
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>! A" J* t6 o- D+ Y* G" D$ y
      </p>5 A. L" B" C$ X8 q" ?2 F+ L
      <?php
/ T) v8 P' F: ?1 L   }* n8 w# z8 ^* s' _% C4 D6 a- G

" D! ]0 ?4 k: ^5 X   add_action('save_post', 'save_site_wide_notice_meta_box');8 A% f" ~# t8 m7 [# u
   function save_site_wide_notice_meta_box($post_id) {
" z. k7 Q; f5 `3 c: E' F' F! ]7 i- `      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
+ F, c% k( J: D$ V/ }; G9 m         return;
0 \  ?+ v7 X0 ]+ h+ T! S0 i      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
  D9 F) k- T4 k9 Q. {         return;
4 ~, _# n6 E3 F: t6 h8 V
# K0 ?7 P. ]/ |' [      if (isset($_POST['notice_title'])) {
% z/ }2 d6 }1 _! L3 O          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
7 c( H0 ]& r; K! h4 n6 n1 {      }# s# P5 Z7 B: _" x; G  R
      if (isset($_POST['notice_content'])) {( [+ U) @! f4 N  s
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
2 b+ @2 d  B* [      }
. i2 e* K( D$ Z0 H6 e   }
; W0 S, e" g+ u/ I; M+ C   ```
2 v, V) @0 i$ |6 }4 M. U9 b9 ^- @, K4 r  B! p% E
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。, H* Z4 V0 P& m" k
+ ]' ^) b/ D7 I6 j7 r( I& i
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
1 ^8 `- i) ^6 B9 s8 O; A: ^/ o( \) r! G( x4 r
   ```( D/ L2 @0 j6 J2 E" }
   $args = array(' U: `1 w" n& n# f9 [$ r
      'post_type' => 'site-wide-notices',
- C# s' T+ s6 K      'posts_per_page' => 3,
; f+ F: g+ r7 Z& P9 a      'order' => 'DESC',
% }. o5 k/ z. j  A      'orderby' => 'date'
2 e+ [9 r8 n! g   );
' Z- N& ^$ v$ @5 T1 ?   $query = new WP_Query($args);
" v0 ?7 {. Y( H9 |' M" y' f   if ($query->have_posts()) :
3 u8 i; o3 A- i$ n$ Z' C& u      while ($query->have_posts()) : $query->the_post(); ?>' Z# t- h1 W& @
          <div class="notice">
  s7 Z# h1 V3 B0 z; z* u! c* l+ E              <h3><?php the_title(); ?></h3>
0 o0 ?# w0 f' _6 Y              <div class="notice-content"><?php the_content(); ?></div>5 R8 k' y  w; U- M
          </div>3 u0 }0 B, k+ m1 S
      <?php endwhile;
; s0 K; b( u$ }9 i      wp_reset_postdata();7 K# z5 @" G( w" B6 P  c7 a
   endif;
3 n& j5 E, N& w3 y   ```
3 U% m* ?+ _2 z: t$ |9 ~: J) x! B6 a7 \* V$ ~' e1 W) ]7 Y9 p/ m
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 10:40 , Processed in 0.082621 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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