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

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

[复制链接]

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
$ H( J; w% u% Z+ B8 K* D# s. {! @. M* J5 o
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。% x9 ^  U2 G; e
. a. D$ I$ _3 o; Z1 O( S( q
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。) X- |  o# r3 ~! g" \: b

4 p, B" M2 [7 a2 E3 j% h2 ~( G9 a3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
. ^7 W+ a. a' F" [- d$ t( }/ f
: Y. J- n( y  ~. i4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。. d; T  B  c5 Q8 H0 I8 l7 B# X- I

2 J. x" s# y4 m, N5 w注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
8 J# H+ ], N; s. {! X# C! H1 R* F  s, n) E% c9 c: m! B
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:# B  M- d, L7 S! o+ j2 Z
0 A0 m2 `. {- t& }7 H- k& ^/ F, F0 r
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:, e9 y7 o8 a' v$ N' Q
* p% D; O7 \$ ]5 c
   ```
5 \, q, [' g3 h0 V4 V1 L# O   add_menu_page(
, i, P0 W' b& W7 y+ m       '全站公告',* r" ?" Y" n1 {8 m
       '全站公告',
2 e- N3 C' A# c4 B       'manage_options', //需要的用户权限
6 ?# m# t: x( p4 J& j       'site-wide-notice', //后台页面的 slug
7 S, e/ B0 z' s1 Z3 D( D       'render_site_wide_notice_page', //用于渲染后台页面内容的函数! B3 G- N: G. V2 K4 ~
       'dashicons-megaphone', //用于显示在菜单中的图标+ }% p* m. u6 ?0 y, x2 L* h7 Y5 h
       30 //菜单项的位置1 N, C% ^: q. I
   );2 q6 @7 c4 A1 a; l- F8 b6 x2 \4 Y
   ```
, O: j! o, F$ d& W" [# U- m& W+ {3 U! H
" g& r. r/ b, {3 I' b7 @   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
; R1 G, W4 s2 H+ }6 Y3 c" p- q% r9 R% t
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:% I* b; t; \9 G6 _, d  u* r' J
% V% S2 y' J- c
   ```
- J+ S! K: }$ v0 k+ j0 B# l   function render_site_wide_notice_page() {
, [, t* x* i+ |* }; e$ ?- V      // 渲染后台页面内容
/ ~9 z1 }# H  H3 o$ ]! o      echo '<div class="wrap">9 X9 l0 W( ^4 d, ^8 q
          <h2>全站公告</h2>
2 H0 H2 f! Q! d          <form method="post" action="">
3 @+ B8 X. C/ t, v  S" |( X, X7 U) |              <label for="title">公告标题:</label>3 C6 W2 O) _# v) S
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>  ^' [# N: `. M
              <label for="content">公告内容:</label>/ L9 _; n! j7 _- n/ Y1 r, s1 A
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
& ~) F! i) A. G( R, D; Z. s& Z              <input type="submit" name="submit" value="保存设置">. R9 p* v( M) f/ w( j8 J4 `! W# Z
          </form>) k: p. l# m$ L* h6 q' n# ?
      </div>';/ b% s! W( }5 u( T; H2 R% j

- V) r0 Q3 h. q3 R8 s8 X) B+ }      // 处理表单数据
; E5 ~7 `0 h) M; k1 v9 T      if (isset($_POST['submit'])) {
3 W, O" h5 w+ Q: \; a$ S          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));& q  M3 x# U7 m2 V
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));& D0 e) ^( l6 z- `
      }
4 B' e3 q8 K$ L4 o0 V: j   }$ k, q( i3 h) {: b' U
   ```9 q4 p$ N3 C4 L8 |7 ?1 P( O3 v

5 D: T% _" T- E   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
. g3 I: ~) T3 {
( b  x% B& R3 i( Y3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
  k; I# K2 w, y/ a
2 D% I) D1 y, [- Z   ```) g/ P" e5 w% I3 ^5 T+ f
   <?php
  R) V$ X. p/ J. c6 B- M! J* u   $site_wide_notice_title = get_option('site_wide_notice_title');) W9 t2 P+ a! ], F* H& C8 ?3 }
   $site_wide_notice_content = get_option('site_wide_notice_content');
+ }2 ~9 P& C4 ~+ b! X( U2 F1 V' J   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
$ \# [' k1 l3 R4 W+ \, u       echo '<div class="site-wide-notice">';
8 f4 K1 x) t+ c  S& k) y; [; Q       if (!empty($site_wide_notice_title)) {; m1 j+ X' z7 T% e$ I) ?" X% e
           echo '<h3>'.$site_wide_notice_title.'</h3>';
4 m( Q8 m$ X5 m6 L7 H2 s, _       }
' d+ ^, u2 Z8 q  y0 T, ]8 o       if (!empty($site_wide_notice_content)) {
2 w+ ]9 e; u: @, o' R! t           echo '<p>'.$site_wide_notice_content.'</p>';
' B6 X" {* z: A% K9 j3 i' d       }3 q+ P- j$ q' G; }5 x
       echo '</div>';
0 S& F; t5 I; }+ u   }  U. \3 [, H# U8 n2 n
   ?># _2 R' }2 t3 d/ C' \
   ```
6 _8 W' C$ ~4 q* B, f# B
4 N$ O. i0 O1 L/ ^; O/ [   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
1 |2 Y7 D9 Z4 r) S
9 E8 h$ I4 ~4 a* y" k( u请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?; _& F+ Z* }% E3 {3 l" Q

6 q) r; _& t8 U) Q0 U& m2 ^+ |& C/ k您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
* y7 z) [* @0 k7 z; `4 `( n( ?! `
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:* U# M5 @& ?6 K* x2 D; I5 r

- V6 x# N0 f" b```& Q/ @4 w$ b- {# k1 n% T
function create_custom_post_type() {
- h1 G3 r4 L0 _8 a( y5 ]' w    $args = array(
7 p7 I1 i: s1 R. H% ^) U+ j) {+ C' z        'labels' => array(; ]9 `" y0 p# g( ?, F# O/ X
            'name' => '公告',
6 s) Q0 H9 f) T            'singular_name' => '公告'5 Q3 a( s3 U) y6 }6 `2 U
        ),
( S8 U+ H& i$ \% s- G        'public' => true,
3 ?8 }1 o. F& ?. N$ b) j6 X/ M        'has_archive' => true,; ]7 X: k0 t# ?% k6 S% t8 ^
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
5 _! l9 {/ d9 J$ {        'taxonomies' => array('category', 'post_tag'),- n0 r& j) l  v( o
        'menu_icon' => 'dashicons-megaphone',9 N: p3 [- J1 p" A) j$ O
        'menu_position' => 5,, a6 G2 m2 z( Q' Y4 Z3 K
        'rewrite' => array('slug' => 'site-wide-notices')# z, t4 _$ i+ \% V5 t! s. }9 i2 I
    );) }# u3 a& x" k* L
    register_post_type('site-wide-notices', $args);
' u1 [2 w" A/ w5 ^# ?. h6 L( m}
- ~5 J6 V1 j* Z& }add_action('init', 'create_custom_post_type');
+ `5 q' y- v0 N+ ^```; Y. K- s# x% L- a% |5 d9 C6 |+ U" q

# X% K+ F0 O5 S  A3 Y" Z  ?在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。4 p+ N# w" ^1 v" a

! U0 d- L! y3 O' G, q  x" ~2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
3 q: i0 \% H6 H$ M4 U' u( ^+ E
' _& T8 X1 z) [" m8 d3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
4 N+ o1 s$ _' B3 G+ K
, V% y% z8 W( r2 S```
( G3 ~4 U0 @/ W% l$args = array(( x" ~* h+ E7 M6 c: G* J8 q, T+ |
    'posts_per_page' => 3, // 显示的公告数量
' j% I- ^2 Q- f4 i5 E0 X  C0 U    'post_type' => 'site-wide-notices', // 公告文章类型
6 l- ^. L; h" `5 Z3 p7 I    'post_status' => 'publish', // 公告状态& v3 r' d( J1 ]7 K- g! P6 A8 V
    'order' => 'DESC' // 排序方式
1 l; J5 t7 V; s);6 M% ]3 z2 Y* ?- B0 f4 e9 ~- |

& j+ e% d5 Q5 T4 e3 H$notices = new WP_Query($args);
( O, v5 G0 u) P/ C3 y  Mif ($notices->have_posts()) :
. G  U2 ~. ?: \, p/ }6 ?    while ($notices->have_posts()) : $notices->the_post(); ?>8 [6 e6 N, }6 N. S# a* K2 z
        <div class="notice">4 ]) |# A2 I" A
            <h3><?php the_title(); ?></h3>
