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

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

[复制链接]

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:+ F: K& l& n! E$ ~' e
- ^) |3 S( k' r" A5 g( Y
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。9 h9 f/ Z7 K; ?1 Q) g8 l+ s
2 X1 B6 G3 A3 H3 t3 g9 k6 a7 z
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
# S& L" i( v# m
! Y- a7 E. M  I" ]9 K/ h3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
! ^% v( q( c4 |( ?# w3 T3 E6 u( {4 O" Z7 S2 _5 ~& g! w
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。( c* y! r6 m; D# b. _$ C
) W: [4 t% f5 W
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
# _, {: v! ~1 X1 X9 z" {& U; H( Y
) Z) f! F# Q- L: m如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:: ?! U5 H5 X3 K: X
  y! S1 E" ]0 ?' F9 P' N5 W/ z
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:3 m3 O+ h% w7 u" ]! _0 r4 C! `$ L

5 D* x8 L, f4 {5 {) ~- w4 v' q$ F   ```8 `% V9 d5 S) v% w, I8 V" L
   add_menu_page(- c( q" l1 S& x/ Y, I' h& q: z
       '全站公告',; H( z6 E& n, Y# l3 l, L" C) h1 }
       '全站公告',! W8 J1 U7 D5 g" n: N
       'manage_options', //需要的用户权限# o* I9 F1 P% g: X, G9 b+ D
       'site-wide-notice', //后台页面的 slug& Y1 ?( B9 m- y# T
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数. ]% D6 u: Q2 m7 _5 s
       'dashicons-megaphone', //用于显示在菜单中的图标2 m7 f$ @% {) `7 V) i' t# n: n
       30 //菜单项的位置- G/ ?2 w$ ?4 p
   );- s* |3 w- p  X6 \
   ```
# d; Q& T1 A) J' G1 k  f% S- l2 y" o/ h  I9 o9 n2 B% ~( M# p8 R9 A
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
" B1 ^0 }* c+ P# U0 H* p+ j+ v) C" n% V- R3 P& ~
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:* S6 ~" |6 D6 l5 X4 a' ?

, D# f# i6 ~4 M! f$ n8 b, ]   ```
1 s+ X3 _2 q( H4 {( S4 N   function render_site_wide_notice_page() {( m+ r3 A: G( `
      // 渲染后台页面内容
! {' p6 l) M) {7 p$ N+ \      echo '<div class="wrap">, M9 v7 a* L% [* A
          <h2>全站公告</h2>( M4 l- O4 d% c* C* h  Z
          <form method="post" action="">7 |/ Y  P4 |" }; V
              <label for="title">公告标题:</label>
( v/ G6 r- y2 f  ]6 G+ S              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>6 B" O+ T: I3 X/ Q- G
              <label for="content">公告内容:</label>
& l) _( `, K6 @              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>4 B1 u0 J! ]! e! j* \
              <input type="submit" name="submit" value="保存设置">6 m: y: X2 U6 I$ {
          </form>% Q3 Q; V% ?) R6 ^' N8 S4 F
      </div>';; e, S8 P0 V5 \3 ^- V+ c

; B# y5 t8 J2 L( g2 W$ m      // 处理表单数据
8 K$ a; M$ C: i2 N      if (isset($_POST['submit'])) {# t5 a, ]5 a# y: j4 ]8 {
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
( |1 K( c) v# [          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));7 }4 U* S  ^) s0 A
      }
8 p5 ?5 c: F; f- i1 t   }, W4 p/ Q! e  {4 x4 b  Y8 n. }
   ```' Z! ^) Z) ~$ j: A- C$ s; M9 l) q
" z  B/ B& ]1 y
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。! b8 V& h  O/ m

4 R% X9 o7 t* x% U- R, K3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:" Q; O, T  k. K( J# O
2 u: y2 ]- @  J$ I9 z6 n
   ```
8 \- ~6 H* B7 o9 ?$ G& Y/ |   <?php
  C" P: G, c0 w; {, |5 t! w   $site_wide_notice_title = get_option('site_wide_notice_title');5 t$ U  u9 M8 v5 j9 Z! f
   $site_wide_notice_content = get_option('site_wide_notice_content');
- C$ _/ F8 U7 t/ ]- [/ U5 Y7 h   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
8 e0 u, G/ ]8 @& J  t) ]5 Y1 N! B7 e1 s       echo '<div class="site-wide-notice">';
! o% {* y: v" F6 Z. L* f1 i; P! t       if (!empty($site_wide_notice_title)) {
, q1 Q  {7 N% f           echo '<h3>'.$site_wide_notice_title.'</h3>';, }/ V9 f& }+ U
       }( e' r, |- ?2 h4 U+ g
       if (!empty($site_wide_notice_content)) {
* R; U: k1 X, U+ l$ O, H2 X) r           echo '<p>'.$site_wide_notice_content.'</p>';
  V! J3 A+ `# s( A       }- x8 a) W0 F& V8 c. F& t
       echo '</div>';' q4 g5 D# J6 O$ _* E, Y, B
   }
. Z8 n$ G  o% }  ~3 f( A   ?>
7 W# ~( J' l8 n. `   ```
" G# _) C$ Y0 u2 Y( ~) q3 e9 x4 I4 e1 v' u3 z4 _6 }! D3 K
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
1 i6 m, E& X( D5 o, W  V
" h# Y- l8 U" u5 }- a, c0 S请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
6 ?  ?7 T+ f, [+ l1 [. P9 E9 u" Q8 m
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:; k* l: H; v* h+ q) V% |0 _; {

. `) C6 K& h6 Q. O% u, y1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:' o4 u- L) a% a
3 s1 f. s8 d: O4 o$ a6 `; k
```7 l' a3 O# ]) F7 A9 t- j
function create_custom_post_type() {  k; m, J: P7 W- l( E8 p' k) {' i  ~
    $args = array(
* o* F/ i. |2 W* D$ ?) }- j        'labels' => array(
, W- f2 F9 D. m- o# r6 z' z0 Z            'name' => '公告',) ?% Y- `/ _. B2 ~0 f
            'singular_name' => '公告'
# S) ~0 T0 _1 J        ),
- D% `! V2 z, R* M5 x        'public' => true,7 ]* O5 s$ G& y0 N3 v
        'has_archive' => true,. J" t) M- A8 a. |( U( s
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),% I* [+ G$ ^5 T' a  ?7 l  {& M
        'taxonomies' => array('category', 'post_tag'),( y& z- x. j* y! E
        'menu_icon' => 'dashicons-megaphone',/ c. u: T) H% q% y  J3 m
        'menu_position' => 5,6 R9 D. n  |1 k/ y' Q; e5 n
        'rewrite' => array('slug' => 'site-wide-notices'), w% A* ]- v+ w/ W
    );& O4 R- h8 J  }/ e, H9 u
    register_post_type('site-wide-notices', $args);7 \0 `5 P1 C! i4 ]7 w! ^
}
3 v4 X  \& ~/ b  y+ zadd_action('init', 'create_custom_post_type');! C# J3 L: e2 z
```+ a& Z2 g& P* H: o, \! o% j

( o! c; r  Y7 Y+ O在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
# l% X$ n: s- W! ?' F- R$ t' k$ s7 L. D* W) \( S
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
3 l+ s" `" `8 \# W) b  }1 X8 R; R: k8 ^8 R7 o
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
8 A: P7 ^) ?  D/ R$ ^3 O) a1 E# S" g0 e0 `8 b. Q  ]1 q
```
4 R* O( z; D& z( k( u$args = array(
2 Y/ g- a/ J* W3 d0 f# c8 i    'posts_per_page' => 3, // 显示的公告数量3 N5 v6 w  A9 ~0 p+ z
    'post_type' => 'site-wide-notices', // 公告文章类型# z! n7 J7 [# A4 \4 o6 t9 X
    'post_status' => 'publish', // 公告状态. |  }: [' O+ S/ w4 h8 ?
    'order' => 'DESC' // 排序方式
  Z; k( N# \+ v; m! E);
6 u: ]7 z2 b% @% S$ ^
6 f7 F: H2 Z7 `# v9 E' f2 |$notices = new WP_Query($args);; X- `$ y7 y; Q, U0 z( |$ r
if ($notices->have_posts()) :% |5 }4 u- R" G" G
    while ($notices->have_posts()) : $notices->the_post(); ?>
  e' A$ s% j6 G/ I        <div class="notice">; ]6 v9 _1 o' v- |) B3 X
            <h3><?php the_title(); ?></h3>
) O/ T0 t) n) O  f5 j% V; J            <div class="notice-content"><?php the_content(); ?></div>
, A7 r+ i" L4 w5 V! p        </div>  y6 G( U# O6 `
    <?php endwhile;# I9 \( r- l% |' M; N
