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

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

[复制链接]

334

主题

517

回帖

3396

积分

管理员

积分
3396
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
" {( {  J6 _2 }8 T, I/ m: w# T8 R+ p
! k4 ]$ I; q( a; t6 a2 V1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。- {: j. u* D: j# O  @/ _
! n- ?# V. V$ o0 j
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。: F" s% s0 a0 z
. |% [% k2 q$ M  K+ G+ t9 ?, B
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。# J! d& u7 Y' B$ @  H
- b# K/ p7 H' X* Z3 t
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。9 K! b1 J: w: e3 K6 c4 c, K

# o3 n' @+ l/ e& s- j7 _注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

334

主题

517

回帖

3396

积分

管理员

积分
3396
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?* v0 U& _" q/ _: Z1 e5 B/ b
3 W! I3 }6 r( f. W3 `6 I
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
4 H4 m! A  i0 r& t3 z4 p5 ^& b4 e4 H, [9 Q. E4 V
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:, W. D; @! t* a4 |$ U& |
4 N2 x! Q# S: {
   ```
9 n9 Y# Z$ I% j2 P3 ^   add_menu_page(4 l/ c8 _3 ^$ u7 O4 f  X8 L
       '全站公告',
. a; t8 S  _, W& {3 n0 r       '全站公告',
5 j) F/ p. B) o0 ]; c: f" L       'manage_options', //需要的用户权限
, a7 l( N1 j+ t8 _- |       'site-wide-notice', //后台页面的 slug
( G( N7 ?- q4 D7 ^1 v# v       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
2 e* @' m' o: h5 N       'dashicons-megaphone', //用于显示在菜单中的图标
% I% U8 l; |; D' X% l- U  s       30 //菜单项的位置
# M0 j& N3 e+ q% z5 J! h   );* S* f2 W. x  I, ]- ^! }) E
   ```
( J# v! T) f  N$ i
$ @' o5 i2 P8 z+ o! ]. o   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
1 [0 E( Q& h. f% g+ x
7 O7 v, Z; N" p, B$ `* d% Q2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:3 |' O5 ]! h5 _; k+ [* h

; z/ O) t- L# U1 w8 g   ```
8 z: |, s0 Q# w   function render_site_wide_notice_page() {
7 _2 }& T% T( S* _      // 渲染后台页面内容
, V: ^: H3 X2 e2 j! F6 u: k      echo '<div class="wrap">
) @# q- ^' }3 B: n4 Q) l          <h2>全站公告</h2>
! W4 K& U  X$ _* E! d          <form method="post" action="">, d( T9 s8 ^9 G) [& C  D
              <label for="title">公告标题:</label>
* I/ z5 m# p  k' O! _2 T' f/ r! \7 z$ T              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>/ M2 |# _( y7 t2 s" u* m
              <label for="content">公告内容:</label>! w8 a) m( ~* M+ f, \  g$ u
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
3 u5 h$ q+ b3 |- W! |; _6 p              <input type="submit" name="submit" value="保存设置">( K" t% D) _  a8 u. O
          </form>. s$ \) b" o3 M, ~5 B
      </div>';
( \7 o9 d9 q  q+ V3 K8 |5 c" k6 P3 j' A: ~; R1 @! w
      // 处理表单数据
9 P2 ]' d7 `. R$ x4 t, n      if (isset($_POST['submit'])) {
/ _" w/ Q2 n) a& G7 Q          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));. i) u1 k: O3 d7 z9 s, G
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
& @6 j0 A7 `% S1 l+ H      }& p/ \1 ^# ^& f/ G9 s
   }
; a0 U- D5 \: _8 J' ]   ```
9 A+ _0 w, Q0 x1 Z+ S9 E8 ?$ j% B; c- M: p: i8 {; T
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。0 S9 {/ g1 a6 K3 R  f# [

- @' ]8 C  u! j; L8 t3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:8 J. z' l+ h9 x/ D6 M+ \8 W# N

9 E) N6 o8 G- y# F% G1 r   ```
1 Y5 ~! d  X& _' W0 [+ }7 n0 A8 a   <?php
' H1 d6 c! Y5 o, S6 T" L" f' ]   $site_wide_notice_title = get_option('site_wide_notice_title');
7 p9 Q* w( h& t; Y" P   $site_wide_notice_content = get_option('site_wide_notice_content');
1 P9 M3 c4 w/ C$ z4 ?   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {0 g( E1 R& D' Z# c- l, {
       echo '<div class="site-wide-notice">';
. G8 Q- Q! Q% ^% i       if (!empty($site_wide_notice_title)) {+ i# u- z) e- f+ e8 k1 x7 [
           echo '<h3>'.$site_wide_notice_title.'</h3>';
* ?/ r  F: r5 r4 s, I       }
) n5 |4 n" b+ M9 c1 T7 z       if (!empty($site_wide_notice_content)) {- {( f2 s$ y; i1 O" O
           echo '<p>'.$site_wide_notice_content.'</p>';
8 S& j6 @/ o' W# ]       }
5 }5 Q1 }; V. f$ P0 [       echo '</div>';
. c- i7 r9 f2 E   }: E2 Y( _) O9 }9 l6 L; [4 n, n
   ?>9 M& t' A3 L; ]4 z
   ```
4 H; W/ g# |* x+ Z: a( J1 Q1 a9 g) ~1 J: M0 |5 W; ~/ v5 ^
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。& ~% `9 M- u: H, [( H4 I* f
  T; H; V; J# y
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

334

主题

517

回帖

3396

积分

管理员

积分
3396
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?7 X1 v) I) w/ t0 [7 Q7 w

, H6 R( J9 d3 X5 _7 G( {, I) V3 Z您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:+ l: U% B! F: L8 ]2 [
0 @: T1 k- k, W& r. m  f
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
+ C1 G5 h# x, k6 H4 x
( k2 x0 I; b7 W```
3 I- Z, I/ G" r) _. s* efunction create_custom_post_type() {! U8 @  I1 t: y
    $args = array(: D6 G4 F% R3 g! R! S$ ]
        'labels' => array(* N# z1 {; k" j+ e" H2 `' i
            'name' => '公告',1 ~7 q1 L: O- U) H* a
            'singular_name' => '公告'
. k- X1 s: U: L. ^2 K1 q6 _        ),
& T+ J: g" l* y        'public' => true,$ f( ]/ A9 R+ E# A9 s
        'has_archive' => true,! x" f: w. l4 P5 E. D. o- |
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),- A* G6 ?) Y7 u$ D: o+ u$ I
        'taxonomies' => array('category', 'post_tag'),
# x2 f% T8 p- [3 z- c) y( x        'menu_icon' => 'dashicons-megaphone',$ q  I5 ~% _0 F4 S' ?3 ]; \! e
        'menu_position' => 5,
# R. p+ C5 q) A! z        'rewrite' => array('slug' => 'site-wide-notices')' B. h( Z* u3 G9 O- j( g: _
    );
$ f* a/ b4 j/ c! Q/ |    register_post_type('site-wide-notices', $args);! _. ^" J- s/ W9 e( v* F
}
+ M0 j3 z0 H# H% }add_action('init', 'create_custom_post_type');) h' K% G# ]" F
```6 I9 b3 x- [+ b' ]9 ^' `2 F

& h* r. f4 ?; W在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。3 q% M1 n! L+ D$ l5 {  v4 W( l3 z
6 i5 k1 d& o4 @' H0 T) n
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。1 v  @' e, f3 W  S3 Q
2 Z& D; V% k* E5 K% ?
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
6 e# ^, X7 `2 h, W! |7 B; i, g& j7 o8 ?* B# @/ R& f9 x
```
1 O6 I% T: i$ s: O6 q3 V$args = array(2 q& Q* C. x$ j$ C) l  W% U/ Y
    'posts_per_page' => 3, // 显示的公告数量. P9 d8 X* I: B* ?' M0 [  A0 y
    'post_type' => 'site-wide-notices', // 公告文章类型
/ k1 q* Q( ~9 Y% j6 v! c    'post_status' => 'publish', // 公告状态
  s$ C$ S" w7 I9 t$ A/ a7 F! T8 H    'order' => 'DESC' // 排序方式
  b" l4 u7 t4 K4 F7 @7 c; K, q) K);
" e# Q  ~  g7 t' y% a: F% Q1 Q) E
) @5 A$ U$ {* j$notices = new WP_Query($args);6 c8 {! m$ h6 M, v. d7 v! P+ K
if ($notices->have_posts()) :
" \9 M3 W9 V; |/ B2 N/ ^1 S+ G    while ($notices->have_posts()) : $notices->the_post(); ?>
7 d5 p! v( y( R6 S        <div class="notice">7 k' b) J( ]8 T) v2 e
            <h3><?php the_title(); ?></h3>
! O( Q* D* N9 W8 t8 A/ ]            <div class="notice-content"><?php the_content(); ?></div>
& k9 H) M& e* z& {8 P: @        </div>; J0 _; _3 _! W
    <?php endwhile;7 k) p$ z) I% k/ Q6 w
else :
1 c+ r9 t1 Y9 U5 Q: w! x6 K5 _5 Q    echo "暂无公告";
' ^( r. l% u6 w) _endif;
, Y% e/ r/ l4 g5 E1 jwp_reset_query();
4 I$ Z5 q9 u) F0 h: f! i' z```
  R4 n9 U0 L+ A9 W6 K# h5 K
3 y7 l  y5 b) z7 F7 z这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。( o0 Q! r, V5 {+ I; H

) i1 m1 Z1 W/ J% s/ J/ D以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

334

主题

517

回帖

3396

积分

管理员

积分
3396
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
" I5 y9 B) s3 V" Q" y/ C) _+ W; U. t* w+ r- j, R
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。0 t; o! h1 z, ~+ K) b! V3 v) Q4 s

& g6 G4 }4 o5 C* C) }( h7 K以下是创建自定义插件的步骤:
3 _. B, M0 G+ v3 k, }$ _, \1 [
. W" b, o/ f5 S2 U/ C1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
  Z+ R: {0 E1 ~' H; v$ _& A5 m# P2 F* R+ i) d/ _' D; g
   ```9 h/ p0 l0 R* j+ }6 @. H' i& J
   <?php
1 P  u+ S$ i! L% u7 ?8 F5 O   /*
: z/ Q8 h. Q+ \+ V   Plugin Name: Site Wide Notices Plugin
: ~4 H7 H+ c2 y' i   Description: Adds a new custom post type for site-wide notices.
! H+ {& Q* v+ @+ {/ _   Version: 1.0. ~1 I4 t7 \; N
   Author: Your Name! H' Y6 X( D6 P1 f# m
   Author URI: http://example.com% {8 p4 O  [0 X
   */
) {: @5 u4 E  M; ^0 V# f3 t* x2 u  I) a. S, G
   // Add plugin code here..." n( N9 v) M/ b: z" c
   ```
" U' F; I5 x' U8 Z! d. P0 ^+ q5 `( T" w! P+ s; I
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。) k1 n9 @! B4 q7 X2 }

