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

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

[复制链接]

556

主题

688

回帖

4727

积分

管理员

积分
4727
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:9 n# d. q/ S& K' D; u' N
# ~4 c2 J7 ?$ W$ q# ]. ?
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
" |! l  M  _* \* T* F& _1 c" e- C5 O! S9 x1 @  K, D& y  `
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
1 L" ?9 Q7 i- f  O7 q3 ^
' m, ]8 m( }* i& L4 b3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。% H  Y8 _" B' F, A9 b

+ d- @  k8 R7 o7 R( [4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
% b" e% {, `8 A2 o/ D* q1 o1 u. c; E: z( M2 R
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
欢迎定制:13928122889
回复

使用道具 举报

556

主题

688

回帖

4727

积分

管理员

积分
4727
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
( S8 D1 ?; M+ a9 w' g" a8 e' Y. u& R0 d6 W/ ~3 R  W
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:/ C2 C9 V; m- N5 B# x. j
0 k3 y9 U. B, h5 N) ^% M
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:$ u6 S0 _8 N  `8 e8 |# P
8 k, Z1 F$ l& y8 q+ Z  h8 K
   ```
* M6 s; M- y$ p" _$ T! T  V! z   add_menu_page(& X* t' Q* g, U9 `0 M1 O$ l% \
       '全站公告',
% z  M" T# G7 J1 R- v. [       '全站公告',
. k, m0 W: w6 l+ W! N' C5 a/ F       'manage_options', //需要的用户权限/ V7 l6 p! d* k  h4 [6 C6 V/ _
       'site-wide-notice', //后台页面的 slug
& M6 ]* y2 E4 J0 Z8 i1 ^) f       'render_site_wide_notice_page', //用于渲染后台页面内容的函数* t) _1 D+ e4 g' |! H# b
       'dashicons-megaphone', //用于显示在菜单中的图标
1 c6 N9 R" C9 ~: a) i       30 //菜单项的位置$ k) e) m( n& H& }' N& Y
   );
1 w' i) ^, \9 s2 d2 |( W   ```
( P$ I. W' L& ]1 _7 g; M" V+ U1 C* @7 c; f% R  N
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
/ n4 a, D3 C. f2 B1 y: @6 N* d
  Z- t: o3 Y4 @" K2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
1 A* J7 `+ M0 [1 g0 G+ K/ M/ [6 D# r* J) }$ o8 H0 j& b9 X8 S
   ```8 U  j4 l; F% q6 t! m* j
   function render_site_wide_notice_page() {
, s3 h1 W2 b9 }6 k3 M      // 渲染后台页面内容; J  P$ r" ]0 [
      echo '<div class="wrap">% D' }, r/ i( I9 j
          <h2>全站公告</h2>0 F; m$ ]' R( \8 h; V
          <form method="post" action="">
