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

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

[复制链接]

335

主题

520

回帖

3431

积分

管理员

积分
3431
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
1 l! l' Z; _, P$ o* \  Z- R4 s) x6 i
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。0 J! g( Y9 O# a/ p- }
: Z9 a& P+ U5 b. J7 w8 R" M
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
) Z4 X+ d0 k7 [1 E
' B! ^8 W9 x: u" N% s3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
* i' P* O6 a- ?# P6 d2 ?# E, Q( H* g# u. w' a
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
0 q0 A8 m7 W- G+ W% T- E$ }0 S1 J9 O, E
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3431

积分

管理员

积分
3431
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?, ^1 C: w, }6 j9 x; M, v
# n2 K- H" V# R$ q4 s# t+ r
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:5 g3 l' r7 v' f5 m* N; d; A

5 |: B$ D# ^4 ~# v2 N1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:: P, I; Q4 ^5 @) h* _: n- B

; c! l$ u: O" v9 I' W   ```, x7 @% z  i& }1 o$ n5 V* P4 b
   add_menu_page() p, U* c, L: h. m
       '全站公告',3 z+ J8 ^. U3 O5 ~2 _3 p: {
       '全站公告',. h5 v9 p: g& _. p
       'manage_options', //需要的用户权限
2 R2 @) z2 t( W+ s) X/ c' T       'site-wide-notice', //后台页面的 slug
4 U! F1 N: F/ s/ ^* t+ X       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
& S. L: R" Q2 M: _       'dashicons-megaphone', //用于显示在菜单中的图标7 c. D8 ?7 g! r& r% J( |) R& F7 }
       30 //菜单项的位置
8 H, y" o8 ?. Q3 c) t   );
! P6 T* a- l2 }, j5 N2 I/ p   ```
/ e+ G+ v- O) {. S5 c3 E) G8 O/ g8 L! H1 L
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。- p, H+ x) F1 s- d* t7 Y% Q
; e' X4 c! r' _. d+ L/ n' B
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
% U) @) ^3 ]" {8 F# ?1 j* p' h3 B- @3 L* n9 Y
   ```8 b( o) ~( N( e7 {
   function render_site_wide_notice_page() {( D2 u+ O: M+ ^4 I
      // 渲染后台页面内容1 ^8 Z* b& L6 e" G2 g
      echo '<div class="wrap">
* W" r& i  ~. u          <h2>全站公告</h2>. d! {6 Y- X# S. s7 y7 t
          <form method="post" action="">
( P! ~: N; c* V# F. u6 v              <label for="title">公告标题:</label>; n1 t7 j7 V! G0 V7 r
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
  i6 K, y. M& Q6 x  G) _6 n) N" p              <label for="content">公告内容:</label>1 R* j0 B4 C6 f6 \7 m/ o3 x& h
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>, Y& z1 T) Y& r
              <input type="submit" name="submit" value="保存设置">
( t# c4 C* P7 j6 [3 \( n3 T$ h- ^          </form>
# h2 n: c, H% e+ q; m0 B- N* v      </div>';
  u# b2 X" ^$ g9 S) G2 K1 e* E, q: \3 m( p, U
      // 处理表单数据
# {$ I6 `! [* v- m9 m1 l      if (isset($_POST['submit'])) {0 }1 P* i. z' o) I8 h+ t6 e, Q; T
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));, D: Z% W3 V: L! D3 U  V
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));# X, {) G( j+ p& c) T
      }
: d. `+ V& [" a+ F5 P) g. |! k   }8 E# d7 R/ H+ W* ~6 G3 h0 D5 m3 l
   ```
$ {/ H: Q. c5 U# h' |1 N6 U/ c" E4 b6 j
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
* \7 }2 S+ i& l2 v2 }, u7 p$ [8 c6 {0 A" ?1 I
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:0 y6 i# _8 {- `7 A

, ?8 p& n1 H7 ]) H   ```5 `9 Z) W# d8 Z* i& G
   <?php
7 J, f+ u! w# M' D8 m+ X   $site_wide_notice_title = get_option('site_wide_notice_title');
1 p! I% S0 B6 j- }* y( p6 z  X   $site_wide_notice_content = get_option('site_wide_notice_content');) N/ r% p! j7 r3 x( c) ]
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
+ \1 P: Q' q% t" N" k7 v1 S3 Y       echo '<div class="site-wide-notice">';
3 ]. M/ s. Y! h8 ~       if (!empty($site_wide_notice_title)) {
' \1 q/ M' C5 n. k1 Z  Q5 U           echo '<h3>'.$site_wide_notice_title.'</h3>';
+ Y& ]9 s# s+ m- w7 Y) x' \       }
+ u2 g$ C" U. d) d# I& i1 V$ S- D       if (!empty($site_wide_notice_content)) {
! w. K6 S. ?" D( m           echo '<p>'.$site_wide_notice_content.'</p>';7 q" o) A9 @# w5 S
       }
