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

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

[复制链接]

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
# P$ G0 ?0 f' x7 R
' P" n; Y& q/ i) ~6 [5 C  [1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
( k! ]& _9 ^2 I) X  t2 F3 |) i" }. P$ M  e
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。4 S, d1 l6 Z6 w# O1 S/ _# x
) i( v( t) d: M/ P7 P8 D$ f( Y
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
) k7 d8 W+ g6 f) z; H" a/ L  u: A$ L; ?: D) q' a- N6 Q; @; J
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
5 u# i* G4 g7 u5 I9 d6 `3 M" n4 k9 z$ x
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
# p$ G2 ?+ w; l# K4 K9 v: g+ O5 K! ^' C6 F" e, ^
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
- W4 z# [, q, O) @2 Z( [! x: s' {8 {; A+ {+ I2 ~9 z1 _: z
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:2 V2 k& f/ ?' e/ S+ l
0 Y8 K+ `1 M6 ~
   ```5 l5 R, _+ x* Z" ?8 I
   add_menu_page(! v2 J0 y* v% ?) U7 I4 Q  {/ d
       '全站公告',, p# z' `1 X2 U7 A6 J( I
       '全站公告',
$ q) v/ e9 z# m& o( W3 y4 x9 w+ q. R       'manage_options', //需要的用户权限
0 f' i6 x1 s" M9 a, M       'site-wide-notice', //后台页面的 slug
9 Z0 ?! D6 B+ J; `4 V       'render_site_wide_notice_page', //用于渲染后台页面内容的函数8 S( [1 k! T5 h+ O8 b! r& e5 D
       'dashicons-megaphone', //用于显示在菜单中的图标, L2 O8 m. \* t
       30 //菜单项的位置. V1 z9 C6 N5 m# h6 w! ~) ~. A, _0 u
   );
( O) m  e3 O  E# a- k2 ]   ```
! X/ L) @, z2 u$ a1 u6 Q) n& A# L' ]1 C( ?
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。& D+ N. x: l5 ?( X4 R& @
% c4 \, K. ~7 F; G8 d9 e6 z2 l, ]+ z
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:2 i/ z, U' f3 o8 ^" {2 X