- T7 r8 B6 P/ G4 \# M; y+ K* V: J2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
( M  D5 P. w  S; W3 @4 K: U9 X2 e+ d; \$ J3 g
   ```
, F4 e( _' h' i3 `1 T* H5 w   add_action('init', 'create_custom_post_type');
8 N- X' k1 r9 \* K   function create_custom_post_type() {2 ]$ Q# e4 T7 _3 z3 T$ S, n# a/ N5 h  n
      $labels = array(
; q4 S$ ^8 j) d+ Q          'name' => 'Site Wide Notices',
5 _, c7 Y6 r' ]6 I0 t" k3 B9 l# G          'singular_name' => 'Site Wide Notice',
: A) |# H) O. J3 X2 R- B0 D          'add_new' => 'Add New',
5 |$ ?$ Q  d5 z9 c. O( [' i          'add_new_item' => 'Add New Site Wide Notice',0 U8 U2 e8 R# {
          'edit_item' => 'Edit Site Wide Notice',
) Z# F3 }4 o6 O; F          'new_item' => 'New Site Wide Notice',) r. Z3 v+ L6 E' X% d
          'view_item' => 'View Site Wide Notice',7 c7 j' Y4 i0 }& m4 g( m/ ^
          'search_items' => 'Search Site Wide Notices',
1 H# F) H/ w7 U6 X) }          'not_found' => 'No site-wide notices found',, _) h. R( {% @# E
          'not_found_in_trash' => 'No site-wide notices found in trash'# p" Z1 J, {! q1 L9 j) _+ h1 b1 ^
      );