0 v, P6 p- e: ~0 L7 u6 U. N       echo '</div>';
* J/ P* C- C/ w   }
- o# D% u  Q; \! i& ?8 l   ?>( p, O4 [% L( I' _( j' `! A
   ```
# ?' c. I" X2 [/ N3 X8 Q9 M1 ?: p# ~2 ?4 }: I$ d5 H. l) Y
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
  r, X. Y1 T- R% F' o0 G+ z+ o* q/ t- c% Q% B/ A: q0 e
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

520

回帖

3431

积分

管理员

积分
3431
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?# D$ E# c) z# F- e$ H* l; j; K

5 ?: t0 N9 K9 E您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:2 J, ~6 E& Y6 b/ e7 L6 c+ x% c, m# i

. O- x1 u) E. H1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:- S" p+ V$ i: |

: t1 @2 A& ]* E* R5 l! }```
: }3 d) \; `( r" p3 t" Dfunction create_custom_post_type() {7 a  o8 M: E, I# J
    $args = array(
5 c4 Y  ^. F, K4 h        'labels' => array(
7 U" e9 u# G, F7 M$ _: a( A$ h            'name' => '公告',
  O, O+ A# k$ Z7 J3 f) k            'singular_name' => '公告'; H* }% \1 D+ g- T
        ),
1 b& u; i" t$ v9 {        'public' => true,/ f( |/ ]+ g/ g0 j  i0 _
        'has_archive' => true,
- |1 H* z; [: ?8 P/ g! y0 b6 K* d, d        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),) u! C" O! ~3 |
        'taxonomies' => array('category', 'post_tag'),
" j2 a5 `- ?+ K# X) l" ~        'menu_icon' => 'dashicons-megaphone',
0 Z+ O8 ^6 x7 k/ n- ?/ }/ b1 L7 }        'menu_position' => 5,& M2 J+ \+ ~0 _2 O# r5 D) ]5 Y+ u
        'rewrite' => array('slug' => 'site-wide-notices')2 d. `1 w+ ^5 B2 O4 v
    );
3 f7 h) c# \3 G$ k    register_post_type('site-wide-notices', $args);+ _2 f# Q, L+ Y, W& H6 J  x) E' x
}
+ C" C3 j0 f$ X+ Z; G3 gadd_action('init', 'create_custom_post_type');$ n% U" ^: P, L! {0 S
```
8 l0 e/ ^5 Y- W% Z
, i) x& p* F1 W. Q在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
1 y3 f% t  ]' M: B6 r& U- R3 I
9 O9 u; y% @3 ~8 S  x' i2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。" \: e0 X. Q5 A* G9 I

& V1 i, w! p4 R3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:5 ~4 X6 D  F. d% T  A8 w

% w. R# J$ I$ H6 q3 p, x```$ b5 [5 f  H. l+ @! I+ O
$args = array(7 b3 ~- Z( V) a: i2 O5 E3 n
    'posts_per_page' => 3, // 显示的公告数量  D0 R7 m* g- a# h
    'post_type' => 'site-wide-notices', // 公告文章类型
0 i9 `- U5 u2 F1 L4 C9 ^' @* u: q8 d2 d    'post_status' => 'publish', // 公告状态
# Q2 ^$ `- m  o7 l& R1 T% t7 k    'order' => 'DESC' // 排序方式) l6 F* j8 a% n2 r& a
);
2 `: P, G1 ~; S/ [4 v: w7 V% e8 Y3 ]  |: h, W; N
$notices = new WP_Query($args);8 F/ k3 ]( R4 I& Z! b5 I4 u1 C1 |
if ($notices->have_posts()) :9 K6 x9 R  r* P: q9 `
    while ($notices->have_posts()) : $notices->the_post(); ?>9 [7 M. Q( v+ U* r& U
        <div class="notice">' v' O) t& L% m/ K9 I5 _! B
            <h3><?php the_title(); ?></h3>6 }8 Q! M) S; `6 n
            <div class="notice-content"><?php the_content(); ?></div>/ f, Q4 U  A! o* Q2 R% G
        </div>
( b% e  _! k/ e/ c0 k+ p3 q" z' D    <?php endwhile;0 `% |2 f  ^9 t
else :
! ^$ F) x( P9 H    echo "暂无公告";3 W, @8 l3 U; {. D
endif;
- `, ~) z2 K6 y& U6 Rwp_reset_query();- y, G3 o& O0 a/ z7 N$ E# E' R+ z$ z% `
```
; {1 O! J& K5 S, ?: r4 N% X) W' F! t  u& j" E7 V
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。) A5 f6 |7 ?; D  s
# Z' A) \" e% v& d) ?% d8 Y8 l( M1 p
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3431

积分

管理员

积分
3431
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?2 X7 S) f" u; Y/ [3 ?- D' c) \* u
  U4 ?" Y2 e+ S. r  q7 L
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。( M* n2 b3 H4 M+ N: g

2 }3 e. n7 _3 D$ W8 a1 g/ I& _以下是创建自定义插件的步骤:
; s: W4 c$ |3 E( ^, @) x$ k9 |
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
1 N" m! n: o5 u% M- w9 t! x! f! D! i  u
   ```8 L0 ^; K/ |* m5 m$ T5 S
   <?php
" I, m; Y3 S# G' m2 j3 m, s$ r   /*
4 H. a5 n6 I# q   Plugin Name: Site Wide Notices Plugin
1 C" ?" }0 ~1 H& p) b: e+ Z   Description: Adds a new custom post type for site-wide notices.
0 @& `3 ~& W2 G1 Q# J. ~! ]   Version: 1.0( i5 L- x9 r; c! o9 J! o
   Author: Your Name, Z1 P; U7 ^4 U+ I% W. h
   Author URI: http://example.com5 x- A$ [: Y: \+ P  t" E9 v
   */1 m0 g! n5 O2 [  M
+ L" w+ _3 j4 w7 c; y  b
   // Add plugin code here...# ]# O" Z4 [, Z1 T
   ```' y. a# V9 A2 k9 o2 R+ r

