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

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

[复制链接]

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:+ \7 `! F: o4 w  T' C$ v
) _0 v4 s6 \+ Y7 e( @
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
) p# ~7 C& j. H+ M& C1 z. g- [+ U& x2 V9 L; K& M$ _
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
# N: a) T# ^7 _# @: ~* s9 j6 ]* X" u; }* g5 [8 ^  b/ U
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
6 O+ f0 X% g9 B( u- N1 U+ Q: I' z- U
+ y. V' z- V/ \/ m; `2 i, E4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
: j0 D7 G! k; W+ d  @0 P- w- q8 i$ V. `
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?+ B- e# H5 @3 ^8 Q, d
& w1 ]% Q5 a+ Y3 d+ D: p' f0 A8 c
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:) n/ n$ T, v& W. W+ f( f* x

" Z6 Z( B0 O/ ^2 F' Q. Y1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:7 I4 b( N( j  A% U* R2 \( ^) C

; v" c0 Q* E4 ^   ```
+ R. ?1 t0 p6 Z' i  x6 G5 {5 g   add_menu_page(
3 w8 m4 I$ e: ^/ I       '全站公告',* R; X6 J/ a  n7 N) r. \
       '全站公告',9 h8 X/ N9 ^& `( V6 V! P
       'manage_options', //需要的用户权限" @: G0 q6 z: S
       'site-wide-notice', //后台页面的 slug7 w: |& P) w% T& O! N5 K9 y
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数! r  i% j! C1 T, m- a5 x
       'dashicons-megaphone', //用于显示在菜单中的图标) o$ U, l: t+ m2 J, |6 Q. L" z
       30 //菜单项的位置
. D% `' W) o: F- u+ t( Q   );
4 Y( r, _; V& b+ p: }   ```
9 T3 i5 X! W! Z" l0 ^% E, ?! T3 _7 u  Y! x+ `7 o
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。9 F/ V# c2 v, y3 L4 q; @" `( ^0 n
- Y7 K0 j0 N: }# p
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
( }7 M5 a) ~7 ~) V% h
* S: [" z- O" v3 n0 f   ```: Q. J/ o: I- T( N$ R& T7 f
   function render_site_wide_notice_page() {
9 G1 \  M5 x1 j* U* @# Y      // 渲染后台页面内容
$ P2 b6 z$ W# }+ T( D+ L$ n: i      echo '<div class="wrap">
( W! a. t! c+ ^# O8 p3 u$ S, c          <h2>全站公告</h2>
+ g, l/ ]6 r) y: k& j9 ]          <form method="post" action="">
& Y% o  m6 p; T; I              <label for="title">公告标题:</label>
3 \6 p, R, c7 a3 _$ E6 C9 O& J% H              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>: H# x0 h* c/ ^2 d1 _, L: O+ I
              <label for="content">公告内容:</label>
6 V, ^1 M! s' @9 C              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
$ ?) H$ I* s; J, K              <input type="submit" name="submit" value="保存设置">
+ i6 b: ]9 f) b3 W' x/ v' P$ e0 @  J          </form>
1 z& w) J! G* g9 z      </div>';3 V8 J! m3 ]  q+ ~4 D8 @
: P# R3 O- n5 S, r8 f* {  s
      // 处理表单数据
8 u2 _, J" t+ h# Q      if (isset($_POST['submit'])) {: ^" f" @' N7 B) r
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));" B" V" e6 S# c7 l% |: m
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));5 M; V2 J0 l7 A! L+ R* c. [4 S
      }; e: R8 q; w! U0 X4 o1 q
   }
8 m% j8 ^3 i1 r2 V9 v   ```/ a2 r) ~6 `3 R( [) C) k- U9 d
+ F+ w5 K  [' n& G$ M( T3 n
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
8 k9 Y/ ^! v; X0 _% t% _0 O3 y. h7 j' |" R5 L7 ?: c/ ~
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
- K) L4 Y# q/ W8 f7 R. k
. `9 o4 y9 L- K" j9 U5 _8 K  d   ```
" s: V8 L. c+ v! v+ L- C   <?php
) |% c0 D$ S) D" z1 [   $site_wide_notice_title = get_option('site_wide_notice_title');
0 |8 O. }5 L6 w0 v. M' I7 g3 R& @8 x   $site_wide_notice_content = get_option('site_wide_notice_content');- D5 T5 N3 g1 \8 A- Q
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
" w9 F) j$ e1 S. G1 D3 P5 l2 s       echo '<div class="site-wide-notice">';' n7 C$ W8 J  c, N% m
       if (!empty($site_wide_notice_title)) {; c' A. [8 P8 J
           echo '<h3>'.$site_wide_notice_title.'</h3>';- v! f3 `* V* e" u4 j' x* d$ D4 d
       }, ?/ F* I7 @2 J; {1 |% p% h9 a
       if (!empty($site_wide_notice_content)) {; i& l. b8 ]! d, {& e' W! g
           echo '<p>'.$site_wide_notice_content.'</p>';- Q$ X8 W; r6 r8 F7 P$ f
       }8 o. L3 Q9 J  V9 O( ]$ r6 B
       echo '</div>';* c( l: ~+ [) i1 d5 N( _& Y! P
   }! A3 p3 s: S- G2 m" w7 Z
   ?>
4 p8 J. f( y" Q. c   ```. r/ h% m: a" E4 r$ }
7 J0 t+ F8 R' ~4 i
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
% n4 I4 V) X. m. O& c" e! u4 L; I2 X6 i: }: W& T* M
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
5 U  l; k4 o* u. G  z" T! {- a) |: b; k4 l4 V
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
! t" b0 u7 h6 X% q4 v7 L' L& e7 v/ q5 B: G; a
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
# J2 m5 E5 M1 ^; |/ b. t' e% |- s9 Z& S% W! k8 X( @: y0 ]
```- m4 r" L6 ?7 D5 t& x+ B8 y, H
function create_custom_post_type() {/ a1 B, t3 y* W$ t0 k( L  F1 c
    $args = array(
$ B3 O9 X5 j- F  v5 p        'labels' => array(
# |# k5 b. f; j- e' Z            'name' => '公告',
0 K( o: R7 t, y" H- w. M9 b            'singular_name' => '公告'2 B0 A" T( D( a" c+ n5 E7 `4 H0 X: o+ K
        ),
