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

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

[复制链接]

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
* j) f; F- C' l' A  r5 b
+ U0 z9 Z4 I- N1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。/ x3 |0 \8 i# ?- d

) y6 o0 [# w+ Y6 z7 g7 @" Q- x2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
% B2 Z$ q' H. y! G7 B3 A3 |8 L7 Z; X4 p8 C8 A7 G
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
- E, Y# ^/ }2 D7 N& ^" Y
/ {2 r3 [5 A; x9 ?& o. q4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。& E6 |0 _! q0 b1 [, {

) R9 j. F1 b: U5 U% _; b注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
& X$ U- x8 U+ [* W( `
9 _' b1 v5 t( F9 V! o如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
/ A& V$ d& _. X) q+ R9 m
9 v' X* ~  M& b& A4 z' V1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:3 r$ I2 y* z1 h* t

& s& t0 j* i2 K: M% i1 M) G2 W* T   ```  ]( y% g; Y2 l# r1 U9 e+ U) o
   add_menu_page(
. q# Z9 C. n% I5 m2 r4 E2 l       '全站公告',
% L1 e! p4 J5 Q2 j4 _       '全站公告',
, G/ m% m: k9 H# e       'manage_options', //需要的用户权限; D8 f; Z1 e" a2 [( Z4 |( d
       'site-wide-notice', //后台页面的 slug2 u/ Q6 |0 {( Y/ x# W2 T
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数# R, p9 R9 W2 }' R- _
       'dashicons-megaphone', //用于显示在菜单中的图标
: a. f4 M  Y, m! C) T" `) c2 o       30 //菜单项的位置
; a3 [# o7 T, a' C, c% f  O   );; o; m% ^# K' L, m% J* r% q
   ```5 A7 I8 E; Q9 t1 Z3 C5 H
8 ~# r6 F. m$ T" v; X
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。& H. g# i1 [9 z/ M: i

5 i' y9 o' s6 D6 I/ W- `2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
+ F& U+ Z& v+ E. v- L  L- y7 J9 N5 R; n: J+ Z9 ]) Y
   ```3 o4 N1 V" s2 U& N& W( N
   function render_site_wide_notice_page() {+ J: e1 `2 L0 J1 y1 ]+ ~2 o
      // 渲染后台页面内容0 Q  w4 S7 B5 C( M
      echo '<div class="wrap">
7 h* p: L; v, _7 h2 K9 o7 F          <h2>全站公告</h2>$ d- S8 X; Z* w6 J/ h# L
          <form method="post" action="">% s# N' t# G) k, m- X* W
              <label for="title">公告标题:</label>
- [& x" `% b0 t: w$ ?- d* j              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>. @. y/ e* \9 G* B
              <label for="content">公告内容:</label>
% V. W* K+ d, Z6 w              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>' F7 A6 A" a; P. M3 n
              <input type="submit" name="submit" value="保存设置">
( T8 [6 z! m3 I, @8 r: F          </form>, z6 E0 y6 U2 l% p% v$ J3 N
      </div>';6 b: W2 D& i& q1 {( q

/ r2 X8 p  W# J1 r& l  ]' c5 H      // 处理表单数据
/ ]# Z5 U: M. [; r( `' v7 o6 ~      if (isset($_POST['submit'])) {
* o9 r* q- D4 j% k4 r/ p: [          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
( V! ~+ P$ E, A/ C7 Z          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
1 m1 O4 p- e" C$ s  a      }4 b6 Y9 U/ |( {* o2 }
   }. _8 G; k6 f- \5 w0 J' @9 n3 i
   ```
) S. f: a. K# ~( o$ j, T7 }, u$ q! w7 W1 g" I( q
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
; U5 P7 R; P6 Z! R8 q4 i3 T- ]- m* z1 \: ]2 l& E6 w+ l$ U
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:1 C" k" i) u1 a& B+ y& [/ T
8 p/ W  c# R+ F7 }9 Z+ p
   ```" R+ i# ?9 w% e  q7 j0 A
   <?php  o) c, S5 M# u( W2 u
   $site_wide_notice_title = get_option('site_wide_notice_title');
- M: v3 Y( j( z" {, b4 B   $site_wide_notice_content = get_option('site_wide_notice_content');+ z8 [( x% x+ t0 [6 B1 ^
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {5 P7 _1 t; |: a
       echo '<div class="site-wide-notice">';
. h1 P+ q; z' |       if (!empty($site_wide_notice_title)) {  k+ a, O/ R1 I7 n( H9 k
           echo '<h3>'.$site_wide_notice_title.'</h3>';- N, z9 |6 W, o  M6 M: P+ |4 j
       }
% a' _: O6 ^& ?' x/ B       if (!empty($site_wide_notice_content)) {
) n1 D" X& X; L           echo '<p>'.$site_wide_notice_content.'</p>';
: `9 X/ P& y# r, _       }% K3 r/ C8 ]" |7 u2 H+ f
       echo '</div>';
. K7 G& g2 ~, ?+ ]: S   }; `' Z( W" X8 P! `1 N
   ?>7 r# ~+ b9 }2 {! e
   ```
' ~  D5 {* I% P4 V: W
& T6 A  b% X4 q5 i& y' X# ?  i   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
5 r8 E5 Y$ N9 b* e/ y7 g; U
& R5 U/ m7 g; Z; l' o( }/ y请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?  B) H, i' q$ e9 v8 @4 }5 q

" `5 c9 _2 g- W/ F: ^; I您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:, S4 b. S; }- l% c$ o3 @
' p( A8 v2 b1 `1 p% Z
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:) G* `& ]4 B1 n, f3 f- \, F# ^# L
. T# K2 ?3 T4 m; F" a; Y1 \
```
, N/ R& }8 f# \3 V7 e# efunction create_custom_post_type() {- a! o+ m2 r3 o
    $args = array(
+ n# w1 H, T; t. P1 x* N0 E/ R  _        'labels' => array(
5 g1 F- H! d. c- A+ A6 r6 S            'name' => '公告',
, s" O! W! E! d6 t& z            'singular_name' => '公告'
( y0 t( I& ~3 E5 C% p        ),+ v8 y+ C& X) A: A" g" N; r( }- m
        'public' => true,
! X# c8 K# b; h& v        'has_archive' => true,
8 g' X. O- Q8 B+ u        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
- r6 q5 R+ G# f  O$ W+ [+ e5 a        'taxonomies' => array('category', 'post_tag'),
" L6 s3 D3 ^4 [        'menu_icon' => 'dashicons-megaphone',/ f2 I' o, x& x
        'menu_position' => 5,
+ I# f4 V3 g+ S        'rewrite' => array('slug' => 'site-wide-notices')8 U. |5 J( v* ~1 L6 ~
    );8 W+ D; n0 w" s5 c
    register_post_type('site-wide-notices', $args);
5 z5 r, t6 B2 H. x& Y( w) F! L}+ W" L8 J7 b- V6 }
add_action('init', 'create_custom_post_type');& s: l9 s" D/ c8 [7 I
```  d/ h  {/ `: G) O; O% D

- r: K+ ~& m/ e3 K5 c1 h& n: L* j在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
/ Y) P6 j; b- M6 d3 }# P; A9 d1 Z% {6 ^8 X: @( f5 y0 Y
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。9 F! |8 s5 b: y4 R5 M

; x7 _' P3 z# u! m" q3 i3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:7 h2 X! g6 i& y+ W

2 K# c% k( x/ U# m6 @```
' ~" Z; U% v; f0 u( \0 i3 A$args = array(/ W- t: q3 Z9 G
    'posts_per_page' => 3, // 显示的公告数量
1 z0 r$ `; T; e6 w1 v    'post_type' => 'site-wide-notices', // 公告文章类型
' I& @( t5 f3 |    'post_status' => 'publish', // 公告状态+ ]1 I$ r. l2 h* ^' j2 z
    'order' => 'DESC' // 排序方式
! V& K/ {7 |. O! @# W% X);( z; f% l4 D) l: G5 X" `
9 L( a0 V) Q& T+ k& Q4 R9 }4 L1 i) ]
$notices = new WP_Query($args);' n4 p! s: J! S
if ($notices->have_posts()) :4 l* b4 A: I8 @$ s" E
    while ($notices->have_posts()) : $notices->the_post(); ?>0 Z5 k4 y  x  \
        <div class="notice">
