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

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

[复制链接]

346

主题

560

回帖

3660

积分

管理员

积分
3660
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:% d6 {0 A; ^) T" V) ^7 n% i. m
* T+ O& S  \4 V; R) f
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。8 Q7 F% v/ w' h6 f
; T" A" t; g8 ]% K2 U8 N
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。; ~2 K0 O7 x/ \& s5 i9 v

* G. A* p) Y. f3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。9 t7 y, _% V6 J) S

) o; @6 I1 u: S4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。+ S. K! G$ ~! _6 u0 x

8 h+ Y2 C3 a( X/ W% d2 E注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

346

主题

560

回帖

3660

积分

管理员

积分
3660
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?! j; M5 Q) a& @( Q

% c' n) ~/ h0 L  p/ B2 [+ _如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
: ~/ _- B. w8 `. D- g. g
* I4 F5 Y  l8 I* n/ Z3 h, ?5 d3 `7 }/ R8 {7 [1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
  r" _+ i7 Y- R" m0 ^# U, f+ Z) m4 [0 e
   ```9 M+ U: l& ]6 r8 L. F0 U! x- \4 Q
   add_menu_page(# o2 V; n' a: H5 Z
       '全站公告',
$ e5 q! K* G/ i       '全站公告',/ Y  w( P1 O" S8 q0 d" ^
       'manage_options', //需要的用户权限; {5 n9 e; K6 z2 p, T7 o, }( w
       'site-wide-notice', //后台页面的 slug- H1 i5 l0 i: f  U. b+ i  h" g
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
$ y5 [# i  m5 P3 ]% Y+ U( `% y) e       'dashicons-megaphone', //用于显示在菜单中的图标
8 m) c) Q5 U3 `) C3 u       30 //菜单项的位置
! `% e. s: }# j; u, D* M1 d+ d" x- K" R   );; C' k" O$ k2 E1 C8 K7 ^' t7 \
   ```  c+ S& D  ^7 g6 [9 p) V
, R: Z: Z' T- B% Z
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
9 e! T% \; a& q0 [
" F& d: _- T  V7 V9 U- a2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
  M# }3 N) Q' ]1 v! {8 n
# E% s" e0 k% n! y0 R! r   ```3 ~0 \+ ]* h3 A4 \- l( Q
   function render_site_wide_notice_page() {# ~/ \+ O2 B& s
      // 渲染后台页面内容( w: n3 e/ u5 g' r
      echo '<div class="wrap">- [' Q2 Z$ u6 W8 \9 J' O0 i
          <h2>全站公告</h2>0 B- q. a2 O7 j$ V6 u3 ?
          <form method="post" action="">
( D& A1 d: b5 Z0 z* z$ W; u              <label for="title">公告标题:</label>
  q( j9 T8 L' N& P# `              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>% ^! P3 X1 W- g' X( a' K9 i7 P4 C) b
              <label for="content">公告内容:</label>; \% g- ?  N9 X, g! y- J
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>% M& ]8 m0 W- W3 q5 z  P
              <input type="submit" name="submit" value="保存设置">( x1 x% K" I0 U% j' ^
          </form>
) Y" q* m4 @; T/ X      </div>';
  {9 g' x! L; r* l8 b, y4 W
7 S& ?1 D) Z7 @8 x, ~      // 处理表单数据
" f8 v  t$ K) n# @+ I4 c" P      if (isset($_POST['submit'])) {
# k6 {  l) J7 p" |  T          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
" n) X* \/ J9 m$ G  X7 t& a          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
1 C$ b5 U! N! k6 D* W! I      }: K# A6 P6 W& A4 o
   }
0 z3 c" h4 _( U1 j3 B. w4 _   ```
1 u( J2 q* B9 ]4 g# ~: t' S9 |" U; n  q6 b) o
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。2 s4 T+ t& Z2 M! d
5 q+ ^( P, [& c' n
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:3 ]3 @3 h: t" q2 F% r4 x7 j4 v* J8 [+ S

0 e( A. s) O3 p, p$ N! x5 z   ```+ b1 M$ J* u8 ~
   <?php
& b7 z8 J3 _$ [6 w) h' T   $site_wide_notice_title = get_option('site_wide_notice_title');
) R7 l2 u* Y( y" d2 i   $site_wide_notice_content = get_option('site_wide_notice_content');
- p/ L) j& N7 h, t/ _1 m8 h: _   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
8 {8 P8 i  Y) Q$ C* S: ?       echo '<div class="site-wide-notice">';; D7 K& A6 g; _, y1 ~9 A  V9 }% D
       if (!empty($site_wide_notice_title)) {
( x6 a9 `. Q1 P" U           echo '<h3>'.$site_wide_notice_title.'</h3>';
7 C1 y0 |3 H; }       }
' m5 n( u+ l& {       if (!empty($site_wide_notice_content)) {( z, ]7 {- ?. A& t! g9 H' K+ N
           echo '<p>'.$site_wide_notice_content.'</p>';+ K/ _: Y& ^0 \* Z
       }* d4 \: D, B$ y/ @9 r* ?: X
       echo '</div>';  Y, z) X8 L6 U% L, u" U
   }* E7 M: O2 r3 D8 N: w3 E
   ?>! l* V! M- K9 |5 y) l
   ```1 m) \4 P* Y1 Y. G5 e
" Y+ O) A$ i7 @: C; D; j' g! Q' e
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
+ [3 l/ J2 T) o( f5 h  K+ Z, \# |" `5 I7 k, S
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