2 t0 R* G" ?. s, C            <div class="notice-content"><?php the_content(); ?></div>9 X" t" h1 b4 f3 |: B2 ^0 M
        </div># u; b4 }. r# [% `4 u* v0 x' p" N
    <?php endwhile;
. T+ |, M( o0 K& ]1 nelse :! |1 l: C# q6 ^, P- r' d5 A
    echo "暂无公告";
3 l9 |. b6 Y  A% K+ _endif;0 [5 H0 N& F3 N. y3 r
wp_reset_query();( H' I: {! y! l  O7 r) W
```
& |9 D/ p/ F( l8 M+ O2 l+ b( Z, I/ F- k2 d3 H$ v
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。, Q8 o1 i; d4 T0 B/ u

9 M0 s8 t, N6 M5 R0 i以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

331

主题

511

回帖

3347

积分

管理员

积分
3347
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
4 Z( n- i7 C7 \8 B( P: z& i
. R" W& @  W! }, V5 T如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。, j, J& ^1 I8 y! ^5 b, \

% W# P9 F, o/ ]3 i( d& f8 J( S以下是创建自定义插件的步骤:
* a/ @6 c8 o/ C5 t2 g% |* x* W' @
# d3 Y# ?4 F1 I; O- E- V; j2 g1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:5 g, O9 z7 R1 U( S% B
0 m: [8 E$ s' Z. j( i4 V& Q
   ```
4 o( ^" `1 `1 M, e+ K! I9 V, K   <?php  \( V# H+ B  B- D) z2 {8 H# a
   /*
' a4 l' o% X# N4 n4 {   Plugin Name: Site Wide Notices Plugin  R. k. x: M+ i: i" T
   Description: Adds a new custom post type for site-wide notices.
5 _1 o- m, ]* L8 ^) L1 A2 N   Version: 1.0' P3 Y8 U+ V& B& j4 M& P" o. `) _
   Author: Your Name7 S+ ^# s+ E; c- y9 T
   Author URI: http://example.com
& D6 V  x6 P1 W: ^   */$ F) N3 [" ~% O/ Z8 H) N+ t' P

# y  F% r4 a0 Y  N   // Add plugin code here...( x$ A+ d$ D& L$ P
   ```* l7 g4 I; Z! ~0 q/ z9 J

% e' e! f- u) g( C3 Q  R   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。% s1 @  v3 O/ O% _
; Q& Y  t5 Z9 K* m2 D8 C5 p5 p
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:& ?" Z  G2 {) k- E' A' `

/ b/ n5 W) o( O( d   ```
! |0 p! }, ^5 s0 e4 G' Q   add_action('init', 'create_custom_post_type');
$ Z! w/ e% }7 ^   function create_custom_post_type() {7 E' e  g# Y) i3 m
      $labels = array(+ T  t& d7 I) F& H
          'name' => 'Site Wide Notices',
' Z# w: b; D, v1 n' M, n, D          'singular_name' => 'Site Wide Notice',2 f/ Z; ^0 X- a/ V
          'add_new' => 'Add New',  I5 w; g' a& D% w  x$ W6 {( f
          'add_new_item' => 'Add New Site Wide Notice',
' M$ h/ Y/ i2 p' q- v. L2 S! ~          'edit_item' => 'Edit Site Wide Notice',
* J+ F6 y$ Q1 p3 |- @( [          'new_item' => 'New Site Wide Notice',- ~4 H; i0 _) f2 s
          'view_item' => 'View Site Wide Notice',/ R3 k+ f' v$ }5 ~1 `
          'search_items' => 'Search Site Wide Notices',/ d; R/ V6 }& f8 I0 M6 T
          'not_found' => 'No site-wide notices found',$ d- b7 b  {5 w9 k* V
          'not_found_in_trash' => 'No site-wide notices found in trash'
) @% K% H0 s/ p) ?* W      );1 ~8 M) }- p0 y1 I