7 s! x6 Z9 ~9 m- E& F            <h3><?php the_title(); ?></h3>
9 ?* b7 Z3 H, B            <div class="notice-content"><?php the_content(); ?></div>2 ?: e, ^. d7 V$ P7 \
        </div>9 b+ ]2 ~: `' W) n2 p
    <?php endwhile;! _9 ?( Y7 D& Q+ B( U* q
else :+ m! U# h) p$ p% }5 Z
    echo "暂无公告";
' e# C/ s$ I4 ^endif;  g* s6 M* v2 M% P$ q+ d
wp_reset_query();
% e' {" l& q& n2 ~0 Z- t```
3 h0 t! p  k$ H$ i6 r/ ~. {6 B" E& H: v* n" f. T
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。8 h( E3 O# m0 W+ b/ H( h" q" ]

; @, d, I# S( q以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
: }4 p8 b2 D0 ~. H5 W6 Q
: I; h, X# d* S6 ]1 K& b7 l; P3 V+ L如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
% U. o' g% b7 Y& t3 w
* Q# q! R1 |' W+ z以下是创建自定义插件的步骤:& D# ~/ x3 k5 x5 {# O, h5 y
. a8 D) P1 v( I
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
" n2 a# G, n2 D, ~( e& N! `3 S0 ]3 y% f: x- X+ k5 K+ G
   ```
& U7 _! K1 ]7 J- q6 A& i6 F  `! e   <?php, r* |; n! p, r" H
   /*7 p* ?) E8 l- e) x8 S3 h
   Plugin Name: Site Wide Notices Plugin8 A! i7 P7 g+ `0 s6 z
   Description: Adds a new custom post type for site-wide notices.% ^) F) g$ u, H0 M1 }
   Version: 1.0
7 T7 v6 B: ?9 m: n$ |7 p0 o   Author: Your Name
8 v0 K$ E' R/ r, s% \$ F, `   Author URI: http://example.com
) C1 ]) P. B7 W: ]- @. E   */
" Y  J/ ^$ Y( i  M4 W# C  {! W0 n' D, q3 \+ v+ C  f+ i
   // Add plugin code here...
$ J7 g( l- s& F5 I2 O% Q   ```
/ t$ s+ |9 L1 i) K9 L  [2 n8 L' ?
9 J: a' a. L0 }: N   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
9 W9 r% F  B  ?4 b& a& C
5 X4 `2 w8 y# d' K; U9 J6 O# M( H) j2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
- @# |) U% I- e0 `
1 X/ P# v& h7 S/ \/ l' w% ?   ```
8 n4 \# a( l5 q8 E% _! \( Q   add_action('init', 'create_custom_post_type');
% v4 y4 u+ s+ T2 s# f& ~; p$ y. z   function create_custom_post_type() {" O; }" r. S2 q. f
      $labels = array(
( L( e% b- g* g          'name' => 'Site Wide Notices',
5 N) A$ }1 ~7 M& f1 i* L          'singular_name' => 'Site Wide Notice',6 N) E- J& @; U1 V
          'add_new' => 'Add New',
7 n/ ]: ?" M! `6 m          'add_new_item' => 'Add New Site Wide Notice',
; T* S* b% l3 Y: ^' y5 e' @/ I/ C8 x          'edit_item' => 'Edit Site Wide Notice',
. X7 z8 J$ I  Z! o: E- p5 N          'new_item' => 'New Site Wide Notice',9 c* I/ O5 h; d- z, k4 [3 r
          'view_item' => 'View Site Wide Notice',
  A+ }$ z: ]6 y4 M" A3 r          'search_items' => 'Search Site Wide Notices',4 J5 H/ S9 j/ k* F9 b5 s! L
          'not_found' => 'No site-wide notices found',