346

主题

560

回帖

3660

积分

管理员

积分
3660
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?5 u/ A& h5 ]. F7 I
# f, p; a: R  I8 s6 J3 K1 N
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:) A$ J- W8 {4 `. B

2 S. b7 ]# ~% ?9 l1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:, N& B" x# n0 Z1 y) y
. W* n- a# z8 \6 l
```
! \8 s. q2 G1 A! Kfunction create_custom_post_type() {
% g$ P" n1 Z; P& b/ q    $args = array(' U  N$ h2 U0 r: s$ x- e3 w
        'labels' => array(
3 m/ }: }! e: R0 N" {" ^            'name' => '公告',
! U% f" u4 i5 n- q1 H            'singular_name' => '公告'% E& l0 r/ U: L# J/ W9 y3 D
        ),6 y) t& v3 y4 ]2 I
        'public' => true,; S  R+ D; U" [9 M
        'has_archive' => true,
7 p& e# L1 k1 G0 P1 ^4 Y        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
7 z" a3 {3 T8 c# A        'taxonomies' => array('category', 'post_tag'),7 J( L% _5 R* }- P2 m
        'menu_icon' => 'dashicons-megaphone',
6 W. Y* d8 C# w3 T. o4 ]        'menu_position' => 5,8 H$ I* X7 ~0 X- \
        'rewrite' => array('slug' => 'site-wide-notices')
+ J$ [- ~1 F% x0 P/ l. g0 q1 s    );
5 ?0 k, B+ a" N0 ?: S$ L- [    register_post_type('site-wide-notices', $args);
! s) ]4 f! a$ ?7 I}
/ P. f" J8 k" P, U$ qadd_action('init', 'create_custom_post_type');
  \  \! e" y* L% z; _```- O0 e9 H% ~: K# m* r
& T. }, D# `7 D9 c
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。2 L! K; k$ a$ Z- O+ j9 {2 d

' a; a- p* x% M0 V) q2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
7 v( d, A- u0 O% E6 [0 k& z
3 v& j" i# B7 V0 {3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:5 K5 r  }. h4 ], D/ [+ p

( L5 i& `/ C' E" N```
  X; c% O' ^& K6 x: M' j$args = array(& m( O* K; A3 X/ D+ q/ C; d
    'posts_per_page' => 3, // 显示的公告数量. R) R  B4 ?% ]" g3 d
    'post_type' => 'site-wide-notices', // 公告文章类型( r# u+ z! V3 E8 ~: R; y
    'post_status' => 'publish', // 公告状态' N8 L7 u  o3 Z8 @: ?) t  {( e
    'order' => 'DESC' // 排序方式3 l% q+ w% b& R- M$ v
);; j! m9 l" I. ~. _) x

/ W: {8 }  }) O4 a+ P$notices = new WP_Query($args);; |" X0 K: W' k7 c- S
if ($notices->have_posts()) :) M) o, x2 |  s7 s' l
    while ($notices->have_posts()) : $notices->the_post(); ?>1 O' d2 {5 p% Z! o& f
        <div class="notice">
7 w3 W% @, V, @6 s& @; f            <h3><?php the_title(); ?></h3>0 z9 U: b9 J& E9 A3 F/ `
            <div class="notice-content"><?php the_content(); ?></div>( o8 y' c; ~" q( J
        </div>( S: J9 ?7 c2 C( f: q0 U2 P
    <?php endwhile;$ B5 V# H6 s6 ~2 a- K
else :
2 |7 F' {5 D7 O9 i$ R9 W    echo "暂无公告";
0 G8 Q8 S9 U% L$ X2 H0 g) [$ Dendif;0 h* _+ C; `7 j; ?8 p
wp_reset_query();
0 Y7 G% `. O7 e2 v) @& z- N" V# X```5 X6 F8 q- L7 L$ Y/ }# _5 H# n6 i

  X* c7 W9 |' i' h8 E& p- A这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。9 R4 ]  P- A$ g0 D8 H; I+ [0 R8 R! c# n+ l
5 A6 _9 S/ M9 D; y
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

346

主题

560

回帖

3660

积分

管理员

积分
3660
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?3 F* Y* r, Y. u# T

4 y* n- y3 \4 p, x3 E( N  N如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。5 B) O9 A- e% B; J7 x% v1 ?: _
; P: Y- |, H5 Q4 n& q
以下是创建自定义插件的步骤:5 ?) `" p/ Y) R

1 l9 B/ _6 q5 {3 t, W1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:! {+ m5 i# g( n( T, t

1 k1 V+ O# h7 T- n1 @& t- q   ```  |# y; p( ?. k0 Y
   <?php1 P) e3 Z4 N5 n" P0 }  |. E* G
   /** I2 p& B0 V8 L0 }$ `
   Plugin Name: Site Wide Notices Plugin
- k9 r/ O/ z( ]- f8 H" n- p- S   Description: Adds a new custom post type for site-wide notices.
: v* c! C4 H# B* x* b  ]( C- [6 ?   Version: 1.0
* i" j) x( `5 @+ ?- Y+ A. z$ n4 s+ F; Y- r   Author: Your Name, N) w$ S/ r' A! V( t; u
   Author URI: http://example.com$ ~, z7 W' M. n$ q& }6 M
   */, A/ U' n3 e9 \6 D