& x+ D' \- P/ p8 m6 Z7 G   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
6 ^- O6 N" s' `8 ~( i0 }0 m5 c+ P0 g+ r  k) A7 p- ~
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:- p& ^; `" ^. p6 z$ O: N9 c
+ C. H1 E$ B& T. N% B
   ```0 A6 j% ]5 k  v% h) w0 q
   add_action('init', 'create_custom_post_type');
3 M1 v" }/ N8 F7 s9 e1 ^2 J& d   function create_custom_post_type() {
+ S% b% C* t7 t# f2 Y$ ], z, c, d8 ^      $labels = array(
+ e2 Q" S; \7 `          'name' => 'Site Wide Notices',  x! T" Z* K$ r7 h8 ]5 Y
          'singular_name' => 'Site Wide Notice',
6 y. k  Y& C2 ^. n4 X3 h, G          'add_new' => 'Add New',: }# Z0 N" L/ m3 E. _: J6 e
          'add_new_item' => 'Add New Site Wide Notice',! i  Q+ O3 ]; R6 B8 N; \
          'edit_item' => 'Edit Site Wide Notice',
& P- U5 u6 G6 U. D7 Q5 {* p          'new_item' => 'New Site Wide Notice',8 S6 v) G: H9 W& ~
          'view_item' => 'View Site Wide Notice',, Y' k. G7 k  \* H$ ?# R- u
          'search_items' => 'Search Site Wide Notices',
; z; C- ?4 S" I$ T; e7 W$ K- L7 d          'not_found' => 'No site-wide notices found',0 ~" I  j: b5 r1 l) e
          'not_found_in_trash' => 'No site-wide notices found in trash'
# |+ R. r* x* S% f/ j6 Z# Q8 U" i      );
$ F3 H% b6 l7 O/ a2 Y$ s
! o. U: _1 q) {      $args = array(
; u2 Z# q7 ]4 m$ q6 c& c/ `; B' ^          'labels' => $labels,3 K9 x6 m; |: M' M; K! s# G
          'public' => true,
4 v9 w$ A) j6 B1 S          'has_archive' => true,& x# h* `4 N: s0 r
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),7 A4 r" S9 i. Q5 I6 L' Q# ]( k
          'taxonomies' => array('category', 'post_tag'),& P5 X/ h2 M1 ^! r, B# f
          'menu_icon' => 'dashicons-megaphone',