else :
0 G! K  D7 V5 S/ E; g6 N0 E    echo "暂无公告";
8 E) X  V: D, f. ]endif;  @1 i) u2 h; ~7 ?! F: a0 ?
wp_reset_query();: m5 z# V' t  Q. q% A$ r
```
% x# B8 n* A5 T  Y9 h+ v* _: b: X* ]5 l7 A/ ]+ b2 S
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
5 ~# I& k& P. _3 Z/ X% c# ^( p: o% ?' d
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?, c( w6 Q# s6 |  O7 W2 }3 T

' T5 G) W2 c+ }0 g如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。" n% F! Y" C& q: |% ?1 a$ Z1 v. B
/ R4 G# ]8 P# G. S8 e" P# r
以下是创建自定义插件的步骤:* @1 T$ p9 |+ G, t) c- Q* D- d, O

* U# y" ^# Z! @" f: d1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
( a3 G  h% N4 g  d4 a( h" J- Y8 u4 }$ o4 T! j: R6 T, R
   ```
$ B5 u% s3 i4 v# ?7 `% j   <?php$ C7 g8 u! d; D
   /*
4 D! f$ b: b! G& U  |% i# W! o   Plugin Name: Site Wide Notices Plugin
6 R. G& r8 k8 U: X$ |( Y8 o! n   Description: Adds a new custom post type for site-wide notices." ]8 m$ k. b0 \
   Version: 1.0
+ I! c; c7 Q' x, g   Author: Your Name
: D  p( C. J9 }' W& l/ ?   Author URI: http://example.com
2 |, n( l0 w" p- u- J# a   */
# S0 S' ?" L" n; g" F, F4 }0 Y' u1 l: E
   // Add plugin code here...9 h% f0 z* A( U/ @
   ```/ K3 i8 s" z6 c0 I7 B4 j
0 s* j, P: s8 P
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。2 Z) p& K/ l: t5 K- E& w4 R
) a3 k$ A0 ~8 H3 ^( L9 C
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:: |: Z) b  m; g# L9 E- u9 T
! W; O& q6 V- g  n/ |9 f+ `. N% I2 W
   ```
. d" z" f1 r1 X1 w, ]3 E$ W, l% ]   add_action('init', 'create_custom_post_type');
- y$ y/ l. @2 e& G- f   function create_custom_post_type() {
/ \) W- @  {/ _2 c4 l/ X0 L( J      $labels = array(
; _/ t5 H- \! }# w; k          'name' => 'Site Wide Notices',
: D2 F. F0 p% x6 Z          'singular_name' => 'Site Wide Notice',* ?+ L/ |. M1 c$ d
          'add_new' => 'Add New',& w5 h7 A5 ?% i. ^
          'add_new_item' => 'Add New Site Wide Notice',/ v5 `" C) Y3 ~/ n
          'edit_item' => 'Edit Site Wide Notice',, ?; ?5 E+ g4 H8 R
          'new_item' => 'New Site Wide Notice',