+ d( ]- B; P3 P5 K( \( U              <label for="title">公告标题:</label>
: `. h: l$ I1 b1 |              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br># ^: e3 N( F  \5 g  O0 a4 N* [
              <label for="content">公告内容:</label>
. N" f/ H4 Z( k5 \; M0 A: \              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
5 d& G2 R2 d' N: ^              <input type="submit" name="submit" value="保存设置">% F* A" P/ {, C& t2 G- e4 c: H
          </form>
2 T9 a8 }( h" B; y7 ^. V$ X! J- |      </div>';
; a$ q* A) z  p6 U, W
$ y; A. p. c! h- l      // 处理表单数据
$ T3 r) b) l, w      if (isset($_POST['submit'])) {6 h: G& P* G/ a# h7 e
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));  m% a+ [( `  h" t( s0 |4 D7 k
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
7 r3 z4 Q) R! m; u7 G      }
9 E6 G0 F. z/ f( B3 h+ e% D   }
! }) r, m; m- }4 X; M   ```; {6 q, `% @, c% O5 ?
6 l; s9 u" c9 x! g6 v* ~6 V
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。+ @, l3 O4 v+ ^: p8 _' x* l/ `6 k  J: u
1 A/ L0 W- c( _' W+ ]' M
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
8 f1 w% {: t* e8 [! Y- ?
5 L1 B: B5 z2 H/ j   ```; A5 ?( N; J6 K$ M+ q- \
   <?php
* I1 P# f( |& ]  C7 u   $site_wide_notice_title = get_option('site_wide_notice_title');  d: H# X9 [, c! a, O7 s+ E
   $site_wide_notice_content = get_option('site_wide_notice_content');# Z/ K( t- t: p) Z7 ^5 g+ g8 C3 p) Y
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
7 k+ \4 I( R8 O6 y" D, I       echo '<div class="site-wide-notice">';
( `4 s# ?% F+ p* q       if (!empty($site_wide_notice_title)) {- o& k3 f5 d1 @4 D
           echo '<h3>'.$site_wide_notice_title.'</h3>';' s9 w9 h" j* i1 r' \
       }1 S3 c. I4 o( S6 r& d
       if (!empty($site_wide_notice_content)) {
$ i! F) Q. x) i: ~9 _" s, f           echo '<p>'.$site_wide_notice_content.'</p>';7 v$ R% q  T; N; `9 e: f
       }
1 P! r5 P" Q! s0 q9 Z       echo '</div>';1 O. l0 U4 N/ ?( X
   }$ E) ^6 T9 c8 I+ ~- Z# Z
   ?>$ e, O  {* a& L4 r, T  P
   ```: H7 Z8 H, y" V0 n

/ j! E5 l" D% [   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
2 K% Z% o; Y) L/ Q( E: l" C% ]2 d6 G8 C2 P
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
欢迎定制:13928122889
回复

使用道具 举报

556

主题

688

回帖

4727

积分

管理员

积分
4727
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?# w5 p$ F9 j* y( b
' r4 c; `. v5 {  @# a( C5 R
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:8 j3 E. l: g9 ?3 z& Z. u/ o
+ S) t0 A7 k# x4 K
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
% A! e4 r" u- Q/ N' F: s0 m! K7 W6 H, h) H( v* w
```, U* a% j+ M& G  j
function create_custom_post_type() {
7 h0 d% U! T# j    $args = array(8 ^: X' W0 m0 b( C( a3 I" m7 g
        'labels' => array(
% ^( a0 L0 G* W2 T3 |4 x            'name' => '公告',
4 l1 ^4 M: d) d# o& c0 \            'singular_name' => '公告'
2 z$ ?3 q. ?" a5 G        ),
* @3 I- {7 Z0 t* C% _, U8 i/ v; _        'public' => true,4 t5 h& [" i: Q/ Q& s- M7 @5 B
        'has_archive' => true,
/ W. j3 K7 @4 p+ W; _0 }% n" o        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
# g  j; R1 R$ a9 G! t9 S/ ]1 g        'taxonomies' => array('category', 'post_tag'),
: ^' ], D; v: N5 |' E4 u  h        'menu_icon' => 'dashicons-megaphone',
5 v7 H& [3 a; D5 W$ r! L4 m        'menu_position' => 5,) V8 a) Y6 r* X4 ~
        'rewrite' => array('slug' => 'site-wide-notices'): J! o  }3 _* B" Z6 n
    );
5 P6 L+ Y. v$ |+ t    register_post_type('site-wide-notices', $args);
5 }1 c  U$ L6 _) I# z, X}) S9 |3 M$ m) O% d- Q
add_action('init', 'create_custom_post_type');/ Z6 a- |+ q7 Z. L
```' K! P1 n& o* E) v) F# @1 F$ s( {

. E: c# W1 m4 F( Q在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
' E. f8 g/ d/ u9 ]' S; a' e! t; Z7 p0 w, Q" z
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
4 r1 {) i) r- L6 T
+ M/ A  B  ?+ S: U7 V9 l3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
2 g- I0 O) C3 b
. n- r. P$ ?: s5 T$ r```5 A2 L$ x( j5 k% R8 g' L9 F
$args = array(# g/ {' ^4 F7 P8 i1 X: ~  M4 B
    'posts_per_page' => 3, // 显示的公告数量
' ?8 H4 s4 n2 P* }/ M3 ?3 ]    'post_type' => 'site-wide-notices', // 公告文章类型
- Q( b& u! T( H, w! _0 E    'post_status' => 'publish', // 公告状态
; \* _. K- f9 }  ]0 O, T: ]# m    'order' => 'DESC' // 排序方式
. |9 \) E/ Q2 R/ m);
' L- ^! O- U8 U8 B9 m% Z* R( b8 Q$ j8 S9 ^* s6 @5 i
$notices = new WP_Query($args);4 g& _; g  n1 h" _6 W
if ($notices->have_posts()) :
1 L2 F* x$ s+ O3 Q7 Y0 |: @    while ($notices->have_posts()) : $notices->the_post(); ?>
) V  J- p- f/ X; C7 r# t        <div class="notice">
& y1 G8 h- f2 K- r4 w4 I            <h3><?php the_title(); ?></h3>
$ ~% a/ j" A4 g1 |            <div class="notice-content"><?php the_content(); ?></div>& I# A3 T: [1 q( W3 C5 W8 d5 e* t
        </div>
9 _+ f, y  a. R+ Y    <?php endwhile;# r6 |2 ?5 u' v7 U& M
else :
5 b/ R) P5 \2 Z; V2 f8 ^* g+ z! s    echo "暂无公告";
6 {9 g7 U7 X! m, u& m+ ^! c9 bendif;
- O$ N4 ?1 I- [- N( w# ^! ^wp_reset_query();
, t  X6 |( w8 [+ F4 k) \3 ~( u7 O```; B/ V  ^8 F8 ]
6 Q) @, Q" y, T7 Z& [
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。6 h4 d- y5 g+ o# y& n: d
: T3 u3 t9 b9 @' H7 ^
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
欢迎定制:13928122889
回复