# V+ [2 T+ Q3 b3 b9 {, {0 K# U
   // Add plugin code here...
# C+ j/ p0 C1 l( @3 @; K% X  _   ```
8 }2 z+ i- t3 T. B9 W) E
) \6 P) T: b0 e3 |0 L   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
9 m. x3 m5 l4 T( k% t. z& u- O/ V$ g" E4 I9 }: i
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:0 E) g* m. F6 b! h$ e& H
' O: f  Q) C* Q/ t9 b2 [3 K
   ```
/ w( |- @( ~( r  Z" z   add_action('init', 'create_custom_post_type');
9 J, W8 u" H0 e7 B7 e6 D' k   function create_custom_post_type() {, U, j3 p) E6 l- e4 `9 u, M, ^
      $labels = array(
8 ^8 H3 ^: k8 k; e: }          'name' => 'Site Wide Notices',' G  Z, l6 H+ d; K- d/ T) q+ f% {
          'singular_name' => 'Site Wide Notice',7 A; t, v0 ^4 E" n# ^
          'add_new' => 'Add New',% Y* Q. z, {( i# M5 \6 s3 M. v
          'add_new_item' => 'Add New Site Wide Notice',
, Y; R1 E7 N5 [          'edit_item' => 'Edit Site Wide Notice',
7 ~  t# O% }% i          'new_item' => 'New Site Wide Notice',+ F# t' j( p% Q# j
          'view_item' => 'View Site Wide Notice',
4 T4 E/ v. {5 J9 Q9 K: ~          'search_items' => 'Search Site Wide Notices',
/ |7 s3 `! M1 c0 Y, D+ Y          'not_found' => 'No site-wide notices found',% A5 R7 N; R" }; o
          'not_found_in_trash' => 'No site-wide notices found in trash'
/ r9 T8 ^5 N3 U      );
% s! ]1 J" v5 z$ ^- q7 h, q9 `5 u* D5 ~5 D+ x
      $args = array(
* `& |1 j% c- s) |9 u          'labels' => $labels,
  a0 w, o# K0 I          'public' => true,
% Q. K* u# S% ^/ h* K+ y5 m* v          'has_archive' => true,5 s! f; I* d* u0 t' k! I
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),/ D* X3 M  P$ l5 b6 t* x7 [
          'taxonomies' => array('category', 'post_tag'),
  B- F+ O! V4 V$ U, i* x( @          'menu_icon' => 'dashicons-megaphone',
" q- f/ o' X9 L          'menu_position' => 5,
/ |# A/ k  t+ X! k" V7 ?          'rewrite' => array('slug' => 'site-wide-notices')
$ B$ B% R6 B$ x+ S, Z# k3 @3 H      );$ [% I) [- F) p# M1 \# }3 H$ P

) G$ Q4 m- U: y+ Y' i; A      register_post_type('site-wide-notices', $args);' Y* c0 ~& S& E8 k, P# J0 X
   }1 o/ s" K8 b3 k/ T7 w# l
   ```
4 q# D; t! T4 W7 u) h5 o7 ]2 I& Z) F) `; F: d" {; e+ W
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
% v* h: y$ C- F* B0 R1 W  ?+ X( D6 [8 l& ?
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
$ D& R" P4 k; ]# j4 e' |
! M5 p- i" V- |% m1 t   ```
3 _/ I: r+ ~* H; w   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');$ d# p  Z( X4 s" f* i( h
   function add_site_wide_notices_boxes() {, n" u$ v: Q. [6 F( y0 f& K; B4 i4 X
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');5 ~8 z& J/ L7 X0 I6 K$ k; v# `. g
   }
4 @) |* D" d' H. u* j
3 f8 R- m- D: D. {   function notice_details_meta_box($post) {  b- i0 @2 _; I
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
3 u. F5 g" }, C& Q! ^0 }      $notice_title = get_post_meta($post->ID, 'notice_title', true);5 Z0 E: y) s. x  z4 K5 |" ~
      $notice_content = get_post_meta($post->ID, 'notice_content', true);) ]( a9 w4 p4 H2 O- ~+ K. P- N% \
      ?>7 Z# j3 ~/ L0 ~1 A
      <p>$ ~% C' w! l9 z# B5 D
          <label for="notice-title">Notice Title</label><br>+ f' z. E9 ^* w0 {
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">) L/ w7 q/ Q( O4 i: t, f
      </p>+ r6 B- J0 R8 W. ^/ x' E- w- c+ Y( h8 |
      <p>- p, K3 V! `: ~4 K
          <label for="notice-content">Notice Content</label><br>4 q# F6 U% O; c8 H
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>3 Q& X. k3 ~4 o; l8 k
      </p>
( [: }( W+ i7 b8 f7 [6 L0 o6 R/ w; J      <?php
+ C7 S; D6 `% E7 n" t   }( k( ~6 n. L/ v" i& \
3 g/ C9 C9 ]4 t8 u- }3 L" d% m
   add_action('save_post', 'save_site_wide_notice_meta_box');8 Z5 Z+ k  l" R0 z3 `# W
   function save_site_wide_notice_meta_box($post_id) {
$ @6 b! a2 f1 d; L& T) U2 P8 F      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))& Y% z. v* q* X3 g; X. h
         return;
! R* `" z0 U. z      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)( M$ E; P% d0 T( Q0 T4 X2 G
         return;4 ^$ ~- c6 o  @( X+ O3 z' h9 ]
4 ]2 D( i: D4 S0 W& h8 ?5 j# P
      if (isset($_POST['notice_title'])) {
1 h0 O! w3 u% T5 p! d" H          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
' u- b/ M0 P2 w7 A" I      }* q$ N( N8 \: O* E' o# Q
      if (isset($_POST['notice_content'])) {
4 @* Z/ `1 ^# V8 z8 Z          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));& w6 G  c8 N& T& F. g( l) E5 {
      }# |7 s* d4 r& K6 }/ j* V% w
   }
0 B/ X- f& c9 Y2 ^$ }$ E6 ?9 c   ```
6 D% z4 i: k/ Z3 M6 j' Y
: f$ C  i5 D/ V+ J' u% w0 |  O   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
! c4 g$ Q2 j9 t8 }6 \$ ]8 G8 Y7 y& d" o) ?! G! b0 P- O
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:+ n: A  Q& _0 v  `& k& A
$ s( T, `* J5 |" y  ^& e& u7 u+ l
   ```- w5 H+ b  G* d- x0 }
   $args = array(; F6 m, X# }, n0 {" h" h6 k: F
      'post_type' => 'site-wide-notices',
+ g$ Y% l7 E2 e' m1 ~1 ?: P      'posts_per_page' => 3,
6 G' J5 ~2 |- \! U! n  b/ D      'order' => 'DESC',
# r$ P( T0 I/ J; B, {0 D' Z3 k      'orderby' => 'date'
% U4 Y# v3 E0 g: D8 {% n4 E   );& s* \) g2 o0 L2 [$ z
   $query = new WP_Query($args);
% P7 Z" o" t4 n" |   if ($query->have_posts()) :4 p$ T2 i9 g3 z5 r( k1 Y6 E
      while ($query->have_posts()) : $query->the_post(); ?>
) h0 k! K2 r& a3 C+ P3 u1 p" ]          <div class="notice">- ?' O/ t$ j, `. ^) D8 d% l
              <h3><?php the_title(); ?></h3>
4 M; S7 M, N0 h9 h: t, C              <div class="notice-content"><?php the_content(); ?></div>$ ~7 _  S1 O: Y9 t8 G6 C( j
          </div>
$ R0 k/ Q) h( A1 G      <?php endwhile;; T! x( W9 K  w& `
      wp_reset_postdata();
# O+ A/ c3 g7 ]4 N   endif;/ H& n# Y. z$ K, F
   ```
) F- }' |9 R+ o4 {
2 Q( ]" z; {5 ?   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 17:48 , Processed in 0.015491 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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