2 q2 l- f8 g  Y; Y1 ~          'menu_position' => 5,
8 a6 T8 ]7 w1 `, I9 C. W          'rewrite' => array('slug' => 'site-wide-notices')( s/ C6 N! o( n: v, E, a
      );
* m. ?- |2 R% E# B4 D7 A# r0 P- {( g: O/ ~4 }& P8 r
      register_post_type('site-wide-notices', $args);) V! q) [! j- z$ C/ ~. e- I1 }  d, N' i
   }
! ~, D  T% N2 b, e. `. y0 J5 W7 v: O   ```5 K. L' a! y% T! l4 F+ @0 Q

" F6 X( `6 ~1 f: J( E2 N   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。% n# y; A* n% P
9 m3 a/ B. E! h* B- J; Y& w: p
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
* v) _( T  D8 V- D
$ a; n( ?5 S2 l) Z$ u0 {   ```
- z0 r- x# \' N+ E   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');% l/ E' p8 d* T1 ]( `, ?) B: }
   function add_site_wide_notices_boxes() {# C  z/ R# N0 x$ _
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
( Y  A( i$ ~* G% L2 ?   }  R' c( B1 ^& B. c% N
. S0 ~) \3 Y" I2 c2 [: G! \' z3 y
   function notice_details_meta_box($post) {
: R: b1 j" A8 ]  M; O( M( r      wp_nonce_field(basename(__FILE__), 'notices_nonce');( d; G5 ?( U$ }$ L7 F: N) O* ]
      $notice_title = get_post_meta($post->ID, 'notice_title', true);1 s7 D9 X1 S! T: c9 O9 T) f- G# ]+ \
      $notice_content = get_post_meta($post->ID, 'notice_content', true);) d4 `# L* O8 q7 N1 b( d8 ^3 M9 R+ l
      ?>
: d% ]( m, P5 ?2 R" o' @      <p>  B# X- @: l+ {  s0 N
          <label for="notice-title">Notice Title</label><br>. T" _! _, p, O7 a
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">! r0 A% x  o5 \. Z' d' g! D
      </p>  Z; i- S- \, Q' b6 r) a' d7 y
      <p>
9 y9 _+ u0 p" }6 N/ n          <label for="notice-content">Notice Content</label><br>) ^( ~- X# X6 _1 b
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
" I8 I7 k% o2 H8 F" k- d9 }1 Q8 n      </p>
! r+ `, V0 `9 F! Q) j2 c& o5 j: {      <?php# A1 f4 |6 @0 ]6 O( [0 o$ P$ @' F; e
   }' Z4 d1 J. z, a9 N
2 q0 B! X: _& c7 t
   add_action('save_post', 'save_site_wide_notice_meta_box');. a6 J" t: V8 e' a
   function save_site_wide_notice_meta_box($post_id) {% @. A$ M' ]; M! u
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
5 F: i9 a# C3 |         return;
6 f2 H" K, u, j      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
+ K2 j) p5 C+ H7 d         return;
8 y7 w/ y' W$ j: V6 Q
/ i' i" ]4 X" x* ?; H& L  G      if (isset($_POST['notice_title'])) {$ L) Y6 M; ]/ y" L4 w# ?
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
: ^9 b& F3 w: I% `4 S! i0 n* d      }" @5 M0 C' b0 A; X0 x2 f1 i* T3 |" f
      if (isset($_POST['notice_content'])) {. ^# c* B" |! R* M
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
2 ^2 C% X) \2 {" ?6 S) }      }
7 G( |7 l. ~; U* x   }; G! \, A& q. y
   ```
0 Q, q  q' O4 q; t: g$ P9 Y& Y. j$ g, U) Q4 d8 U/ q  Q% Y
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
; ^+ t& v; L7 s& m  F7 x0 o
: a4 c3 l0 v9 G3 s" J) m4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
7 w& t# B; S6 T% i( W
8 b& U' c/ a. x   ```0 w& f( {2 A/ p
   $args = array(. \1 j5 d! y! b, }5 d: r% f8 B6 S
      'post_type' => 'site-wide-notices',
7 e+ M& N* m4 V: M* K* o$ W' R      'posts_per_page' => 3,( T7 P; y/ F, Y! w
      'order' => 'DESC',
1 h' L2 f( s3 b" @' s5 L$ U      'orderby' => 'date'
  P" C$ q) E2 R; {   );) H/ v# P. A; b% d5 \( X) m
   $query = new WP_Query($args);# J+ |* L/ m7 {! `7 A6 t! [3 X
   if ($query->have_posts()) :
/ G' h- Y. Z% \+ E$ |0 o! M      while ($query->have_posts()) : $query->the_post(); ?>5 x. E0 j* _- B7 N5 a
          <div class="notice">9 _: ~  e) R4 _! s
              <h3><?php the_title(); ?></h3>7 Q* Q/ R2 \/ e" w/ [( w* R$ D
              <div class="notice-content"><?php the_content(); ?></div>  ^% f% ]- z0 ]6 ]! B+ {
          </div>0 G" h2 L9 ~1 I" r$ C* l/ |
      <?php endwhile;
1 D- A$ L& E3 [( m: z1 H4 j7 R      wp_reset_postdata();
% I7 @6 m2 a7 S( D. x   endif;
) |8 w8 h9 M* R7 y* g  ]+ q   ```$ A  o' A. c/ R$ F4 e% C: r
/ y1 p$ y; g/ e9 o( a7 ~
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 16:03 , Processed in 0.079823 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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