使用道具 举报

556

主题

688

回帖

4727

积分

管理员

积分
4727
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?+ D- N! d- `1 |3 _
2 i1 J# J2 @. I+ F" N$ r/ {
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。9 L# y+ J/ s- y/ e9 X( R& L. @2 R$ b: V- M
# |5 E9 T4 N1 J
以下是创建自定义插件的步骤:5 G9 t5 U6 J7 j0 q" {$ \' ?

3 F; e! H. r9 W. t1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
9 Z+ t) f7 V3 P6 r2 E. o  s6 S
; e6 T; V( Q8 `6 ~" H  ?. Z& `( T5 F   ```( B% n' }* E6 {3 g* B5 G, l
   <?php- d# u3 K9 U0 U" l
   /*
: ^0 p- B+ K& Y, z9 y# W   Plugin Name: Site Wide Notices Plugin% @7 ]" C3 n+ X1 ^$ v
   Description: Adds a new custom post type for site-wide notices.; F- f1 G2 W4 I5 c, k  _, \
   Version: 1.0  }; }* ]4 a% {7 S( t0 x
   Author: Your Name
8 }6 [+ f) j+ k# W   Author URI: http://example.com5 R( Q( D  y# l5 ]! c0 h
   */
# x! k8 f) Z0 u* x8 T) S2 j# ~7 }# D8 T  \: b1 D" s
   // Add plugin code here...
2 R/ e& v" ~+ b* e3 R+ ?+ V/ f   ```
8 F- x( @1 Y# |1 A
- I7 d' }4 ]9 S+ P" d4 M   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
& V5 a- _1 @4 g+ y; m, E, j, o- |8 }9 j( F+ N3 D" h+ t
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
. I* K  ], ~' e7 G) I2 S, R; ]
. ^; `# q6 o$ I4 A5 w! U4 f3 t   ```; S+ g' C: Z) f' w
   add_action('init', 'create_custom_post_type');0 P+ H" Z) T# x$ y
   function create_custom_post_type() {
+ M, v3 \, N3 p6 F& H7 \5 Y! U      $labels = array(
  d6 T$ o3 A2 b1 _          'name' => 'Site Wide Notices',
1 `! z$ E3 ?0 ?8 v! ~. f% s% T. i          'singular_name' => 'Site Wide Notice',( N4 a) [: ~! d# i
          'add_new' => 'Add New',8 N- U7 E5 Q! {7 _. H. T- A
          'add_new_item' => 'Add New Site Wide Notice',  r# k4 q( }2 r
          'edit_item' => 'Edit Site Wide Notice',
4 s9 U1 ~; |  q1 g9 a5 R8 N          'new_item' => 'New Site Wide Notice',
: n: f7 h% Q7 |& B% D. K( x( I1 v$ h          'view_item' => 'View Site Wide Notice',
/ v) A% r$ r. ~9 T6 U. f" {; E          'search_items' => 'Search Site Wide Notices',& P1 Z- g+ R$ M2 _% D
          'not_found' => 'No site-wide notices found',$ {6 P" g  Q/ h( e
          'not_found_in_trash' => 'No site-wide notices found in trash'& p0 q+ [5 F. h
      );: q. w+ O, n$ `( d. ^  i6 i

" a7 F- d" z- y5 |  A! i      $args = array(
$ J/ p" `& V$ g3 z. x! i9 f7 A          'labels' => $labels," ^; A( m) W7 S7 p' }" h  J9 a) L
          'public' => true,
) t; b3 _/ w2 g+ h, ~' J1 |          'has_archive' => true,
$ C: d7 C, q  P8 H2 L          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
6 s8 G9 V* I! I' D  @! A          'taxonomies' => array('category', 'post_tag'),2 x& S) I: V1 {" T' d0 u$ M4 K
          'menu_icon' => 'dashicons-megaphone',. ?6 L: z: A3 V" o. H
          'menu_position' => 5,1 O' }: Z; L2 Y* Q* |( ~9 I
          'rewrite' => array('slug' => 'site-wide-notices')  R- I* }: M4 p  a4 o& t
      );
8 N/ j2 u7 T6 U% S/ p, J
6 H- ?8 x8 V  e0 n) p$ g8 a/ L+ W4 T      register_post_type('site-wide-notices', $args);
: Y  ?4 w$ \3 j   }; a  t% I6 Z. N! X9 Z/ B) q8 R8 ^
   ```
* A8 j& Y4 g( M' f; f! Y
) F) k: b$ j0 F. I9 d   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
5 u; g, v; b+ F, A0 o; j3 H4 I* |6 @, w4 b# R" r) t" P
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:2 c! D* B; |' o6 J
  H. Q& }  T0 W7 R. j5 n$ H+ z
   ```
