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

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

[复制链接]

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
. t( v' D8 r! ^$ E, w/ U9 e6 b6 j1 }; s+ ~" \5 x" g4 B8 \
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。) a. n  ^& B- I& t4 Z

% X  \1 B9 c1 K5 L2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
- u& f2 \! U: x2 o! _, f* R4 L# C6 z# {. l9 z# x
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。: G  Y* `' G8 q2 B2 m" t
2 e( v# ^9 G5 I0 V& _4 s; a5 A
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。( H. q+ n4 U# h, }
0 p! l  D# [& L; H( v7 w( e
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?: i3 y8 {; r2 t/ V& L& P" t

' F- l& I$ ^: o" V# c  ]( ]2 I如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:& \" L7 z% n/ b' n2 }* N

" y7 R  `% a1 @3 W# a9 F0 d1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:3 X5 j% `( ~' J) c3 M4 U

0 J/ N% H3 b* O  W. Q, q: v0 K   ```
: Z* O) F) ]& {+ z* Z   add_menu_page(4 D1 ~; L5 S* _; d" q6 b& c8 k
       '全站公告',
, u5 d( R8 s* {" o       '全站公告',
" X( P! _( ^! ?       'manage_options', //需要的用户权限
3 s8 n/ `1 W% T% L       'site-wide-notice', //后台页面的 slug
( T  h4 B0 |( _) J: b  ^       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
' p  `- P5 m6 E       'dashicons-megaphone', //用于显示在菜单中的图标" d8 D2 n, f) x+ ?
       30 //菜单项的位置+ p8 }/ ?' {0 T" D( ]7 M4 r
   );; P! x3 ]' ?+ m0 O! i% Q0 C# @  J
   ```/ W* U+ B  X  r

3 p! E! Q- s/ y* Q+ d. b   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
9 @+ J+ q4 p9 i, |7 q. H9 _
5 P( Y# F! i  n5 j2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
8 Q9 D7 P2 T; Q5 u* N) z
! Q9 ?+ X% m; ^4 c( v   ```
! Z. L+ J* F5 K& g  c   function render_site_wide_notice_page() {
' |- c& |( @# D      // 渲染后台页面内容
. Y: o4 m  ?( F2 l# g      echo '<div class="wrap">- l  U1 X' s* T- |
          <h2>全站公告</h2>
* y- X: r: {# [) O          <form method="post" action="">5 P& T) N4 X3 n# h. C- i1 X
              <label for="title">公告标题:</label>" ^* b4 o+ t9 P
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>* k: m, {1 z  K& I& _
              <label for="content">公告内容:</label>
3 ]9 a* o& Z; J% B% B& Z' C              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>6 P. P' h. H0 V; v1 C
              <input type="submit" name="submit" value="保存设置">/ b3 Q0 Q# N$ b& B+ O7 L$ m
          </form>
8 U5 k: c) i3 X7 c) c      </div>';% }0 K8 Q/ L' P# @' x

' h8 S/ x8 {7 W& p# R      // 处理表单数据
$ |4 a2 l% c' H* i      if (isset($_POST['submit'])) {% T  }6 y0 b3 G( Y' Y
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));, \7 M& G) W. T5 x! W
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
$ {8 }: v5 M' d1 K7 Q; Z( ]/ K& V      }9 u& w" r8 j5 }& A" H8 \) f/ ?$ f
   }- \" t; K1 s# d$ b7 q5 \
   ```
' z, i9 ?* H) i3 W( J2 u9 D
' u* ?% s% |. N$ _9 m  z2 P   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。$ B  U7 d. [* v0 B, O$ S" @
! q7 A$ c& H: \- M  r
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
: |& m: g; I1 e* L3 B  r
+ y0 `3 T) U& Y0 \8 S, |; m   ```2 g6 Z7 u# F; G1 s/ u5 ?& I* Y; w2 i
   <?php