. Q$ R2 s+ W/ ?0 @3 k, z      $args = array(1 O$ o6 J& O; Q3 z! F: H0 o
          'labels' => $labels,& _" l$ p& Z. P  w: R
          'public' => true," [3 g5 i0 e) r1 ~/ i8 g7 _
          'has_archive' => true,
1 l5 h2 Y# P$ h/ `) O4 c          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),* ]5 `  w9 h0 u2 j3 K9 K
          'taxonomies' => array('category', 'post_tag'),- C, m+ b% ^2 s/ t7 O; u0 s8 n
          'menu_icon' => 'dashicons-megaphone',) o' k+ ^& y1 A; W4 _9 A3 N
          'menu_position' => 5,
$ w% J: d/ m; q+ l! ]          'rewrite' => array('slug' => 'site-wide-notices')
0 b7 K4 \- h- i3 r  L! O' c5 r      );
1 p$ C7 @3 ]& v2 [0 w: v/ d! Y# _0 M, ^
      register_post_type('site-wide-notices', $args);
7 G0 c5 m( m0 S) r) h  A2 A   }/ m: s3 m# U, R" Y$ E
   ```# Q, n7 p6 `- Y
/ Z4 a; W5 i8 u- S4 g6 a
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。! @( Z0 R7 Q6 G& A: F& ?
/ ?, K' W( R6 Q4 x
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:2 y/ ?6 R- @; d1 d# j, ^

3 R9 E$ K* Y! @: k& d) ]" b   ```1 T: n% Q3 [5 B# z" d
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
, k$ X3 y9 U0 m+ T   function add_site_wide_notices_boxes() {+ R+ ?9 j' ?( J+ m" s# k
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');* ?, `" C+ V; \; {2 k# K
   }