9 G" @% h, ^4 Y, S) O9 A   ```, w6 a4 Z# c1 Q6 M+ _- i5 a0 b4 u7 e0 ]
   function render_site_wide_notice_page() {
; N: ^: V% c( \, O) [( w      // 渲染后台页面内容
8 Z8 y: M% E+ I* Q3 Q6 p      echo '<div class="wrap">
" d; U) Y. G; Q. W# i          <h2>全站公告</h2>
' j$ {0 q; E" O$ [9 J- a5 F          <form method="post" action="">1 \/ I( l7 d$ G
              <label for="title">公告标题:</label>& w4 Z% z; K3 G! F5 T6 Y/ G1 T6 K
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
3 ^0 H# J, m* D$ M# H& x              <label for="content">公告内容:</label>* J# e7 i# L9 o: C4 Z  Z8 q  U7 i
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
, R& [9 p5 V- n; h/ z: u/ c1 v2 T. N              <input type="submit" name="submit" value="保存设置">
7 W# n2 h" ~- W) D0 ]& f          </form>  P  Y' V% S1 t5 {
      </div>';
# q* @9 k; |4 Y. m' \( x
- [/ j0 K! p( C4 [- B# A      // 处理表单数据
# u7 m! I6 v5 {. K0 Q      if (isset($_POST['submit'])) {
) n" C: A  a- Y) c) }' q          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));' b' D% a& w" P" [# H& S
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
/ S! w' ^' i( V; l: G- ]      }- L% t9 Z, w, h! S0 ~+ H8 c$ p
   }$ M  j4 W  O8 R
   ```. @( b# p8 F  L) Z9 w/ w
+ f' l2 V5 q% N
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
& c$ a- p& S8 X9 K3 p. d
& x& C+ O5 v- I6 f+ K% X6 O( H! U3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
) j8 Y, f- k6 D0 Q% G* x
: M0 w) f0 ]& I" R- y   ```1 G! o4 s& ~8 K& Q6 x" e
   <?php
, i% I) g- Z4 J' K6 Z   $site_wide_notice_title = get_option('site_wide_notice_title');3 D* n0 j, @2 f- i4 V
   $site_wide_notice_content = get_option('site_wide_notice_content');
" t/ m0 h- V6 e5 {$ ^" C2 x   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {+ R9 H+ `9 N+ c# X& z
       echo '<div class="site-wide-notice">';
9 T& o9 l" d2 U% E& t       if (!empty($site_wide_notice_title)) {' L6 W: f& d7 i- B4 h# c4 H
           echo '<h3>'.$site_wide_notice_title.'</h3>';
* Q8 p$ @+ l8 H% F5 j: ^: o       }8 _" z; W% C: M6 h3 R, I
       if (!empty($site_wide_notice_content)) {
' y4 C+ q2 D" s% K* }, N* T/ E% b           echo '<p>'.$site_wide_notice_content.'</p>';( u- q2 V" l: h' U( p) J
       }( M% z  |6 l4 ?0 ~, }+ N
       echo '</div>';
! a0 i! e6 l9 \5 M0 @+ C. v. u1 b5 M   }
7 @! O, C& f) o- Q6 |   ?>
6 {$ M  r7 o- x2 {3 ~3 V   ```0 N" G' h7 D& n7 M
# f" y1 [9 F, e4 x
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。8 A2 i1 ~7 Y2 W7 o( B% t; p
9 J! ~3 M5 [$ r4 _$ u" G7 W3 Y
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?. I. l9 E7 d7 N4 J. h9 F9 [: ^

" p; C+ g; m% E5 w- y2 a您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:+ Z$ M; `4 U7 w$ {; t

" V# X+ W3 n+ I4 F: D0 C2 G1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:! x$ p( T) w" {1 U: A! J2 l
: ]1 [, D5 O( i6 {
```2 h! C& _8 Q: s2 t
function create_custom_post_type() {
1 _! h) h$ n5 h( L, l5 R    $args = array(4 u2 ~7 i/ [" T3 s% ]
        'labels' => array(# \2 v7 d- \' ]
            'name' => '公告',+ ]/ g& {3 l  c/ O' r" C
            'singular_name' => '公告'$ F, }6 \+ G5 c4 N7 a
        ),
. p& o) N( @1 X: k  L        'public' => true,
7 e8 r6 `5 b' `) ^! K        'has_archive' => true,( `5 o) [8 G" P
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),) M4 x& D& X" X. N" x7 u7 Y
        'taxonomies' => array('category', 'post_tag'),
0 U8 M: E' u2 P0 L, V        'menu_icon' => 'dashicons-megaphone',9 N$ c5 H9 T. h6 e5 i6 {8 [
        'menu_position' => 5,. B! o$ B9 [% [2 m
        'rewrite' => array('slug' => 'site-wide-notices')/ ^0 X* m. j! k, }9 I6 r
    );/ x. Z$ r: z; Z8 e/ x0 s0 D0 ^  J
    register_post_type('site-wide-notices', $args);
% g. e. b* R$ V' l( X2 s/ g. y}
9 \8 L$ K, G  B6 G7 W$ Vadd_action('init', 'create_custom_post_type');" R4 K* Z# r* F( `+ c
```
% P! k; `6 x4 |$ t6 D6 M" I
9 G& m- d4 _$ A2 m8 w2 H在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。  K2 T. D! d3 O7 ]& c
6 X7 _1 @! S) t/ `6 O
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。& y  m% H8 V0 r/ I, H4 p1 U

6 K1 d/ a% Q: [) J# q3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:  @6 {+ s! o7 c  T) V0 h8 F& n
( ?% V4 R9 x9 U/ ~
```- o5 d1 [# X' d" f9 c
$args = array(7 ~& w5 k% c' G: _
    'posts_per_page' => 3, // 显示的公告数量) `- G/ }; N. r" A; Q, Y  a
    'post_type' => 'site-wide-notices', // 公告文章类型
; C, t1 Y* U* O# o- ~6 {; V    'post_status' => 'publish', // 公告状态% V9 j* N8 N+ |; G
    'order' => 'DESC' // 排序方式7 c, K" `/ E* Y; `" i: l. s
);! o, m  a! u6 u6 G* H
! R* \! _2 Y% a% t" H, F) V
$notices = new WP_Query($args);/ g" M( P4 h2 O1 {0 L, M) q  Z
if ($notices->have_posts()) :" q: d3 ^* F5 ^  s& L3 _' }5 ^
    while ($notices->have_posts()) : $notices->the_post(); ?>
4 l2 s) F8 H9 c* Y+ C" T/ z        <div class="notice">0 Y" E9 S/ U' [' g, s
            <h3><?php the_title(); ?></h3>( ~- }; k, i& M! N2 P' C1 b
            <div class="notice-content"><?php the_content(); ?></div>+ O$ _3 U! p8 x: v6 [
        </div>
  [$ O( I. M! v" ~    <?php endwhile;+ w% T8 [) y; M7 I  j
else :
# `, B9 T, \& C# [5 z3 N    echo "暂无公告";
- Z& o6 D5 F7 M# A) a8 ]% J  |6 [endif;
0 A4 \2 H4 X0 N" v+ ^  e4 Hwp_reset_query();
: h& _. W6 O% @" w```
) i$ g6 k- t' m" E, G# ~3 H7 R+ o% ?& F6 ~) O3 f1 K( f
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
5 F* V) c3 R0 B3 L5 F
, }$ ^/ U5 g9 x5 r. f0 Q/ W5 _3 G/ t, a以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?5 M* @3 k4 Y7 B- E5 {/ ]5 P
- K3 w: J+ i4 G$ p  t
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
  |% I' R, ^/ V% d  q8 u6 s. N1 a7 f% d; E" L7 v9 g" `) c, ~
以下是创建自定义插件的步骤:' b. m0 f: H; x/ C9 E, U3 c% C1 E

: w: R1 F% G8 b" C  _1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:5 n! K* R. n- c/ q9 m! j
7 O7 N0 D$ S4 U8 D3 I! _
   ```
6 _$ ?/ d6 K  J% {   <?php; X' b; R4 n$ B+ l# o) b
   /*/ @4 D- J( w9 ]8 ^: z  E
   Plugin Name: Site Wide Notices Plugin' k7 V' \0 t* D1 q, N
   Description: Adds a new custom post type for site-wide notices.* F9 }- }; ?. y# e, j
   Version: 1.0
$ e! a$ E) _* g$ H& x1 H3 A( ]   Author: Your Name
. r% c1 i; e* T   Author URI: http://example.com5 Z9 @% J- m! F7 B; K% Y% }7 v
   */- a0 Q) z; h( e; |

0 H4 r$ q# p! g0 ]: p% p" _6 c   // Add plugin code here...
& C/ O8 Z' q. v1 j) F; ^) V   ```4 m7 R5 M- m# H( F* `  u) G

* s$ k" ]: k( Q1 O( K   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。5 l1 @& X" `  u) \* L$ a
( h! A  C! Q+ G/ j1 }7 P3 ], z
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
4 p5 E2 G) K" E4 A
2 k% O+ j5 s7 V: {5 L   ```6 X# K' l& f8 O  x$ {
   add_action('init', 'create_custom_post_type');
# o3 W1 }% `- S4 |, X  d' H9 F6 C   function create_custom_post_type() {  G5 V& M& A: \- N6 H! B/ L
      $labels = array(3 L$ E- F: l( E  R& P6 K% B$ x
          'name' => 'Site Wide Notices',$ p* e( O4 e+ ]2 S* S) `8 }2 c
          'singular_name' => 'Site Wide Notice',
  C, u( S1 ?8 j/ N$ P7 i9 l- {          'add_new' => 'Add New',
! f* v. e& ?9 T  ^% j9 f2 M          'add_new_item' => 'Add New Site Wide Notice',
9 a# d0 M- @) T! r+ ^" \: |6 P          'edit_item' => 'Edit Site Wide Notice',/ k; X! i0 R+ @! p# P) l
          'new_item' => 'New Site Wide Notice',
- ~5 O/ Y5 n/ q7 L          'view_item' => 'View Site Wide Notice',
; f. j0 x- ]6 ^. e, h5 x( q% ?# \          'search_items' => 'Search Site Wide Notices',: ], z: e0 f7 G( B$ ?. u
          'not_found' => 'No site-wide notices found',
3 [1 T' R( O7 w/ o8 V2 Q$ @( ~' m. F          'not_found_in_trash' => 'No site-wide notices found in trash'+ k0 c; R! G& F. Q7 p
      );, c. c( E* x' c& x# v

4 Q* e  g% z% G7 K' W/ a      $args = array(8 K4 d) i/ S% j, n# A: Q
          'labels' => $labels,
/ T- d4 G4 y" q% d, k          'public' => true,- s1 L/ v# I1 a# b7 ]7 W
          'has_archive' => true,) Z. M) r: k' {
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),4 I; D% L( X& y% P! b0 \7 j
          'taxonomies' => array('category', 'post_tag'),$ O( q0 x5 m% a5 y/ M: A; a
          'menu_icon' => 'dashicons-megaphone',5 m! P8 B8 T% D( Z0 R0 _
          'menu_position' => 5,5 F; w' y9 a7 [! p: F! v" S
          'rewrite' => array('slug' => 'site-wide-notices')
+ t3 z: G; D$ }9 C      );. Q1 `0 d3 I" l/ r( @! {, J
3 k6 }' W; B7 L  w  y; h9 k8 |
      register_post_type('site-wide-notices', $args);
+ t) O* m2 `2 O   }' G7 O' Z: [  o, ?! f* y
   ```- S7 a  l- }9 b& e
& O' H, C( f2 |/ J. J4 Z! n
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
! n, _$ S/ [, z+ Q# @8 |( j; C' H6 j" d" `8 s7 y$ L, C* A
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
( m* w  M; M9 K  t& ~: ?7 S4 G+ ^0 s+ l* B! B# Y4 I
   ```
8 t( R9 W0 D4 S4 H  {   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');! k+ J" x% }3 R- \: C2 e$ q
   function add_site_wide_notices_boxes() {' A( Q2 S( E5 |- j
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
$ ^* t( I3 V# u: u' R6 v9 y! A   }
1 R  W  D& o6 N# Z  f* U& [$ `5 n- t+ ~, _$ H, J
   function notice_details_meta_box($post) {( N; y* |9 h$ `; c2 ^% N  F7 l4 L
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
* E- R, Z1 M$ l- K      $notice_title = get_post_meta($post->ID, 'notice_title', true);
/ |9 R( S4 x! a" h8 i      $notice_content = get_post_meta($post->ID, 'notice_content', true);
" O$ q( b2 c  a  f7 i      ?>- [& \  _2 Q( ~% F
      <p>( n4 A/ o3 p9 L' K8 [
          <label for="notice-title">Notice Title</label><br>+ E+ S$ X  K  N' E- h
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
. f* C9 z6 L( o' j. t5 v      </p>2 d8 [6 ?! n8 [% }6 K# i* b
      <p>
% y; [: B1 w+ e" t. M( g          <label for="notice-content">Notice Content</label><br>  D/ K. T4 b2 o6 M
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
8 o; Y$ _2 E, o7 u# Z- y+ z/ \6 R- |9 U      </p>
* B9 C7 o2 f5 ^: Q      <?php) y4 C& p# {( ?0 _, x# L
   }
) _/ Y% u0 ~# K, y3 i6 a* p* @; b. J( H# n
   add_action('save_post', 'save_site_wide_notice_meta_box');! g" ?7 c: V# }, U, B
   function save_site_wide_notice_meta_box($post_id) {
0 H0 o( D; i# ~, {  N( a  u      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
, q. _2 @" U- ^/ w         return;
5 n( ]0 I; u# h3 K3 N  R# B      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
2 M" x: A% o( o         return;
$ T" S1 S. D/ @9 C( a$ W# p, H# e
      if (isset($_POST['notice_title'])) {" P' |$ q' m+ U
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
0 ^5 w6 A- o: p1 ^* [      }
  R  m$ N1 G; H" v* F- g      if (isset($_POST['notice_content'])) {6 h( E) d. K* y9 Q6 V6 t$ [. ]# l
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));5 }2 \" s; h, v* B4 |
      }4 K4 Q8 [6 j* T4 v. \
   }
) ~& d+ `8 J$ B+ W$ K% e   ```
" P1 N7 P5 X* x% B# O* {4 N4 g$ ?" M: O* P2 I* q9 X- q8 Y
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
4 o; D5 h/ `( [2 {3 D8 {
; R8 c" v( w, k" X( _9 z4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
$ x1 V9 j: y# H5 v( K) b, p" w4 l1 y. |7 s, M
   ```
8 N& ~2 Q3 p1 A1 x! T   $args = array(% K  P8 l2 R  s6 Y5 ?0 O
      'post_type' => 'site-wide-notices',
" Q) G% Y' o  i- Y/ a! H+ m      'posts_per_page' => 3,: v+ W( ?, A8 |  M' j& s
      'order' => 'DESC',
  j: Q5 @- O6 g. e: t      'orderby' => 'date', {: P% R2 T7 @3 a8 r+ w
   );- A. g$ u5 x: ^+ q' D) G
   $query = new WP_Query($args);
2 B5 K3 d5 v3 |   if ($query->have_posts()) :
( }4 f0 i% l5 i* f. a8 T* P      while ($query->have_posts()) : $query->the_post(); ?>
5 l' J( A8 J% K6 y4 Q          <div class="notice">
( e$ R. J" T' D) R- ?1 \! K              <h3><?php the_title(); ?></h3>
1 v" \8 c4 t' k              <div class="notice-content"><?php the_content(); ?></div>
5 ^3 p3 |! s; n& e$ ?: f          </div>
- m$ `4 B9 p' D/ \. a5 k      <?php endwhile;
; t7 r: H; r# \8 }      wp_reset_postdata();
* S7 w1 P! S( T, i% T0 u, d; A( ]   endif;4 b* }0 P9 n6 p; \8 y. W. W& U) ~
   ```0 ~5 d' u# @8 L- s

% k/ i0 f9 p, z: X9 N2 d* i- `   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-3 14:50 , Processed in 0.017434 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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