( E6 I9 B7 {$ s) H$ h* G   $site_wide_notice_title = get_option('site_wide_notice_title');
4 ?5 r0 ~; r+ u1 _   $site_wide_notice_content = get_option('site_wide_notice_content');
$ O# k0 t2 z0 p( v5 o! q   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
' |) o$ a3 ]/ o( E/ M       echo '<div class="site-wide-notice">';
! f% ^" V- F. R/ m       if (!empty($site_wide_notice_title)) {
1 D/ \* @( q* j4 t           echo '<h3>'.$site_wide_notice_title.'</h3>';6 J, y$ E3 S, O8 d9 J
       }
. X/ G6 D8 t7 n: Q  l. y       if (!empty($site_wide_notice_content)) {
* s2 c2 Y9 |9 |" }- J+ e           echo '<p>'.$site_wide_notice_content.'</p>';
& @% ^* ~- S+ D" a- k/ q       }
' `7 ]6 e( C1 F; C. L" N       echo '</div>';# r2 ~5 [2 \/ d2 U2 s  I
   }
+ V* B$ \3 j9 t   ?>
/ P2 i6 T, n: L. |" N! E   ```* k! M8 l% g# u

! X) A+ e" D3 x- C   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。+ K+ _$ g! |, y, }  G* ]
8 r4 z* A) h+ w! Z0 j/ V# C5 X" O) W) O
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
7 E( _& _& l% O% r, o4 m% `% |; E8 t, x3 Q8 z  O" B
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:. t* U1 Y! Q2 \3 t, k) c

* c- {8 a$ ^- j. b1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
; ?, A0 z) ?2 I" [5 ~: }+ m1 l8 y" K" {6 G! m& ]1 k: Z
```
  Y# z- Y# ?- W7 `  kfunction create_custom_post_type() {
$ Q7 k# W) c/ O  ^    $args = array(* B9 l& e/ o* G% D2 g7 u
        'labels' => array(7 Q8 O. [2 F) c# N" O
            'name' => '公告',9 {. D7 u1 e( {+ R4 s9 c: H! t
            'singular_name' => '公告'
& t# ?; h9 f8 H0 Z. R        ),2 U' C( k+ q6 ^* l9 R7 ^' v6 ?
        'public' => true,8 @+ B; {( ?  ~
        'has_archive' => true,9 r3 ~5 S8 L3 V/ n0 s- {, M
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),. k" W  Y) }1 _; a, f
        'taxonomies' => array('category', 'post_tag'),
9 q6 x2 G$ c* f. p# U        'menu_icon' => 'dashicons-megaphone',5 o/ Z: V+ Z( Y( V! t2 W% Z( S
        'menu_position' => 5,
/ l1 t: o" F+ Q" l$ w; @/ w; ~        'rewrite' => array('slug' => 'site-wide-notices')
* s$ M$ R' v' M# ?' K    );
( v9 Y( u  Y5 M0 M  `$ D5 _& e    register_post_type('site-wide-notices', $args);& m0 R5 ]3 w' _4 }8 p* K( N
}7 w, ?1 g* T# W( _
add_action('init', 'create_custom_post_type');. P+ g. y4 t8 D) ^6 Y4 O9 A
```
0 {1 t9 X5 }( l% k. u( o3 h
1 g# ?. |% O8 j( P) v) M; s在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。+ _& }5 I2 @$ h& V# `) y; c" L
. |* z! u6 C1 S5 }; k  q
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
9 c( V/ {2 p7 z( p" k6 w4 s
8 v; x& G% E) \% L# r) A' w7 |3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:# l$ c3 J4 e) [, U, R; E5 c
! n  x- B( X& y3 r
```
( M6 D$ o4 d8 I( F) x" B$args = array(
3 y& Z: j  r+ J# ~7 z    'posts_per_page' => 3, // 显示的公告数量7 r, f$ f# D# p" ]- d8 a+ B5 e- w
    'post_type' => 'site-wide-notices', // 公告文章类型
! J4 c- G# E+ H5 |    'post_status' => 'publish', // 公告状态' m3 V- P1 r6 l* C
    'order' => 'DESC' // 排序方式
: t, e, T# X7 J, g" R$ S);
. z# z* x$ a0 a1 O- T( x. O; t
* ]% C2 @" W( R# H2 K- M7 K$notices = new WP_Query($args);! d' q7 O8 {# Q7 @9 L
if ($notices->have_posts()) :
9 ~, z# B/ C, }  ^9 G% c0 Z$ U    while ($notices->have_posts()) : $notices->the_post(); ?>( l0 f: J, I- E1 n! j' \) X
        <div class="notice"># i0 Q, D2 d) R; w( e
            <h3><?php the_title(); ?></h3>9 J" r2 Z  B4 B* O: o% e0 q4 |! s2 p
            <div class="notice-content"><?php the_content(); ?></div>* l. m$ e6 H$ l; A; e- C
        </div>  E3 C' C7 N) \- n9 ~4 }, v3 O7 k
    <?php endwhile;$ e* o' _7 v. x8 y/ m' s0 K
else :
7 ^7 l% l, |. ^; o9 k    echo "暂无公告";
( {9 _1 r% [1 o4 }+ {! Sendif;3 C6 e" i! p* j
wp_reset_query();  J. e/ O. n) D
```( x+ @( K( K, q: Y. X- Q7 L* X! v2 s

+ f! H) ], y. B& m/ w, u这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
3 t& r. d: ~, E! u. G3 b3 l/ ]
) o, @, n, z% R1 s( |% o以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

530

回帖

3536

积分

管理员

积分
3536
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
2 q: t! z( f/ T- o
5 Q' G6 e$ f, Q& P& L如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
+ ~5 ]! @  J& j; U: x/ [9 N+ p5 I8 U( E. h. j; _. i& [
以下是创建自定义插件的步骤:
7 X1 P! M7 L  @; K  y  L) I" c( {/ _3 k! H, G! i. F
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
; V. I- z2 a8 T$ K: c) [" n& `
7 F# S4 p; Z  T* z1 K3 f: o   ```( }7 W! }, }$ H- L" B
   <?php* }- I- b, b9 G8 s5 B# @
   /*
+ L4 u' N; J- C4 P& A9 R+ S   Plugin Name: Site Wide Notices Plugin% L) c$ _' I! _) n8 Q
   Description: Adds a new custom post type for site-wide notices.
+ B  P/ Z. l( U9 w: b   Version: 1.01 F( Z3 o. f4 O' ]1 M
   Author: Your Name
. \8 d; {3 M/ R% I, L# x* I   Author URI: http://example.com
8 a# x; {2 a+ Q1 Y, e" n. g   */) ]; L0 \/ ~& q" b) f  |' }

) d9 S# i% ~7 F) L/ k- ~   // Add plugin code here...
0 D& T3 W$ y2 U( F1 }8 Z   ```
' e& Y1 J) y* S! D+ R
9 A7 \+ d$ K4 b+ a( Q7 i, b   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
+ a$ R- Z  G% h* c  g" w
. U7 g& ^; t2 T. \8 {1 Z7 A2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:) h- \# w7 e4 e" H8 {% }, x

3 G. J! m6 h, z- F. d8 Y, l   ```
1 I+ Q8 H, X8 k( [- S   add_action('init', 'create_custom_post_type');
& C2 I; D) e2 j0 @8 R   function create_custom_post_type() {
' a4 ~- x, T4 }1 V9 ?( k5 B      $labels = array(
2 {+ v% f" Z) Q: j% w          'name' => 'Site Wide Notices',
; g/ k) c/ A6 X( y          'singular_name' => 'Site Wide Notice',0 \( z) C  F2 x7 L  l
          'add_new' => 'Add New',* @, P6 G3 f: {8 g% d/ _: o, X. {6 N
          'add_new_item' => 'Add New Site Wide Notice',
; ~% Y- a3 P5 i) O0 ]" [8 r          'edit_item' => 'Edit Site Wide Notice',9 g, E# v- m4 z+ Q* I5 N0 j
          'new_item' => 'New Site Wide Notice',
0 a9 ?4 P$ l) e9 P) S/ t          'view_item' => 'View Site Wide Notice',
2 d/ Z  {& O; e          'search_items' => 'Search Site Wide Notices',9 Z! w0 Q8 ~  I/ q8 U
          'not_found' => 'No site-wide notices found',
5 r8 H8 `4 o9 ~/ M9 ^$ E' x. ]          'not_found_in_trash' => 'No site-wide notices found in trash'
1 o5 m) h2 _6 q" R0 X0 @& M; y      );
9 I% v7 U: ~' m" c6 c3 t* r& O' x& N9 d. a; x0 a# F/ o; d
      $args = array(. u" Y: _! e% Q3 r
          'labels' => $labels,
% {1 s7 @$ C! ^1 U- k; Y, W8 M          'public' => true,
! i8 {+ O+ k2 j8 s# Z! r: P          'has_archive' => true,
+ D) |- z' h) X; u- d. A          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
- S/ ^5 ]4 ~% p& B( _; }% O          'taxonomies' => array('category', 'post_tag'),
2 }2 Q+ T" W, A) X; l% A! R. m          'menu_icon' => 'dashicons-megaphone',
2 |- c0 G' i& R2 S          'menu_position' => 5,8 w9 a+ H1 v4 S! I
          'rewrite' => array('slug' => 'site-wide-notices')
0 C" i: P; d# O- G      );
4 u0 K6 K1 r( r7 _% @& w
' _9 o& F  E4 a      register_post_type('site-wide-notices', $args);
  a" ]+ k- u6 r/ k   }/ W5 u3 [- l$ k5 s
   ```
, L/ h5 T9 }- a' ]* k/ ]6 H
" a& \/ k# Q# v% C% L1 R$ G3 O   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。" `; X: s% R1 c4 N! h" v
3 W. G5 V+ G/ l- r8 {# }" I
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:0 V2 F1 Z$ M  t- J6 T" a6 D5 f
$ j" ]: \! D6 Q9 o- c6 y
   ```
! _* y5 O: t# f# p   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
" H$ M9 s1 A4 L  S3 b   function add_site_wide_notices_boxes() {. ]' C9 T) |# G) K
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');8 ?: a: X9 Y/ l" }. W
   }
; a& N. H2 I$ @! Z6 |/ g0 c4 M/ [
   function notice_details_meta_box($post) {
3 h1 G! B* E, i3 a; o      wp_nonce_field(basename(__FILE__), 'notices_nonce');, T5 y1 @+ w- ~5 x6 G1 P+ v3 g
      $notice_title = get_post_meta($post->ID, 'notice_title', true);$ ?) V9 I5 z1 q: S$ x- Y
      $notice_content = get_post_meta($post->ID, 'notice_content', true);" C; n( S; F, W/ e
      ?>
8 d0 f- O# d2 R1 V$ G8 D& ^      <p>
" z1 v% x/ x/ ?! j! u  ^1 s          <label for="notice-title">Notice Title</label><br>3 }, d! M- O3 l2 m. y( c
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
2 B8 d# h3 K, \6 s) F: b$ }      </p>7 e8 c% d& s/ h" S9 ?) t5 @
      <p>
- z2 O% v2 ]- f* G- ]: z# w% j- h          <label for="notice-content">Notice Content</label><br>
% n# q6 L% Q  b: C$ l3 j          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?># L# B' G% p2 M9 i) c$ R
      </p>( g6 {% x0 L# ^$ C& u7 f/ Q
      <?php
: @$ C3 @6 s% \' j1 N  ]   }
: B, j4 P3 i5 Q- d& z& w) q, `# `1 N, C' @9 W. N1 p
   add_action('save_post', 'save_site_wide_notice_meta_box');5 T- j) L  t" a. Q7 z1 ]
   function save_site_wide_notice_meta_box($post_id) {$ c1 _& X7 A4 f( @, G% z" H0 F: a1 L
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))+ O3 [8 r4 O, M; D
         return;1 M* A( L& H% R0 M
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
6 `# |; ~  [" p3 \+ l         return;
7 c( p$ R, }+ F8 D. X' `0 F  Q2 I! ]* Z/ U
      if (isset($_POST['notice_title'])) {4 M1 a+ b6 S% v
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
" G: }( |- V2 t, s, W# U: h      }: p5 \! a; }$ F, ]1 m
      if (isset($_POST['notice_content'])) {
: _0 p: Q) k0 ]' N/ {  h          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
8 N9 o9 |9 ]7 y* p! S      }
& y& @: Q8 }+ \  M: z: T2 n% O, G   }/ w; \3 h) O5 [+ [, C
   ```- J' [. }4 t* @7 _% Z
7 T7 c# C  g% D9 v- M
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。9 p- T4 R% n* w4 p% `7 h3 g) b
, ^) t( A& p, S9 d" j  C  e3 ]) p
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
5 n0 X" M1 l0 r" e- V4 [" ]) `7 \3 G0 I
   ```
' @1 O7 W& g) o! S! a3 j   $args = array(
  y, u0 ]$ |+ [8 ~      'post_type' => 'site-wide-notices',% g* z2 C$ m+ V/ v: g4 x" y. I! L
      'posts_per_page' => 3,+ Y& j! G5 U  |9 D0 d
      'order' => 'DESC',
+ y& I. W* I& c- C+ U, \      'orderby' => 'date'( s) A" z% F' S/ Y, Q0 @
   );
. w5 B+ I4 b. @- u+ h/ q   $query = new WP_Query($args);
4 g+ M) i  i1 e! C& o) f, b! S   if ($query->have_posts()) :8 }3 F! z: R  i! T/ L4 B% B$ ]
      while ($query->have_posts()) : $query->the_post(); ?>' ^  ~2 F' `# q( l! Z& j) B6 c
          <div class="notice">; S0 F# o3 |& q, R4 R! r
              <h3><?php the_title(); ?></h3>
9 [6 u' }& j% G4 O              <div class="notice-content"><?php the_content(); ?></div>
+ k4 [! m+ b1 l7 H1 A! w% r7 Y1 b          </div>
3 U# F% _# X$ H$ x  s( O      <?php endwhile;; _) y( d4 Q0 j( e
      wp_reset_postdata();. u, T5 n8 i4 [8 E5 x% B2 q/ w
   endif;# q/ l6 g, y- G+ F! V
   ```. e1 X! m) u4 c' a, p$ w+ Y( b1 V
3 ~, D3 x5 W( u- r  `
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-21 20:57 , Processed in 0.020167 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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