0 j: D8 i+ e) N5 K% F1 h: J          'view_item' => 'View Site Wide Notice',( |+ b: D/ W, a1 [
          'search_items' => 'Search Site Wide Notices',6 C: t9 d- G7 t0 [5 ?0 g$ F
          'not_found' => 'No site-wide notices found',, [/ c. h! |2 j$ `; E" b, d
          'not_found_in_trash' => 'No site-wide notices found in trash'
1 x  r, R* x8 p      );8 _6 d" {3 V) S

" r2 `) X8 K0 f      $args = array(
- Z! D  N; }( S3 ?% T' Q( ^          'labels' => $labels,! `$ D: @# m- P
          'public' => true,7 F* l8 z  f6 L2 {0 {
          'has_archive' => true,# d" t6 }* d; `# S; c- r7 j: V
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),: q2 j0 s2 l2 J7 |( d3 v' o4 D9 m. u
          'taxonomies' => array('category', 'post_tag'),& q+ a6 q% C3 A( z0 H8 R
          'menu_icon' => 'dashicons-megaphone',7 r' l# A7 u7 F  Q) U. a
          'menu_position' => 5,
7 E4 ^. G5 Q2 m8 X% M8 ~; o- U          'rewrite' => array('slug' => 'site-wide-notices')
" n3 h0 f  u' F% h: Z4 E/ a      );
7 s5 C; R1 j2 I' _( |  {7 v3 ^
7 V7 T. p+ |" F2 B! J) o7 ^      register_post_type('site-wide-notices', $args);
7 |3 U+ o+ |* Y7 j$ W   }
; _" X  M4 l: j" _0 }   ```
. s0 L8 {% y- X; b8 W, H; l' ?4 e
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。+ P# ?! s8 Q2 _. E. G2 S1 ^! y. e9 P
& n% B8 D. n* o% y
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
. _1 J8 u4 J9 K3 N  e: O6 Z" A9 u' ^# F8 G* A$ N
   ```1 k: }8 _0 q0 m; m: I
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
! r" k: J) [$ D0 v8 ?0 T+ j& L   function add_site_wide_notices_boxes() {% u9 h& A- b( m
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
( F4 W( X4 p6 L3 w/ X; ]6 i   }2 Q6 m+ }+ \0 l3 d" m

; u8 H# t* J5 G2 u! H; n3 X   function notice_details_meta_box($post) {7 z- s8 E- ^! d* }& _
      wp_nonce_field(basename(__FILE__), 'notices_nonce');, h0 K# z* ]1 S) c) Q
      $notice_title = get_post_meta($post->ID, 'notice_title', true);: \" r* [4 G6 v# r# B
      $notice_content = get_post_meta($post->ID, 'notice_content', true);# z* f, N6 t+ M$ b8 a$ x7 H$ u, g, p7 \
      ?>
% p* t  G. v0 Y! t, J! [      <p>
7 S9 G# n' B1 l, U# C          <label for="notice-title">Notice Title</label><br>
2 X+ }7 _, E8 m; I2 q          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
  p4 J8 _# ?: E( h      </p>
1 h  |8 ~2 B( X      <p>$ l  q# A. }' T) v
          <label for="notice-content">Notice Content</label><br>$ c2 |/ |, j' B5 W
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
) u/ l4 z, a; j2 \1 `. s; l4 X      </p>3 Y' L7 y) y% s0 p1 g7 `) g, ?# F
      <?php' L$ V! s! a" ?  Z$ B, H
   }( o& c/ h  w0 V6 Z  n, s  N

2 F0 ~3 f/ U' |( C( X   add_action('save_post', 'save_site_wide_notice_meta_box');
1 M' o  h8 t/ B5 c' `2 F1 f   function save_site_wide_notice_meta_box($post_id) {" z2 y* V/ S: a( r! m1 N
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))/ q( X0 H' M: n9 z8 Y1 i+ S$ ^0 L( x6 {
         return;
0 u& ]; A+ S& q2 T. W  f" p4 g      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)6 |' C4 @* A: L, v8 o7 D* a
         return;
3 {3 p# v& i7 l" p: v+ y' k1 k& s9 A$ ]% ?) k- ~
      if (isset($_POST['notice_title'])) {) p9 X( \- i1 m
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));& L; Q7 B8 n( d4 f. v: n4 Q
      }  ?" u  Q9 N- ?2 H, F9 i1 n
      if (isset($_POST['notice_content'])) {
7 t+ y. @8 Q7 y4 K          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));& {1 T! C- h' `- M/ e  y1 U
      }+ S0 U! F2 l$ r: c6 y- k2 |6 v
   }