, S( g" O& y7 n8 {0 `  V& d( ?
( m4 E! O) }" q) X7 v0 o6 q   function notice_details_meta_box($post) {/ n' y2 p/ A; e
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
* m. s% L' {. l0 m( p; i2 b! A      $notice_title = get_post_meta($post->ID, 'notice_title', true);7 |# f8 ]5 E0 F3 Q6 ?
      $notice_content = get_post_meta($post->ID, 'notice_content', true);" k& i' d+ \) ~/ l) t  o9 k) _& S5 Q
      ?>1 r8 N; c# }& G3 C
      <p>
$ [3 ~/ t& h" i) ]          <label for="notice-title">Notice Title</label><br>
& f. G1 N" P5 r7 e% `          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">  n- L% t! ?3 J- l& o  Z' j
      </p>
3 m% ]0 M9 I# d# a! z4 T* l; Q: d      <p>
' {- \, \0 Q  S% S& D( L7 U( d          <label for="notice-content">Notice Content</label><br>0 ?0 _3 R# j0 v1 t( K7 m+ e
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>1 O: l* V! n0 P2 `+ `
      </p>
+ N! g5 g  K  j: F! F      <?php% x+ m& C1 O5 k. y
   }7 x: ^. I1 g, H8 P4 z
1 J% O* a; G9 w( y* ~* m' ~
   add_action('save_post', 'save_site_wide_notice_meta_box');
) ], w0 _% {2 t+ u/ j, y  D( ?   function save_site_wide_notice_meta_box($post_id) {6 U5 ]3 i, m) y
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))  N2 H) }3 {( z+ Z  H4 J
         return;
6 M2 v- p5 Q5 b. X7 h+ n  i6 y7 B      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
" Y4 F; V9 P+ V0 F  `* B6 ]         return;+ Q/ C0 l- t- f, U) i

4 O: g5 @$ j0 {$ D      if (isset($_POST['notice_title'])) {
3 i: ]& A1 X# i# I          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));8 c; \# b& u6 P! T& a1 v' O
      }
: Q5 P# G4 Y. C9 w" G/ |7 O      if (isset($_POST['notice_content'])) {
0 b  u, U5 J% z' l/ R% G( n          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
7 E1 {1 X1 C7 s3 J. v# P      }
" l3 t+ S3 i1 Y7 j( X! z2 E   }) p" y1 C* C, [7 s2 a+ {' k
   ```3 j9 J% S2 W  v2 t/ v/ V: a

) Q( k/ D. V4 W" t" D, j' I, M/ [   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。/ [8 Z/ u+ k$ Y. r8 D& V

  X! u, A. `: \) |# _4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:) g  H7 m, D" M* u4 d% @/ {, q* o

/ f9 O! i6 L- k& t   ```
3 X2 Z2 C9 t- D1 }- ~: @, y   $args = array(
2 [. e. k5 K* C$ M/ x# q9 F      'post_type' => 'site-wide-notices',+ O+ t" i+ t3 R! f! x; @' |. i
      'posts_per_page' => 3,( x" U( \& B. v, K$ }5 F, A& T% G
      'order' => 'DESC',
  N$ g- w  r, z0 ]' m; O; z      'orderby' => 'date'; i# _  K! d4 F( B+ F' E
   );
+ m0 C3 c) R7 H   $query = new WP_Query($args);
/ W5 m/ l3 S. t# W! U- Z3 c   if ($query->have_posts()) :
7 b5 V9 n" N/ E7 g" x7 @      while ($query->have_posts()) : $query->the_post(); ?>
, V3 l- t# X) i          <div class="notice">
* m- B- k+ L" Z6 E6 A- t- ~9 ?2 z              <h3><?php the_title(); ?></h3>
5 E3 l# g1 @! R5 s# D9 w0 K9 C; n  f              <div class="notice-content"><?php the_content(); ?></div>( [8 u5 }( x' @* h. @
          </div>
3 J8 j' W- W  R% K% d1 f% O- D# b      <?php endwhile;
4 q0 S1 q" C) K: E$ w  y      wp_reset_postdata();
; G; u  D) P# D: c7 I; C8 {7 R. C   endif;
& x9 _. W. I: A   ```4 N% s0 p" `: {9 F; G6 ~

* V0 _9 i7 U2 ~- s9 Q! F( m   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|通达产控投资 ( 粤ICP备2023021749号-1|粤公网安备 44030402006137号 )

GMT+8, 2025-11-16 05:26 , Processed in 0.070934 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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