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

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

[复制链接]

343

主题

548

回帖

3607

积分

管理员

积分
3607
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:% I4 [, X6 r$ A* F
( {3 f1 ]1 U$ `; h; r/ |
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
1 P7 s; ^. p5 Z0 h$ F& A3 D3 R* t; f9 b
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
. L$ T" ]3 N+ i, O* N! S5 B! n* `( {* ^! ~/ r& G
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。' S, ~1 F3 n9 h( K4 ?& \
$ Z' Q( U" n, ?! S
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。' X8 C# ^: @8 {9 ]: ?1 H
  W  p6 s1 F  i3 R3 H5 u1 T& S
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

343

主题

548

回帖

3607

积分

管理员

积分
3607
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?4 ?) F. R. U/ v

! c4 w7 P. X% b' F# ]6 M, m) c& x如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
4 ?: f0 g8 B+ M9 p' E  f, ]* Q, b( Q9 l& N9 v/ u
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
9 G, Q5 M& F6 o( P6 w' f' Q( {/ c: H1 a5 u$ I
   ```
* J' h( F4 Z: W. s   add_menu_page(
! I0 j/ Y2 d) }* L- J5 u" U4 r& l2 J       '全站公告',5 M; j6 @& F/ n" {: B" j( f) C8 D* Y
       '全站公告',' G( _# C4 o; g: e! @: D
       'manage_options', //需要的用户权限" I8 q5 }2 B# R) C/ ?  c
       'site-wide-notice', //后台页面的 slug
. s9 p& A3 u; q4 s* c* e       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
% w* }2 _% o$ g5 H9 s' w# B# ~! Y       'dashicons-megaphone', //用于显示在菜单中的图标
6 n- G# j) S$ p       30 //菜单项的位置2 R6 X4 G* l9 s' d* n
   );6 Y. Z8 h: x4 A7 j
   ```
; G5 }2 x  Q# g# p4 @6 G( J# n5 K& j; @  p, x$ R. H
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。; l) Z$ R5 o" q& V4 L

+ ^/ m6 I/ t% U0 p' E/ `- G6 O2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:6 N/ l: H4 Q9 _" B9 }/ H. u. s
6 M% y. I* j0 ^& B3 I4 z7 _6 P
   ```
' P" N/ O- _  U! X/ ^8 s4 E   function render_site_wide_notice_page() {
; d4 t+ _0 |7 {; d( j: P, v- F      // 渲染后台页面内容0 b* D7 A/ y4 W3 b* N/ R" g
      echo '<div class="wrap">, e2 e1 b) Q0 }# O9 y, s
          <h2>全站公告</h2>  ?3 C; z" S/ d5 Q5 D- H; U7 ^# ^
          <form method="post" action="">
; v- N+ e* i9 z" W$ E7 o              <label for="title">公告标题:</label>! D3 q5 N! k1 u2 R( g
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>( p/ k% |' I9 k1 P2 I" t
              <label for="content">公告内容:</label>
: P5 k! j3 c/ a1 }4 [& e, O  c! o! M              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
% Z9 _/ ]( V1 Y) O  n6 l              <input type="submit" name="submit" value="保存设置">3 Y8 q! ]4 H' S+ o4 j
          </form>
, k3 H$ [! |$ N; f7 R: X      </div>';
0 ]3 x8 A: P( I
/ M, C# l) P0 x& J* J      // 处理表单数据0 ^. o: R1 w/ o7 L9 ~2 i* s
      if (isset($_POST['submit'])) {
1 q& b% u% A$ R: ?+ {; m( M, f          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
: t; f* d2 E' l          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));. P* r5 `+ A; W$ T9 x1 h/ G2 x
      }. v, b3 o3 S7 c6 V, x# S
   }) Z" }7 J; ~! ]. s/ N- j" g0 \
   ```
: C$ i' `6 {5 c7 A: J/ T. d/ W4 D. [! q5 R
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
, z' E9 k% H. J' e, d' N! }' @: b( r$ c$ G, n; y
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
) Z& m& g: l& P# ^1 `( i( c- R$ A) @+ r8 U7 V2 e  C! k
   ```
! k# |% p4 `. F4 y   <?php$ ?) c3 ]) a; M8 o6 {9 Q6 i
   $site_wide_notice_title = get_option('site_wide_notice_title');
" q; g- A6 q) J3 M( E   $site_wide_notice_content = get_option('site_wide_notice_content');
: d1 p7 c+ I9 I8 o4 M( I6 E* G   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
, o8 Z! B( Q4 C' u       echo '<div class="site-wide-notice">';
$ U( q# }% z% D       if (!empty($site_wide_notice_title)) {* d: Z7 A; u% Z* J1 G* Q) ^) x
           echo '<h3>'.$site_wide_notice_title.'</h3>';- x1 H! }! ^7 `- p( [$ o
       }* t& \0 s8 f, i& N
       if (!empty($site_wide_notice_content)) {
! D) d- ^6 o; _& Q8 O( d           echo '<p>'.$site_wide_notice_content.'</p>';
+ p: O! o5 x5 f& ~5 ?& H& a: l       }# i- m' ?4 S7 r
       echo '</div>';
4 {5 l* K; ]1 F; b% N   }$ g. z7 W6 x. s
   ?># o  c& k3 p1 }% z; ?% w
   ```
2 n- X3 i  ~$ `  X% j# Q; r! _8 k
# o. x# g7 F  X1 Y, N   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。9 {# n( B# r# O3 p6 e" g
: H8 t6 ?, J0 e* h* b
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

343

主题

548

回帖

3607

积分

管理员

积分
3607
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?8 B. g$ W. e  A5 V6 H

0 Z% \1 R  k: {4 [& u' [& P$ [您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:; s7 T" n8 O4 Y' _* a, L7 U
0 ?1 H# D0 b" [
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
  n4 t1 c3 Y: A2 O9 S/ _' U  {3 Q9 h) r# y
```' n0 K! R9 Z4 W' t
function create_custom_post_type() {
  q% W9 N. m3 c    $args = array(2 V/ R7 _0 _. I5 s5 h. C
        'labels' => array() W0 w/ b% x7 u( u0 n
            'name' => '公告',
9 q  P% s* J; a+ W/ [1 P            'singular_name' => '公告'( K8 W4 w3 |3 ~3 k  D  @
        ),0 U. {0 z. v9 f+ K& ~! J# H
        'public' => true,3 g7 y' e" E3 ]# c- H3 x
        'has_archive' => true,
4 X2 B( g4 ]* t1 \+ d        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),8 M+ b- C3 Y7 c
        'taxonomies' => array('category', 'post_tag')," ?  [5 N0 z6 z; B, h# r) V7 ~
        'menu_icon' => 'dashicons-megaphone',
! l5 y, h# Z9 C& v$ ]$ B        'menu_position' => 5,! s3 F. J$ M4 q6 {; i6 W
        'rewrite' => array('slug' => 'site-wide-notices')
+ ^+ M/ p% N+ X& k. D& O- s    );
$ P' R; W4 A" K+ L" |) r- p) W    register_post_type('site-wide-notices', $args);0 |& H2 ~( a% m/ n! H
}+ O* j; _- |2 {+ F" g  v0 r/ T9 U
add_action('init', 'create_custom_post_type');( o; m( q8 x1 O& ?$ N
```; N8 {; @, h/ [+ W  Y. J1 t" R

" b; d' q! x6 q2 f- E在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
) k6 e" B* A2 J$ z. F$ p6 F- i1 K: F3 X8 R0 K& t: }% }/ K) A9 Z
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。- Z5 o9 M  W8 z1 T
: i1 K9 a/ O! i% u9 g6 G8 n
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:  r* p8 j$ d( K: D+ y  o
' q7 }1 Y4 A! ~, [5 C2 C
```
7 H& z( g! v$ n" t$args = array(! i; X( ]  S8 i  d5 V" t/ U" G, J
    'posts_per_page' => 3, // 显示的公告数量
$ U  n( p2 @/ H; `4 i2 e& F" i; M    'post_type' => 'site-wide-notices', // 公告文章类型; q( X. l5 f8 B2 l3 a* Q
    'post_status' => 'publish', // 公告状态1 }( {: j! W+ q$ Y3 c$ }; @' A% z
    'order' => 'DESC' // 排序方式: }( w( q' }0 B& t$ h, Y  ~
);3 c; a. x! M6 c% Q" @
4 f' D- O  U- l  t" W
$notices = new WP_Query($args);
. _) @" [5 b$ c) kif ($notices->have_posts()) :3 ]6 D9 r4 z1 d- A4 u; |
    while ($notices->have_posts()) : $notices->the_post(); ?>
  J& p3 z$ ]9 _/ m        <div class="notice">2 @# a+ W1 c6 C% T2 w
            <h3><?php the_title(); ?></h3>9 b/ x) y& I( y" ]$ R  J$ l( x
            <div class="notice-content"><?php the_content(); ?></div>
' H8 S. u9 _% m: g        </div>
8 K7 `' L% A0 R    <?php endwhile;
/ }! X4 {5 Y8 p1 ?( Z+ h0 p7 [) W. ?else :1 j6 Q% }/ c) ]" u2 {
    echo "暂无公告";, U# q) [% H' v# t
endif;2 G: k' W! e" N, t' c; z
wp_reset_query();" u; p9 I' J* J% Y3 s& p
```
" K* S& a2 i3 Z, g. M2 E3 V) _7 h% [( Z6 b+ X
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
2 M: T* W- t$ x' B/ {8 F! }2 M. w$ X6 ?2 }- P
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

343

主题

548

回帖

3607

积分

管理员

积分
3607
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
/ T$ F$ `2 F# u0 M1 o! b4 b$ _- J% d9 k/ b  s+ Q- \% i
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。0 R* q$ S2 l% N) }; R/ `

7 ]: @; @7 r$ y0 T以下是创建自定义插件的步骤:. x/ y7 G% K4 W. N# V

4 s" L. c  c3 w! y, m& z1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
. {9 E4 c! M. `4 X; ?/ o; E' T9 X$ b+ m1 t5 ^
   ```8 A4 y. W4 o; `" O& Y
   <?php
: g% a6 \) d; l$ n8 [. z9 B   /*  E% J, f5 I3 ?- P% G0 }
   Plugin Name: Site Wide Notices Plugin
$ s0 ]/ R; ], a! |& K, N" D- v, U   Description: Adds a new custom post type for site-wide notices.
5 K9 Q/ J( j( q; R2 r; y* H   Version: 1.0
" P3 h7 K; d; F  T   Author: Your Name" c. A/ o2 E5 O- }- N
   Author URI: http://example.com
0 U0 I) \# m2 ^3 P  ]   */
$ A" E$ w& M4 m0 [( c: u. h
. M4 a: u) W, J% |3 B* C   // Add plugin code here...8 l2 `  T( S* h8 m$ O- a
   ```: N" i& D- P: ?. L3 `0 h

& r& S" x( S: z: M4 [   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。! \9 N' R. Z" \& e6 P9 o4 W* h
/ x: L2 y' |/ ^9 P, e6 b% J
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:" m: d, @4 v6 r/ b: s
! Z+ n  U" H9 F# r3 }9 y' ^% X+ u6 l  V
   ```' u1 ^9 T  }, [' O8 f
   add_action('init', 'create_custom_post_type');% q4 M- ]9 h$ m5 \0 s2 W
   function create_custom_post_type() {, y+ A; V4 S1 d) N% G
      $labels = array(
# n, c, @; I+ K! B2 Q; ~* o          'name' => 'Site Wide Notices',/ Y6 ^  b. ^5 _, `- W+ w
          'singular_name' => 'Site Wide Notice',
1 P0 }" b7 G0 z9 i) Y6 M) H9 l          'add_new' => 'Add New',
! t% I! Q: }: s% B1 w- C          'add_new_item' => 'Add New Site Wide Notice',
& [3 H( a) U  h8 E% S9 L7 s2 y          'edit_item' => 'Edit Site Wide Notice',, F( m: E6 ]7 x7 o" k  X
          'new_item' => 'New Site Wide Notice',
7 D" D1 M/ z$ @% v; ~8 U          'view_item' => 'View Site Wide Notice',
4 a/ U5 M9 |& k4 u; z7 \) f7 F          'search_items' => 'Search Site Wide Notices',' h4 v; [: s! u
          'not_found' => 'No site-wide notices found',# \/ F* p3 }, ]/ Z& u0 J& D8 G
          'not_found_in_trash' => 'No site-wide notices found in trash'6 X2 a5 o; _+ R" R% V3 r) m
      );( `0 p- `8 v9 T7 A- `

; c/ L: |% c+ I( n0 k! G/ ]6 T      $args = array(, w6 [/ T# Z, v9 f; {* T
          'labels' => $labels,
% i. U( l: W* F& J4 e& c4 A          'public' => true,
* b/ q8 m1 Y0 E0 Q          'has_archive' => true,9 V3 Q0 g' }+ ]" x
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),- F4 D9 H: F; r2 Q7 E
          'taxonomies' => array('category', 'post_tag'),1 y' L7 V( s/ c) C2 C6 `- T
          'menu_icon' => 'dashicons-megaphone',6 t* ~0 N3 j. \: K
          'menu_position' => 5,5 s3 z) P  D4 p0 `
          'rewrite' => array('slug' => 'site-wide-notices')+ u( \5 b4 p7 ?
      );
; i1 W- O1 k0 G% \' t
/ l- L. a+ J- i/ b( P* I# q      register_post_type('site-wide-notices', $args);# j' ~$ U' i, b8 A! C9 c4 B/ o1 L' Y0 X
   }
7 L; A- P1 W" [& _   ```
5 A, u6 m! x( W: W3 z, d
- F/ x( j# l4 k$ M( R0 J   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。3 b& k" R. M: X  t1 ~$ x0 Z% q

0 Z$ s7 Y8 K# Y0 }( F3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:: @5 t0 V  a8 F& L- ~; C

0 X! B. X% a/ K7 l$ V8 ]* C& f   ```
9 t$ k5 Z; @5 f( I7 d   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');1 i# }. W1 `; b  p/ I
   function add_site_wide_notices_boxes() {
7 K+ |6 G" f* ^& E& M1 H8 P      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');+ ]" D* ~+ A$ p! l# I# U( M7 L
   }
3 a8 s  Q/ L- W6 D
4 y/ |3 g3 y" J   function notice_details_meta_box($post) {4 }9 |. h* `  h* R* ?5 k
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
9 `8 q; O$ x* X/ f6 p% c      $notice_title = get_post_meta($post->ID, 'notice_title', true);9 N( k% q4 L- t$ I2 w2 I( K9 [: p+ O0 F
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
4 ~& E2 o4 P; b: Y: q( E      ?>" v7 {" Q' C" K! J0 E# f) ~
      <p>) z* H& ^" ^7 V$ i) w% W5 `1 U
          <label for="notice-title">Notice Title</label><br>
0 V) K% \% ?+ d' u9 Z# p          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">2 ^6 u1 R" e0 K* u$ t! _
      </p>
  r% \* N* d* R. ]' {      <p>$ q- k* M1 Y" o8 N2 t
          <label for="notice-content">Notice Content</label><br>
7 Q$ a. e7 q) S; c          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>! C! I1 @3 Q& H0 ^
      </p>
% ^! n- [. s$ [0 y5 p4 N      <?php
6 ~3 r5 d( @2 V   }' A- v. w+ x; Q; o( B! I( f
3 u( B1 J, q( F# R! d
   add_action('save_post', 'save_site_wide_notice_meta_box');
4 p1 O0 O5 ^9 d  Q  ~8 E; a   function save_site_wide_notice_meta_box($post_id) {. P+ }- m: _& C$ d
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__))), C* S6 d: b. P/ U( k
         return;
; M9 b  M8 n" ]( S6 @, m      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)9 q5 Z1 D) n5 W  W
         return;
8 ^* m: Q1 B0 I3 K" w1 i& |# ?; C/ M! X
0 X* n: |. w7 W1 I/ y% A      if (isset($_POST['notice_title'])) {* L1 g. N1 b( |
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));6 H( D$ n: X3 M+ [8 u& U. d9 k; w
      }
, _+ n4 \) @: K8 {- L4 l: S      if (isset($_POST['notice_content'])) {+ S7 {: v  |7 _: ^
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
- J% ]7 o4 p( Q! y- l" @- C      }- G: o+ m  Y& q3 X1 Z
   }' Q# ]+ [! z; V' Y, S$ |  D* p
   ```
/ D( v7 |6 E% {2 {
. L, X: a: m" Y& S2 u   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
: F) U% X4 I+ M" A& v6 s
$ r! f0 L* A6 p4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
% @' ?/ f; }; q# n2 Q
# I1 F; q1 g4 @( h   ```
* X& h$ M' O7 m: J$ U) l9 m   $args = array(
$ x' C( O1 I4 m  c: G      'post_type' => 'site-wide-notices',
5 V9 ^9 \/ {( Y* l) N* `3 e      'posts_per_page' => 3,3 _; k3 c3 _. h8 d, F
      'order' => 'DESC',
4 W+ Q. e) b8 R      'orderby' => 'date'8 [9 _' ^% e/ G3 w
   );  J& M' p+ U& f6 X+ O" M1 n4 {& [  [
   $query = new WP_Query($args);
5 B1 `/ x  \! t6 f" y( g0 V   if ($query->have_posts()) :" r% d# R' X% N' F. _2 R& w1 k* d
      while ($query->have_posts()) : $query->the_post(); ?>4 e4 O. b) v) E" B
          <div class="notice">( M3 U! ^. g  i  D1 U' r
              <h3><?php the_title(); ?></h3>
. {9 M7 s# Z) p$ O1 o/ D              <div class="notice-content"><?php the_content(); ?></div>
7 _) K3 F; r) ?- z3 Z% X          </div>8 O8 ?( ?  h  q. M  z! t. ~- ?2 ~
      <?php endwhile;: P9 [% z+ u; R2 W# M3 R$ {0 n
      wp_reset_postdata();
  D% w5 r$ O  M2 X6 u8 {. P4 c   endif;
; w: h( ^. ]% h   ```
9 \- K+ t5 ^3 I  w8 z! L5 t2 I) e& @
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-30 01:13 , Processed in 0.021841 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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