& I" c4 z2 S$ t. V" T) E& ]   ```  @& h( d4 x0 A3 q* m/ d3 K

+ T0 r4 c8 C" i' a) g" S" E0 I5 T   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。5 T( j5 y5 [) u: w9 `! U& |

: h! B; a1 w9 ^! Z/ \$ U7 @/ ^, n4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
0 y" T, D: T% V, R% U0 |' R
; |2 R  N8 z5 F* i: L   ```8 L/ a0 e9 R7 A, Z  d  P& g% X
   $args = array(0 C: K% ?: [% H. m
      'post_type' => 'site-wide-notices',
) a3 _5 N9 r9 P, q7 w/ X  _- O      'posts_per_page' => 3,' F5 F  D+ q4 d3 q% x
      'order' => 'DESC',
8 s+ ?4 h9 L& o# A/ A4 F      'orderby' => 'date'
+ P3 g! [( X5 E! ^5 `+ b+ e* k   );5 X. |8 \2 M# j# [0 }, N
   $query = new WP_Query($args);
8 H4 K" W: o& \   if ($query->have_posts()) :/ j" G4 A) `/ `5 W1 n* w- F( _
      while ($query->have_posts()) : $query->the_post(); ?>8 W2 Q( }$ b& u0 ]- F4 E
          <div class="notice">
6 W5 k& v4 {7 O& W1 x              <h3><?php the_title(); ?></h3>5 t6 j- F+ K/ _2 ~
              <div class="notice-content"><?php the_content(); ?></div>
* l/ I4 [% _8 Y* z          </div>  w& T4 \% N2 ~5 L+ P8 ~
      <?php endwhile;- B2 o# O; W8 p$ l7 V0 |3 N
      wp_reset_postdata();' V1 e( C) ~& @
   endif;
3 X$ ~$ t/ x- L" _- O/ O& z4 r$ ^% n! W   ```8 m! W# y# S! i, ^2 H
2 J$ ?4 {; h, V3 @' Z7 a5 u
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 06:29 , Processed in 0.072971 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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