6 x4 l+ `1 o& |# w          'not_found_in_trash' => 'No site-wide notices found in trash'
4 [3 T6 v& h* ^- Q; e" Z      );6 Q/ U! x- `! c% b& V% s$ ~: i
. p, l3 Q1 C  s2 w" m- B( t0 I& |
      $args = array(
8 m* e3 {( j; P3 p; ~8 q0 e$ X          'labels' => $labels,
! ]4 x2 X; {1 a7 k) A! v# u0 r          'public' => true,; H; F, c$ @: l$ r+ N
          'has_archive' => true,. ]- `2 D/ w5 A4 D6 z) j
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
+ [" S# }# l$ B4 u9 O! W          'taxonomies' => array('category', 'post_tag'),
1 S- n  K, V4 p- L          'menu_icon' => 'dashicons-megaphone',/ O  I% F) W5 o1 H, ?, j3 R/ U6 K
          'menu_position' => 5,
+ U0 ^- e! U2 w0 y0 b7 s0 O          'rewrite' => array('slug' => 'site-wide-notices')
4 \$ g! ~( l& u/ J6 |# V7 ]      );
% k3 v# G. u! P( J4 o4 p$ I$ ]4 k! |. a. h" ^
      register_post_type('site-wide-notices', $args);$ E- ?/ U, t6 }$ i6 [( v, L& G
   }, q. K. a8 w4 ]) G
   ```; J( T! r, |8 h. @/ D7 E1 @8 k( q( L

5 [/ C9 W; E: Y# \   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。" r( M# V, @7 V! K6 O8 W/ T

1 q) r; H. l  Y3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
4 p- Q: [5 s) Q  @0 L6 m
) c& y& y: K4 Z/ L% A  P   ```
; Y5 W+ E; a* {3 ^: a1 Y% I   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
- }/ q" j9 `; q, k/ S* Q' r   function add_site_wide_notices_boxes() {6 O6 b# g/ L9 z
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');0 V  c1 N, u! n* t" `% W
   }1 Y! X$ J1 y8 k1 M0 |9 E; \
, E- v& Z6 ~0 }# b
   function notice_details_meta_box($post) {- c' M" N% d3 r. j0 ?# U
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
/ U- O" g/ F# n2 ~% m      $notice_title = get_post_meta($post->ID, 'notice_title', true);9 L. W. H% R0 Q
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
4 h) T4 ^" r5 u      ?>
- U$ }' \) g: [  K1 O2 Z0 Z: g      <p>
$ r5 ^. s0 L8 i, v; R          <label for="notice-title">Notice Title</label><br>
2 g& @3 _, L' k1 \          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
, G! i: P8 V% d, T" i      </p>* k: T% L! m' m8 a( m/ J' m7 v6 B
      <p>2 t+ g/ f- X2 A- }' n: }1 F
          <label for="notice-content">Notice Content</label><br>1 Q% X2 f2 w$ E( s9 s
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>0 A$ B; U5 A6 L0 _2 Z
      </p>1 P! i/ `. T" c# x
      <?php
& A/ s: ^! K6 a   }- z8 H% x2 k; r. `$ Q5 b# T  X9 `

. s( J2 t' g" r7 U+ y% K6 [6 J   add_action('save_post', 'save_site_wide_notice_meta_box');* l/ f- Z+ T7 Y2 w% E6 q) S9 w
   function save_site_wide_notice_meta_box($post_id) {' F9 v3 x# T6 S0 ~! l& G
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
0 e/ ^: j% S& i7 ~         return;+ y0 k3 @5 k' |
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
* Z+ c! h' K% ]/ a, N         return;
+ n/ ]6 I# D+ s3 F% g0 y3 v7 q0 K. P# @! I& I& v' H+ Y3 p. X
      if (isset($_POST['notice_title'])) {
" K6 V% m$ t) _/ X          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));( f% t+ e& ^* t3 m* E8 G
      }
+ v  s  w" V" x& O      if (isset($_POST['notice_content'])) {
5 {% C' A9 d0 G  r" x2 V$ `  W          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));. C+ C8 |) b4 F, X4 N+ m$ T( X3 u) _
      }5 N# W! Y* [7 N4 F0 B
   }
& Z+ l( U0 x- T  X2 D  z+ u: S$ P   ```0 T+ j7 v& Z2 W, b- Y5 v- {% L/ L
. H. Z& f+ I2 ]9 _- c' h
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。8 `8 ?" l) H; w- D
4 o- U' J" k* b
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:' c  S# }8 z7 F. N/ i& j) |
, n2 f! j) B/ f* c0 _9 d" E
   ```! I0 Z+ p0 v( Q+ _9 c  F! S- x
   $args = array(
6 y; A# \2 [  I      'post_type' => 'site-wide-notices',
% P  k+ C0 F; i3 Q  M( Z4 g% n) L$ z      'posts_per_page' => 3,
7 v9 Y( I; h) C; i      'order' => 'DESC',, o( Y6 }6 C5 x: ~" i) p# J) o. ?
      'orderby' => 'date'' U9 n7 i3 W' K/ _  }/ ?1 A
   );
2 Q# P2 T1 Q4 J- Y: f& C   $query = new WP_Query($args);4 w  O0 t7 b0 x0 ?
   if ($query->have_posts()) :# Q( Q. Y4 Y8 D  U
      while ($query->have_posts()) : $query->the_post(); ?>5 [2 x+ i  x/ K" K
          <div class="notice">/ ^6 v4 F/ ^* l; t; Z3 e! M2 J
              <h3><?php the_title(); ?></h3>: ]5 Z# r3 L8 L9 V4 T
              <div class="notice-content"><?php the_content(); ?></div>- r! I, P# v' @4 R+ N
          </div>; i* h3 h$ w2 O% m$ w, b3 p  _
      <?php endwhile;- T" q) L$ E9 P
      wp_reset_postdata();
4 b, I1 o2 {2 ]* S- N8 V   endif;# H+ X) X0 {3 x+ q
   ```. ?% z. }4 ^- `+ }5 d- W, P
+ b7 ~0 R2 y0 m& A0 _& b' u
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-10 04:34 , Processed in 0.606699 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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