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

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

[复制链接]

348

主题

565

回帖

3696

积分

管理员

积分
3696
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
; ~% n% }# o8 M5 {
: D  N: }8 T) P7 }$ V1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。# Y5 N0 R4 I4 L/ d4 D- w* Q* N
9 g) b6 o  h5 P! V
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。! u) M  E- _4 V, |2 x8 ~3 K

% }2 X4 N6 J) X% N0 D3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
9 l+ U* X0 b% F! O, q
2 p, @- |- Q1 I3 k5 O7 h4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。' `0 M$ M7 y5 d# g' ~

& x( T5 o4 K/ t& m, p9 I注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

348

主题

565

回帖

3696

积分

管理员

积分
3696
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
  X" t" [* Z; _( s! ?) S( G  i, O$ t* @: U0 U
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
5 a' U! m+ L2 W0 n* Y* a* g7 [1 O, c  m4 m
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:5 Y6 f( d8 C2 S; `- w2 R! V
7 S6 J: {" L" M% w8 ]1 x
   ```. Y: P/ a6 V+ }: ?
   add_menu_page(8 \+ [- `+ Y* G0 v) O/ z. d( a2 v) ~1 V' U
       '全站公告',& S' O$ h; b/ C/ ~% l# [
       '全站公告',
) r7 q- W2 Q; `6 o7 t( ^% f, }6 |       'manage_options', //需要的用户权限
1 S. v8 }; m' g& |0 _) W       'site-wide-notice', //后台页面的 slug
3 J: e, @! K! E1 t( ]/ a1 i       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
9 Z  p/ I+ Z! @- P/ J" K" x       'dashicons-megaphone', //用于显示在菜单中的图标
  Z% x) _$ V2 K5 U; n0 W$ a! D       30 //菜单项的位置, s. Y! s, N3 Y" O
   );
1 s5 L: R% ^7 d' L7 n" x/ b8 j! F+ N   ```2 V  U8 k$ B( V, o/ i- w

. ]8 P6 }. y3 P3 S   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。+ m! I& W- O/ v) h1 Q/ ?+ u5 [
; K0 o3 \  o7 j$ }
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:7 u! o( S2 C( j' ~
  C% E; Q, o! c6 B3 G
   ```1 B8 f. t, u# N% N* p. k! E$ Q* W2 r
   function render_site_wide_notice_page() {
4 v7 n6 u, V) D; D& M; i/ m6 g      // 渲染后台页面内容9 _, F. a7 C) I; q0 m) A, v: k; e
      echo '<div class="wrap">
6 z% B  n3 P) ?  q$ Z$ L          <h2>全站公告</h2>
+ H# g2 _, C3 I& X( A* n) K          <form method="post" action="">9 d3 X. L6 `( `/ ]* W
              <label for="title">公告标题:</label>
2 u0 _% H- D! E% X, c              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
9 ^3 q  x( {+ L2 W" L) g9 v& |5 ~0 g              <label for="content">公告内容:</label>& O9 V* H( [% a8 t1 p
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
# v  Z) [1 x+ W; k1 G: Y! ~9 B              <input type="submit" name="submit" value="保存设置">$ s( w3 o' v$ ?9 R. n8 z
          </form>
, t6 X$ i2 O: R! t4 a0 E& `      </div>';
  V$ a# ^! M; e5 F6 Z" m9 r$ o! v- A6 b0 [+ _6 ^4 Q3 O
      // 处理表单数据
  s8 y+ ~- R& u+ r$ C! s      if (isset($_POST['submit'])) {9 ?0 ?: n* O$ t3 }; k
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
  Y/ X; ~0 d7 s5 e  V" s- s          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
" j; D2 S4 ]8 [) x2 F      }/ F& l3 i8 A2 P- M$ J
   }1 @+ _4 P6 k, k4 s
   ```
5 p' E* l* _. i8 L: n0 Q$ V# k9 T9 W" j/ c2 [* V. c
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。9 d6 P. u, y- L: A" a' b' o

0 u: s1 w1 V8 q( l6 Z/ R$ A0 ^3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
- _4 X  H% x  G
  f" v7 N1 l1 g7 p   ```
3 o, C% Q* }$ A6 o$ v  S   <?php
/ l+ I. p* |; u) p4 O   $site_wide_notice_title = get_option('site_wide_notice_title');. C3 F) b/ Q# U! _: V0 F4 i( @. D
   $site_wide_notice_content = get_option('site_wide_notice_content');" Y( }+ J( v: p' J5 Q# T- a1 P7 s2 j
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {  r% J- _2 n  l4 `. P9 B; c
       echo '<div class="site-wide-notice">';  M' Z# z& A( C- P# X5 s
       if (!empty($site_wide_notice_title)) {6 L5 a0 W0 r& S$ N+ r
           echo '<h3>'.$site_wide_notice_title.'</h3>';5 H* e8 C5 G' b
       }7 o  Z0 T5 ~9 X/ R3 g: ~1 Z
       if (!empty($site_wide_notice_content)) {
3 _+ `7 L$ R. c( Z           echo '<p>'.$site_wide_notice_content.'</p>';
% z8 [- z# b( g$ I8 z* @, |       }
4 S2 y; y+ G( E: H       echo '</div>';3 U' W1 k3 G! `
   }
' o! P" t% y9 q! q   ?>
; C' G9 U( l; Z   ```
5 Z3 t: l, D, _1 t, y/ {3 h7 C. M! H7 Y, [) B. d. Z1 c
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。! S( E# K) ?$ l& C) _& D/ q7 l

" R6 w+ U+ w; [, ]; L0 Y# G7 }请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

348

主题

565

回帖

3696

积分

管理员

积分
3696
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
2 W/ e" k  w  I6 _; W
$ V  ~; Q; G+ Q' `/ j您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:) K) s% z, w% ]
& v3 f# _; ?$ p* B' r
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
" a$ C( a0 _, U) d4 w# v. A8 |* x0 j
8 f9 p% C  w% m7 j5 n```" {- I& l& ~5 y$ M& [4 k2 [
function create_custom_post_type() {
- g' K) y. P) s    $args = array(0 O7 T& i# N& T
        'labels' => array(
$ x, Z8 P7 q! m+ k' N& L  M            'name' => '公告',
8 l- i8 E9 N! _. ~5 E- ~            'singular_name' => '公告'1 Y0 w5 l# [( L; q% Q' m
        ),0 P3 V9 {; o0 a: _+ G* X
        'public' => true,
# S$ F2 V( Y7 t; _        'has_archive' => true,' a5 M1 ?# B4 k) r6 k$ y  Y
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),8 E8 I8 M2 W% p, G: |3 a1 J
        'taxonomies' => array('category', 'post_tag'),5 ~5 N7 E) z3 x9 h& L  Z7 ]1 k; z: I
        'menu_icon' => 'dashicons-megaphone',% D9 X8 F# W( g7 n% k
        'menu_position' => 5,
5 x$ m' {5 r/ |. @. ^6 \        'rewrite' => array('slug' => 'site-wide-notices')
- ~7 q, q4 s, D6 |- A& N    );
& F0 |% v) i8 Y% G$ X/ D    register_post_type('site-wide-notices', $args);3 }! h9 S7 r  l# q) u3 ^
}
, y& A6 R; {+ C8 q3 r( O% {. U9 Cadd_action('init', 'create_custom_post_type');: o2 k- q& ]* y3 L9 J1 \6 b
```3 Q9 n) G4 d  c; o: w( f
  O0 s0 N' \9 ?5 t+ e
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。' E3 \0 H: X4 ?  G7 M
0 B) m9 j8 Y6 g9 [" h6 Y% i
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
8 V( R+ ]) b$ k9 \! V2 d$ X- M4 R* J( I( s" U
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:1 Q4 d) c/ s& {7 E% R3 S" l
3 w( ~- C5 p7 E1 P  X2 p0 b
```1 P2 m7 h' j% H% Q; F8 w% ]
$args = array(8 n1 q* s0 a, N. Y9 X/ Q& @
    'posts_per_page' => 3, // 显示的公告数量# n. c* x2 p% _9 W$ {
    'post_type' => 'site-wide-notices', // 公告文章类型0 ~: ~7 Q/ H3 z9 {- P" }* r* C
    'post_status' => 'publish', // 公告状态
/ E; V: @9 ]! a4 [4 }- T    'order' => 'DESC' // 排序方式
+ H9 S( i6 k7 f' C);7 M8 y4 t3 }4 Q6 T/ W

8 L6 N3 Y; [0 X4 T7 `( Y3 U$notices = new WP_Query($args);% H" h- i0 ~4 M3 Z3 Y1 M( e7 c. Y
if ($notices->have_posts()) :
' S( q3 y. R5 r% A1 U- `% s    while ($notices->have_posts()) : $notices->the_post(); ?>
& ~6 m4 |9 S9 [$ M/ `        <div class="notice">
4 F) T& H1 k/ N. d            <h3><?php the_title(); ?></h3>
5 E0 N+ |! y% Z5 X            <div class="notice-content"><?php the_content(); ?></div>) A; A) ]5 _& G8 f. ], Z$ E6 a
        </div>2 r; e+ H. ]# E# \
    <?php endwhile;/ x7 y  v% L( |7 E
else :
: L; z3 ^) W4 f$ l6 M6 m, l    echo "暂无公告";
% }" [/ h7 X2 L' t" gendif;; T  Y% q, W$ ]' ^2 F" H
wp_reset_query();9 \" p0 M8 o( g* d9 v
```& x* B8 w8 e! D6 a
" v7 i: q5 J% J6 t6 t$ p) x
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
, j* d" k$ G; m1 H* V7 o5 g; z. k. s5 d* q5 C/ o+ L5 ^
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

348

主题

565

回帖

3696

积分

管理员

积分
3696
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
& _' z# ]2 n3 W+ ~7 T* O! Y
+ [* N6 {6 b% ]如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。* w1 K! M9 ^/ p# ^4 H3 u* Q
% ~7 Z7 R; ^/ f4 ]* p% Z0 x
以下是创建自定义插件的步骤:
" a# D. u( t5 H2 [5 J' u2 G+ K( q0 J/ t- g
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:! k) T4 B/ v) R$ m1 B; Y, s$ k
9 A" U+ _6 Y* S; N$ J: |6 I8 R
   ```( h* y( f2 X& E' [: R
   <?php
& J4 u1 ]: q3 Q2 T+ j( g% c7 H, G3 d   /*
" D0 ?1 e% Z/ \   Plugin Name: Site Wide Notices Plugin& c6 r6 \/ z  h7 z7 G- Z
   Description: Adds a new custom post type for site-wide notices.. z! T& R$ k/ ~7 ~( I! c
   Version: 1.0
  w! }9 f) n8 o   Author: Your Name
( a6 d; G8 D9 V8 A! @: Q% S   Author URI: http://example.com
( J. ]% S! a  u) y/ a& {; J$ e8 ]7 z   */
" o8 K$ B! J1 M  A: B6 M/ g8 P5 O# O8 M5 d
   // Add plugin code here.../ B. T' [' f0 ]9 f2 Z' p
   ```: F  e" `' [* a3 _8 @% g6 v
5 f' y0 T: s8 [  c2 V  x; _3 @
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。3 i! @, z0 e( e! Y% v

2 x) A3 i5 X' x  _0 n0 `2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
8 [1 P6 Q9 w" a& e* |7 P* ~5 B8 m. ?! W$ L. `& [- f, @
   ```
* e5 g9 A2 ^7 z3 S3 D   add_action('init', 'create_custom_post_type');* k* v7 x. S* p# c- N3 D  p* d
   function create_custom_post_type() {/ X6 B0 g. c, }6 _
      $labels = array(
8 m3 M  U6 K: Z) L9 \          'name' => 'Site Wide Notices',4 B' q% D1 j! F$ H9 @5 r
          'singular_name' => 'Site Wide Notice',7 r7 n( N; Y9 D
          'add_new' => 'Add New',
' [: {3 C* A# j5 Y          'add_new_item' => 'Add New Site Wide Notice',8 v) p( L1 B; x7 `
          'edit_item' => 'Edit Site Wide Notice'," Z- P) z  {  F- G- w9 S" K
          'new_item' => 'New Site Wide Notice',
* L9 F; I2 A  z: d          'view_item' => 'View Site Wide Notice',
9 {' @- W. _: K+ B7 H          'search_items' => 'Search Site Wide Notices',! `3 {) D* q  \5 f( s
          'not_found' => 'No site-wide notices found',$ D1 B$ {* O. d; U" \3 u/ }. y  r
          'not_found_in_trash' => 'No site-wide notices found in trash'. p, @. y  Q% M0 e5 H2 V+ I
      );
# x- I* m% x: M6 b+ B* o% ~" M. N! S% _
: P. w" c( _4 ]! |      $args = array(
8 i$ T% v- X* A+ a; f9 J          'labels' => $labels,
. h8 n: y* r* k, j          'public' => true,7 o  M/ p  f* e# t7 j
          'has_archive' => true,) Q( c# `* _" F# g' z4 H
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
. z: a2 \+ m: p2 \1 H          'taxonomies' => array('category', 'post_tag'),
7 c; ^7 b9 F8 p" L          'menu_icon' => 'dashicons-megaphone',
% J+ |- |6 e! Z+ H          'menu_position' => 5,
& R$ g/ ~0 e  n' p) L; M% x& Q% M          'rewrite' => array('slug' => 'site-wide-notices')
: D5 T4 \* u2 B  Z      );3 c5 J2 W: u0 f/ F8 [
+ S/ p/ M+ S- C% }
      register_post_type('site-wide-notices', $args);
$ X# y/ i4 C+ q4 K; |1 ?   }
  r6 P+ W! L# C9 z! m0 k: W   ```
) M9 v& \- {$ M( O2 @3 w+ ?9 C% M* I; \
; D9 V. w, V: g% f   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。- ^! R' [+ F& r& ?! |( d9 a

0 o3 p7 x: X% ?3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
6 J& ~5 F# r" @& K$ @$ \, U+ f6 K% L5 A2 e
   ```
  Q5 N  N, Z6 ^8 A) i# h; T   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
3 Y/ a& Z  {3 W   function add_site_wide_notices_boxes() {
6 x! c. {# Z8 x2 j) z$ `* a+ r      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');% N# ]+ X5 K; G6 E* e6 \! ]
   }
" j( s4 k$ s8 T$ m' m. y' g4 z7 P; A
6 K3 ?: X( S0 @9 o% z/ c   function notice_details_meta_box($post) {
/ g: h( [: ~9 t- n7 ^4 ~# j: W) g/ [1 i      wp_nonce_field(basename(__FILE__), 'notices_nonce');
" x- @; `0 ?; D0 e1 x; [      $notice_title = get_post_meta($post->ID, 'notice_title', true);  X7 ~' P5 W: m+ Q4 O( F4 F/ H
      $notice_content = get_post_meta($post->ID, 'notice_content', true);7 i, K0 D/ s# W. f: U/ i% ?
      ?>+ m4 y& t7 y- y9 A8 a1 O# L0 i) s
      <p>
& S0 ^% D* \' s          <label for="notice-title">Notice Title</label><br>
0 L; ^- T+ ^) E8 z          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
% X& t/ p9 r2 C3 L0 ?2 U5 A( z# Q      </p>
' G* w1 l/ h  F; R      <p>
4 {. f: k" t9 o' ?, p' N1 y# G! Z          <label for="notice-content">Notice Content</label><br>
1 U) r! W* L# c, r3 h          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>; U) b7 F0 x' W/ q
      </p>
1 ^7 `9 h# @1 ^6 B- _$ w      <?php! K; w. F' e; V9 ^8 |3 E
   }1 q0 y2 `. v+ z

$ _* O& S* o9 N5 u   add_action('save_post', 'save_site_wide_notice_meta_box');. D- h7 c" v/ X: w4 `. q' J
   function save_site_wide_notice_meta_box($post_id) {
+ o4 T# h7 T3 k0 N3 b      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
, M! E; e" g/ m6 o9 d         return;$ e8 i% x) J. G) e- m: E
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)0 l2 r: U7 F$ G0 X+ F- z4 L& ^
         return;. S; d. E1 o0 r+ j7 [
* j1 c* c5 d2 i  p! w/ M
      if (isset($_POST['notice_title'])) {3 H+ L$ x/ k# v  \+ i4 m9 W  x
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
7 E3 B- ^" U4 X; j- `, M% ~      }/ d9 t$ t/ g! A* n7 k
      if (isset($_POST['notice_content'])) {
$ D/ b6 B' r0 t          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
# }5 B% @, B8 z. Y: H/ a8 u. q& ~      }
! q" c2 x3 M) R' w, F# c5 L   }
( c. z& A( ~9 G& P" R5 o/ y  W# E   ```% Y4 i0 l& W1 B1 I
: |! g! [7 `0 H: L- ~$ @, F( l7 l
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。/ d. N) Z9 C2 z
  f1 n( p8 S, n$ Q' W! H
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:' \1 S9 j& d7 Y

- u' k. q; V, X" O8 E' M) f$ m3 c   ```
$ }+ }3 p4 v$ O! Y' W2 g   $args = array(
9 z: ?$ T! G( O8 D0 U" z& e) e      'post_type' => 'site-wide-notices',
1 B: n7 o- B  f8 M& z  ?9 Z      'posts_per_page' => 3,3 N/ m8 l- b1 T- O" ?. t) M
      'order' => 'DESC',. A$ p. |9 S  f. M5 M3 X9 s
      'orderby' => 'date'7 y4 F/ n4 m4 f3 T3 ?! ^$ }8 }/ H
   );* {- c1 z' u# H" d
   $query = new WP_Query($args);
4 b2 s% s$ O' x6 I8 }) O   if ($query->have_posts()) :
8 Z& d' L( L  t9 g5 t- z5 \      while ($query->have_posts()) : $query->the_post(); ?>
4 b1 l+ \% v) A2 U; ^3 f          <div class="notice">
# C0 s) y9 I+ L* x% h. g5 @9 N+ l              <h3><?php the_title(); ?></h3>
1 g0 E  x5 I9 M! o4 c' J0 f              <div class="notice-content"><?php the_content(); ?></div>; l2 E4 v7 N3 s& A. k
          </div>- ?  j1 Z# i! p( S& h/ S, @1 N
      <?php endwhile;
( h- U5 i9 w! I9 v' W% C8 w      wp_reset_postdata();
7 _, L$ V" g0 l; j- n4 G   endif;
6 G' J, H: |5 e   ```4 ~( r  |3 B+ C

" [* b7 e: C% I# L( h9 _   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 11:13 , Processed in 0.013318 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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