# x+ R& ]" Z  d2 l1 w( N   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');* B" b$ `% X1 u' U/ t$ ^
   function add_site_wide_notices_boxes() {; B4 w" e  Z! i: |
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
0 ~; n; R9 o$ x" J0 ~   }
4 N/ `+ u4 Z( G/ S* U9 q* i! u! `9 M3 O: G
   function notice_details_meta_box($post) {
( Q: t" q4 k1 y/ q      wp_nonce_field(basename(__FILE__), 'notices_nonce');
3 N6 z8 K; ^0 t* l; S9 E      $notice_title = get_post_meta($post->ID, 'notice_title', true);
* a6 C: P; v$ J/ v" W      $notice_content = get_post_meta($post->ID, 'notice_content', true);
* O* L, @% J% a" X2 ~. w* ~% Q      ?>
& y; Q  X, P, j$ Z0 E* K8 Z! Q      <p>
- w+ z: `, f' N1 o0 K& L          <label for="notice-title">Notice Title</label><br>* j* P; E' S% C8 \- i/ N4 e8 k7 E
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
7 F! {1 Y" N: i9 p      </p>
7 z1 `9 A7 ^7 Q1 d9 a/ h& G      <p>
1 H3 i$ a/ T' t5 d5 ]          <label for="notice-content">Notice Content</label><br>
7 |( X4 e* Y! r! A6 Z          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
+ h% c, k+ B+ ]' R) b  o      </p>
9 U$ X# Y. @0 {3 B      <?php
) z0 R3 x, U- I; m   }
: r% a, c+ A9 u5 l
/ [7 x. r! h9 Q3 l- u5 `& \2 v   add_action('save_post', 'save_site_wide_notice_meta_box');& Q; [* n1 R. w6 d
   function save_site_wide_notice_meta_box($post_id) {. E3 Z# ~6 k# h8 ~
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
7 u+ k6 w3 h. T, a# L! u, v         return;
0 ^( [) D" H/ g$ I1 k7 G      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)0 O9 A/ h  d( l$ p5 h
         return;
% v; m- W4 a2 k
# |  C5 [9 E$ y/ |/ @      if (isset($_POST['notice_title'])) {
" G7 d- i! S6 I+ @3 w2 ?1 e          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
2 _' W) R2 R2 ?1 ]+ s1 k      }
0 [' x1 Z( F. m3 Q: d$ I' W      if (isset($_POST['notice_content'])) {
, h3 ]8 o* U8 Y6 d          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
1 }9 q- ~" N% x      }
1 |( d2 E6 b7 Q  g2 _8 k% [7 R   }
( O2 ]8 O. a0 ]* h8 k8 X* J  j- j0 F   ```" m- Z  r7 y/ S* }$ g( j' y
: ^8 T0 O6 u. ]/ ?
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
  H, r. z6 w0 @7 p. y8 V- P( n- \9 W# C# |7 d
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:, j2 k$ l' f. e( L% Z$ J$ ~
; L9 i4 Z3 X, C; ]6 V
   ```
* V6 V. n8 f5 I( I7 d/ J   $args = array(
& @# e- X* ~! B) W' Z" I- j& t. j9 a      'post_type' => 'site-wide-notices',
$ X- _; ~" v) |5 U' d) H* _      'posts_per_page' => 3,
: y" n" Y/ v% i. c( h      'order' => 'DESC',: `! e/ W. S" N& B
      'orderby' => 'date'/ U! n3 P' l$ u
   );! q8 F  {6 e8 n& g( R( z4 t7 h% E
   $query = new WP_Query($args);
& E! s& `* N! c- q# |! }  D' w   if ($query->have_posts()) :4 y1 y" I- f, J: f
      while ($query->have_posts()) : $query->the_post(); ?>
+ k$ M7 a8 ~) j2 h$ w6 f          <div class="notice">; w6 }- }" k0 j+ o
              <h3><?php the_title(); ?></h3>
# ]# }" G) g+ o( K              <div class="notice-content"><?php the_content(); ?></div>
: E+ y# u" X% @+ \          </div>/ l# t: P# Q2 @- q
      <?php endwhile;% s9 C$ x2 ]* A* z# E
      wp_reset_postdata();
, U8 k( H/ ]' l) H, z" k% n% W   endif;+ ?, Y+ _/ Q- X$ ^/ E
   ```
- Y$ U7 P, c& i2 X1 x+ H7 e3 L" e3 |: K) F- T8 N5 N
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
欢迎定制:13928122889
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-12 07:56 , Processed in 0.012366 second(s), 3 queries , Redis On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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