/ \2 H6 J; @) G
6 G1 R" L  A9 W: a; a; ]      $args = array(
" s! T$ I6 V- s7 \          'labels' => $labels,* @) g2 K9 h$ f. T6 T# d
          'public' => true,8 j7 ^) t6 N$ d) C/ N. _. N
          'has_archive' => true,/ }5 ?8 G7 D5 o/ k' [& z% a: Z' O7 R
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
. M9 w1 J* @1 o2 q" g          'taxonomies' => array('category', 'post_tag'),; ?, Y  G# O( b& O& p+ c
          'menu_icon' => 'dashicons-megaphone',& G1 s! W6 ?' k+ k- g0 D! J3 ^
          'menu_position' => 5,0 e# A1 q3 I7 A8 f
          'rewrite' => array('slug' => 'site-wide-notices')
1 v/ A2 F  {9 j3 w% F# X" x6 ]  [      );# ?! N9 p3 v4 p  W1 f( E
4 }+ m6 L/ L: P; U2 `" P! B
      register_post_type('site-wide-notices', $args);
1 G: E; }! I0 ~7 Y   }
" x6 D: y) [' O0 o  H5 U% H0 \   ```) M( M# u: B" E1 }% \4 e
2 \' F( R: ?9 c, X( |! j1 Q6 i0 D3 G' s
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。) r- Z% r3 A6 T: r" G7 _  A  @0 L$ _
- h3 C( A# ^' h& V- `! M4 x
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
( Q2 S% P9 J3 S: Z& {
' X' _. a) B  q3 a   ```
& D- u7 h# `" L4 d1 @8 x   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');4 |$ x7 @1 U/ q" k
   function add_site_wide_notices_boxes() {' f+ l: r! X+ R  U6 t/ r5 b$ v
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
3 Q  {! a1 j: g( t( p   }
" l* a: D7 _6 U3 i. ^
$ e) f& y  `0 e9 s8 r& S   function notice_details_meta_box($post) {
# _9 M/ I5 s8 d( U$ _7 m: f      wp_nonce_field(basename(__FILE__), 'notices_nonce');! i8 A* \6 b& n. u4 d$ W
      $notice_title = get_post_meta($post->ID, 'notice_title', true);6 n* M' g8 R1 Q. d) f
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
. p: d* q% H& I1 ]% z0 f: j  w      ?>6 M* k' Y& U1 v2 R5 S3 d5 i0 n  k
      <p>
5 e5 _3 s$ Q. V          <label for="notice-title">Notice Title</label><br>. r; Q) @' H0 M
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">+ M7 X( h0 c4 ~( x' x
      </p>
" Z, O- m0 u- x: _: ~5 K" ~$ @      <p>
2 W8 Q' M' A8 p+ u- y% n          <label for="notice-content">Notice Content</label><br>) P% I3 o! P/ E) g
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>- w3 n% C! H$ U% ?# A
      </p>
  j3 u! s: {! \7 d# n4 I) f7 X' M      <?php
' @. D1 `! Z& T# ]8 R  C# ^   }
1 l1 ~% w' c/ D4 K6 u6 K" S5 P4 p7 e' a! `0 |
   add_action('save_post', 'save_site_wide_notice_meta_box');
' [' Y6 E  U! w' C( N   function save_site_wide_notice_meta_box($post_id) {- m0 p. ~, ~& b" C. c: B* v
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
# r3 t4 J( G8 O5 m8 A/ z0 [. p         return;) U& L1 T0 u$ G% e6 O, x
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
( h/ G! [! |+ r         return;$ T* P# w/ R& [' R" ?

$ l/ c: j  f  F0 ~  T: D2 d      if (isset($_POST['notice_title'])) {. r! v. }0 f( \8 ^
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
8 f) t' K+ V# ?# q      }
  K5 m" s6 B6 F3 l0 D2 t- M  \      if (isset($_POST['notice_content'])) {; B  C: L1 Z, B) C) C3 ]+ j
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));9 c, L1 K0 A0 T# O2 x! e
      }
  r! ~" j( ?& _. u1 Y: U   }8 @* d+ [, Z# k! ]- _! B) d
   ```8 M$ B  S+ S7 j) k, ]& S% i% b
7 t) Z+ \5 v! H
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
0 }* m" L% u- K# z
( V1 v( c! _( F' b  z: [" U4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
+ Q6 P4 m; u, i4 G9 x* M* n; ^$ I2 {, G# y" R3 O
   ```
6 d5 U; F. Z; Q  w   $args = array($ w& u. g5 N' V$ R
      'post_type' => 'site-wide-notices',! Q1 K. \. _% C6 Y$ @
      'posts_per_page' => 3,; n7 k! ^' Z% ?7 A) E- N
      'order' => 'DESC',- f7 H% o. X6 {
      'orderby' => 'date'. n6 u4 a" W" V7 P
   );
& T/ Z( O6 L+ b8 U( h  Q   $query = new WP_Query($args);/ m0 U  o; w0 p1 _4 L7 d
   if ($query->have_posts()) :6 t# G2 h' J& T; M7 ~' p8 g
      while ($query->have_posts()) : $query->the_post(); ?>+ W/ e* u1 ?& J. f5 n- D* P+ |
          <div class="notice">
' K; s: R' A, S0 l) U- M, s              <h3><?php the_title(); ?></h3>! L: J) {' d# m# \6 y  h
              <div class="notice-content"><?php the_content(); ?></div>) `. ^  q4 N/ U# Z; Q' Z
          </div>, v( \5 o- L/ I
      <?php endwhile;
" s% B/ @& V, Q/ d      wp_reset_postdata();% P# }1 K1 M5 o( h
   endif;* C6 G: Q% I1 u, }) l
   ```% V8 t& S( S9 \5 ^

& a8 |$ a/ ^4 W8 x( t: ~, ^) V0 c   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 20:51 , Processed in 0.085196 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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