7 u, X* u+ m1 {/ T0 _- L        'public' => true,7 D8 ]6 [) x; k3 B3 [
        'has_archive' => true,
' J* c0 g+ w0 L& D- q- U+ L        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
1 k0 A1 o+ I$ a% a; u        'taxonomies' => array('category', 'post_tag'),
- {  u9 z5 p% V2 R3 L        'menu_icon' => 'dashicons-megaphone',
6 Y+ Y% U9 \+ H4 `' I5 ~        'menu_position' => 5,
: E( u6 q8 J% D. S/ s. w5 ^, P        'rewrite' => array('slug' => 'site-wide-notices')3 v& x' K( b& m. g! z  y! l
    );" W- z7 p$ M5 M3 a
    register_post_type('site-wide-notices', $args);
& p3 i, @5 ]+ O' b" K}
; o( h1 }7 Y4 t/ T+ V3 M4 Wadd_action('init', 'create_custom_post_type');
$ K9 a4 G3 E0 w, z! g; u0 }```; N! W& w9 V+ f0 _. _" X
: Z' b! M; s) H2 t2 L1 W; G
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。5 e' z6 R! A; t" ^  d
5 k3 M0 _! s2 R8 p7 X; G- A8 u" ~
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。! w- r# Q- d* Z1 p" ^

) A$ p* Y1 X% G4 {3 o* e3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:: O4 u* B" ?9 u/ \) |% H9 U/ c

. R, W; v$ I, X9 y6 w- ~: q( L1 {: j```+ ]1 R* a6 B1 _' S; x
$args = array(
( R0 Y# k) p& r1 i6 p0 K" Q5 M    'posts_per_page' => 3, // 显示的公告数量
3 J8 @2 @+ z5 Q& i  s: L; I5 Q' U    'post_type' => 'site-wide-notices', // 公告文章类型
7 L# a+ ?" u1 Y% t: t8 _5 f% M    'post_status' => 'publish', // 公告状态
! H/ p  y1 a, n' w    'order' => 'DESC' // 排序方式  E  i' R1 M' e! z
);# W+ b# |3 s, c- m# j( F! X

- a  h- a3 ]2 p4 }- k$notices = new WP_Query($args);
5 y( l% K/ ]) P, Hif ($notices->have_posts()) :- g5 t5 ~) _0 d2 g8 q) V7 J, h; U' e) \
    while ($notices->have_posts()) : $notices->the_post(); ?>  Z) j3 `5 K6 @% I1 D' O4 b" @
        <div class="notice">" V+ h1 G" P! S# M) S: Z% U: V
            <h3><?php the_title(); ?></h3>% [* l6 g  @; `
            <div class="notice-content"><?php the_content(); ?></div>
, A: d* u8 W4 t4 p3 j        </div>+ a: @5 {2 z. @! l# ^
    <?php endwhile;+ y' r" B# y7 L" m  L
else :- `- t4 d. C3 E/ u
    echo "暂无公告";8 \0 }# G0 M! t) e' [7 z  i0 v
endif;; m$ E; ^# Y7 J" e1 }4 Y
wp_reset_query();
) B8 V: Z, K, ^```
& M# h/ W. R3 Q  R3 k! G
$ g: w' N; w2 _# l& v( y这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
. J! x8 C3 X% g; j1 z) ?, H
1 N+ l4 v0 f1 ]) ]4 B" Y+ O4 |2 a以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?% M: W) c1 a8 T; A" z

  y- j) Y' Q" s; f% J如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
2 D& T1 l. f7 i2 h& ^. W  z0 ]8 T! }1 T. \
以下是创建自定义插件的步骤:
1 m" ?- W& G. b, L1 i/ j' i+ o  M
$ ]( P6 V- `; P' f* z+ O! _1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:; Z2 G0 g; P* P' N' x( w5 {( H

% }4 a6 w. m6 _   ```
6 Y" o/ v5 d) U7 _   <?php4 M" |, `3 s3 @9 V8 j& ~1 G- f8 B
   /*
3 A: c! X* u: u) ]   Plugin Name: Site Wide Notices Plugin4 H( ~7 ]3 c& E1 t" H+ K/ l
   Description: Adds a new custom post type for site-wide notices.; g1 d" Y* V- m4 n
   Version: 1.0( H$ I% _' d4 f' g( Q
   Author: Your Name
2 s0 G$ W$ l( E2 t9 {3 m- _   Author URI: http://example.com
& d8 g6 f% [3 ~* a/ y9 h. b. Q0 d) V   */: E0 p) q9 `  S' c+ s9 R

/ k$ s2 I- Q! I   // Add plugin code here...
. F$ g  r2 T9 d/ ?   ```
  O( B' Z: n# d" f& Y4 ^3 R* Y8 }: m& F) y; G3 T
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。' h2 b* @  R; ^. A  p: R$ c
/ M# M4 G& ^% N
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
) K6 M8 a' i/ I& ~/ n: l& t: O% A0 c2 b4 b
   ```
) T$ p8 P( O* u# I* y( M. a0 K   add_action('init', 'create_custom_post_type');2 t+ P  d- P4 J# p& w
   function create_custom_post_type() {
3 J, z$ Q' y6 M2 z! w. V- |- f      $labels = array(, ?. @$ P( u' G
          'name' => 'Site Wide Notices',5 g* r) e0 T. k  J
          'singular_name' => 'Site Wide Notice',
2 o5 `" N$ Z' j, j2 H' C          'add_new' => 'Add New',0 P0 \' N, Y' j: p' X$ U
          'add_new_item' => 'Add New Site Wide Notice',
6 m- ~7 q/ m( U/ o$ c# e          'edit_item' => 'Edit Site Wide Notice',/ }" d- w8 @; L# N# H* F
          'new_item' => 'New Site Wide Notice',
6 |+ t0 E" I0 ^* z1 h& f/ ]          'view_item' => 'View Site Wide Notice',
7 s! P8 [# k& U. ^/ H) R          'search_items' => 'Search Site Wide Notices',
! |; V5 ~) Q! h% A+ w! U! p! [. X+ M4 R          'not_found' => 'No site-wide notices found',) q3 X9 Y- s( p1 ~4 F$ @
          'not_found_in_trash' => 'No site-wide notices found in trash'
+ N( Y  G) o0 a3 K      );
# g3 z( e6 C: a0 [% B
0 L8 i5 \; t9 T      $args = array(4 }7 X  j6 Y, }4 E6 g( X9 Y
          'labels' => $labels,% w- k8 p. f6 o' c8 V
          'public' => true,
) {% d7 v: d/ H, Y. V3 F4 o9 [          'has_archive' => true,
1 a7 G- @7 a1 K) u! t          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),! r& {, Y# @8 }  u
          'taxonomies' => array('category', 'post_tag'),9 w3 F4 d) u0 j" L+ O6 {. _
          'menu_icon' => 'dashicons-megaphone',( B& M3 |/ `3 R" N+ c5 Y" h- n. j
          'menu_position' => 5,
7 O9 ?; j6 H. q) o; ?          'rewrite' => array('slug' => 'site-wide-notices'): q" n% y( \6 ~; F
      );6 \- z9 l/ N) ^& m1 t
$ L  l, ~- {$ A9 n* {9 n: _
      register_post_type('site-wide-notices', $args);- P- F: C1 Z  g  L1 [0 n% D
   }2 s4 d6 u9 q$ C4 V, i8 r
   ```
4 z% N3 o8 _- t6 H7 Y+ B  y% ~; ]  A, d9 ^$ k3 J. l# s
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
, n1 c, G6 O/ V6 l& w8 i
9 Z1 r( W1 j0 X7 D3 r3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:1 Y. d  b. W* ^; m  C! n

8 ?$ y9 ^( {( c' j! O   ```. I4 i$ |% \8 ?3 Q( e: e8 Z1 L
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
6 `/ ]$ d  x4 T" \% b   function add_site_wide_notices_boxes() {% k9 o% C& T4 A( q
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
9 M7 D4 k. Q* T   }
/ q9 E& |5 ]2 b9 ~4 a5 d" ^7 V
  A& G- Y: ]- M! u) J) b2 u! ^   function notice_details_meta_box($post) {
6 ^% u, O* }- h2 H% H7 s' U! P- c5 z      wp_nonce_field(basename(__FILE__), 'notices_nonce');% H9 B+ x4 d+ l; K0 n) `9 F
      $notice_title = get_post_meta($post->ID, 'notice_title', true);: L8 w7 h3 s3 u
      $notice_content = get_post_meta($post->ID, 'notice_content', true);  v+ |$ U2 ]5 d. h9 H
      ?>
5 i) J  o& O" Q/ P8 P2 e* u, ]      <p>
' v! B5 ^' L. G          <label for="notice-title">Notice Title</label><br>' E+ g8 v; p; f8 p2 ~/ h
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">6 u7 x/ s1 e. S0 U1 H
      </p>
6 L: y/ `! D( a: @2 j& K1 n      <p>! f& b2 A0 S# C) U
          <label for="notice-content">Notice Content</label><br>
- G& p# t! Y8 A- d0 F; Q          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
" I' D0 |1 O+ Q  `+ M      </p>6 \% b& a! y/ _( O* }& R
      <?php! W( p1 E+ a# m! Y- A) r+ E. r
   }
- s0 F! S( t8 v+ L+ \6 p
. L  s/ |/ y, ^0 o; }. X, K* x/ F   add_action('save_post', 'save_site_wide_notice_meta_box');5 h. f! h& g" r
   function save_site_wide_notice_meta_box($post_id) {1 y: f! K8 |( _. ]9 t! W0 u
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))+ ?9 o5 g: q3 j$ \+ C- \
         return;
0 \( B& A; |6 C6 K      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)* T4 K" W) v$ C$ p3 l) e2 |
         return;
9 M- D7 d3 |4 V. i9 V, y( b6 g  B, z8 g) t  S# ^8 y( ~
      if (isset($_POST['notice_title'])) {! r" E" Z$ N5 u9 o
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));  p4 }, Y; {. z3 t' v  j
      }
9 c5 f0 r% _  q      if (isset($_POST['notice_content'])) {) Q. [2 w: P; l; }, ?  ?- X7 D- l
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
! Z! J2 S, ]$ w7 r! ]      }/ U- z# P9 P( V+ d
   }
) n2 ]' p( `5 i, J$ Q( S   ```
' j$ R  b0 B  E- o6 q4 y0 ~
5 l* B9 r2 f1 {   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
1 _/ ^4 Q6 x( `  e- t  E( ?! B* s1 C; f) D& x) G1 I6 S
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:, z6 o2 b' }2 ]7 m6 R" M

, S, n# A  J1 z: [7 m   ```" P5 Y% b; U" Q+ j
   $args = array(. X6 f4 [. Q1 I6 O; ~" A) k
      'post_type' => 'site-wide-notices',
+ t' X8 e4 p: K# e! U0 W      'posts_per_page' => 3,
! K: y8 U5 ~& Y- }+ m6 c. x      'order' => 'DESC',+ r4 I4 w3 i* l4 C# j
      'orderby' => 'date'8 O; }6 j* R4 r3 D9 |  G
   );; @( w  `) x% T: l
   $query = new WP_Query($args);
' s7 |/ c, Y/ l! m  s1 Y   if ($query->have_posts()) :
# a( x) I' m# ?& u0 n5 M      while ($query->have_posts()) : $query->the_post(); ?>
+ O3 C$ @. D  T0 ^9 ^. s4 ^          <div class="notice">6 a, Z4 d  Z; c
              <h3><?php the_title(); ?></h3>  \1 M0 U9 J/ L+ w4 f1 \2 c4 a
              <div class="notice-content"><?php the_content(); ?></div>
: T+ c- o- O1 k3 v7 b1 f) E          </div>+ s& p1 p  e- ^# G" g
      <?php endwhile;, f/ L" t" S. f9 Q
      wp_reset_postdata();/ Q7 H' n0 F" D4 W
   endif;
1 A: X2 I: P# B! n) {   ```; l# j7 ~9 G/ ~) z% ?1 ]+ W) R! Q
2 |4 Y' [% p4 s, R" e
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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