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

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

[复制链接]

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
3 }# g* T; m& l
. L" L, Q9 [+ w9 r) T- `1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。' H) `7 p9 E, S# r1 _. b6 P
" Z' {9 U% i+ c. H
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
" N9 M; Y. p5 `, g: {9 i
) g# O+ `8 G% s3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
8 e4 T! d+ f& ^# @, b) z; b3 S6 k( x1 v) N4 ]; z$ k  h
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
# o; k! }; y& S5 R$ Y
# r% H; U4 r7 I" v2 k: P6 P注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?! C6 d& A8 U& F4 Q( p; d

2 a6 Q$ `) W0 O, `如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
5 l3 H2 \5 Z1 M) |# {: |; m7 ?" \
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
! q0 ]# g  A0 l4 G: T3 W3 z1 G* L. f1 p+ z) N( G- t3 z. C7 N
   ```
. X' ~; r! [; H3 j1 e   add_menu_page(
# [0 k) Q; s  a0 a       '全站公告',  L# r& ?; q5 M6 P6 r8 Y
       '全站公告',8 J% g9 {  y+ Q6 X6 U1 w) i* L: ?
       'manage_options', //需要的用户权限* e" K: [8 `/ r0 d7 B5 ], [% x
       'site-wide-notice', //后台页面的 slug; i' `8 C, ~, B; [  \# P; p
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数- \. Y3 w) w/ R6 c( ?& J
       'dashicons-megaphone', //用于显示在菜单中的图标
$ g$ B" Y$ v$ l, X$ ]0 r- U$ K  ?       30 //菜单项的位置
8 @0 L& q+ y( @( X5 z; J" z   );
& \7 i; C7 Y3 m) q8 I   ```
) M) r# A* x% p2 @  ?0 b# }* m% c/ T% Y9 K, w
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。8 u" _3 k+ B2 s8 N" b9 z& P7 O7 P
# I" ?3 R# w* e5 d) X" o
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:$ ]9 Q, d" J1 h6 Q8 o

2 w6 W: l* M8 S+ R( d0 h) ~+ z   ```
8 Z2 D9 H8 L7 ?5 H+ U) N! ^   function render_site_wide_notice_page() {
/ T; w1 }& i) D  v) H- s7 W" N      // 渲染后台页面内容
$ i" {/ @% H1 }) R      echo '<div class="wrap">
- ^5 {6 x; w  F4 ~          <h2>全站公告</h2>
2 s: Q2 N" ]7 T0 s          <form method="post" action="">
$ I% d8 c7 n( d  M( O- Q              <label for="title">公告标题:</label>
' B- F1 O8 _* |+ l              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>9 U- @9 ^$ a% f" @* l* J# k+ k4 p' G
              <label for="content">公告内容:</label>) a- e. \. }- d/ \: o1 f
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>% b6 U- Y' l! h4 `
              <input type="submit" name="submit" value="保存设置">8 g. G% K7 m* I: q
          </form>
( d0 j0 A$ E; l2 |1 ?      </div>';2 P9 Z. t( j# M& X1 y' p7 X( @
9 H; k; X2 j! ^% A2 f; b9 }0 _
      // 处理表单数据
9 x4 K1 s* e) V7 V+ \8 ]( h1 V      if (isset($_POST['submit'])) {
! y" V  |! f# N: Z# \% }7 V          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));  [" S! Y# O$ X) F7 c2 x" r2 \
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));/ E3 Z) l0 d& d, S$ M7 U7 j6 V3 D3 [
      }
" G5 h  j2 g1 C: M( c2 {* _, V   }
1 @* a0 f1 ~: s1 f9 i% @, y/ E   ```! o/ h2 [. P0 I  _- [/ X2 R
* O$ d7 i! v5 K
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。; T+ \3 @1 R1 w" h
" F% G, v9 h2 i; C0 ^
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:+ x! m5 T' F4 f$ z$ l3 t

% Q) C+ V2 S! d! o  U; \9 d   ```# D) B2 B5 `. D# V. S0 S
   <?php
% ?+ o' i7 |  [* s9 k. p- F   $site_wide_notice_title = get_option('site_wide_notice_title');
) F3 |/ |% P/ Y. z& F: t! R7 \   $site_wide_notice_content = get_option('site_wide_notice_content');
; K( a9 ?7 u3 q8 d% L   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {' }  C0 U$ V$ j: o) {( Y( B, s/ w
       echo '<div class="site-wide-notice">';0 h3 s+ ?/ @4 Q7 U0 k) G
       if (!empty($site_wide_notice_title)) {
' G" W, z$ I( ]* j           echo '<h3>'.$site_wide_notice_title.'</h3>';
/ w/ O8 j0 v" H2 V. b2 \' }5 y       }& ?. z9 t- O) C: Y% Q
       if (!empty($site_wide_notice_content)) {
) _5 X; \. i9 r/ q' z# Y! i: Y. X           echo '<p>'.$site_wide_notice_content.'</p>';: U: Z. c& F! z" P+ l8 T( F0 d! Q& I
       }
6 _1 o( }( P/ H7 T       echo '</div>';
! f0 z$ Y: _$ v4 S9 `   }$ v- A; ?! b0 }( U3 m+ |' f1 t/ i
   ?>
" n8 @+ f/ o5 D% l6 N* i: [   ```0 p# x; I; q! |$ B0 _' X
( b) ?) q9 a1 F4 V9 `. l2 ^
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。4 D  e0 C. h' N0 _

3 Y2 c8 R. T- o3 a- S* v- ^* X请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
5 N0 W8 V+ T* z  }" C" C3 c3 e, t6 ?- Z% J! ]4 x$ O$ Q
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:3 Y9 l5 l. l2 j0 h0 ~5 ^7 F- |7 Q
/ p# B; |4 p8 q; p9 t1 O0 |
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
8 P- z5 i4 v" q' ^& I8 g& N$ j4 _" u3 I
```
; d+ v0 T' c: A: h* Q5 d/ Dfunction create_custom_post_type() {
) e+ a7 D; ]9 F5 f9 }9 W/ q8 ^- s    $args = array(
) l" n# n* [/ h! Y. Z7 P7 ]& f$ [, R        'labels' => array(
* h4 x" h9 B- X  C            'name' => '公告',- l, w( ^* x/ |
            'singular_name' => '公告'' z7 G# ]2 K, d
        ),6 D6 k5 @1 I. J1 D
        'public' => true,. [7 l! Z( j. B6 E7 ]
        'has_archive' => true,8 w( K4 y# Z! j* e3 v$ {
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
" o' d$ R% Y9 h9 i        'taxonomies' => array('category', 'post_tag'),
) E7 k; J2 `" b% y        'menu_icon' => 'dashicons-megaphone',) q' Z4 k0 u' ~5 U& K7 A
        'menu_position' => 5,
# W1 y! C& G6 l3 v, z9 O" B( f5 y        'rewrite' => array('slug' => 'site-wide-notices')
! Y7 E; M- G1 |9 Y    );
; E3 J6 V5 }4 T4 v6 N) V    register_post_type('site-wide-notices', $args);7 A' ?/ o6 k+ K0 E, o( |8 ]
}
3 \- O: W6 G* h; ?# Hadd_action('init', 'create_custom_post_type');0 [4 ]+ z' ^. R2 U1 v
```+ ]6 y/ @  H& G2 b0 v

2 s+ E" }1 ~/ g. h. Y' S在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。0 f; D6 n4 k. d
" p  Y" Y; ^) F' t
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。. Z# K8 \/ a) a/ V
! ?* ^% u4 Q* m0 j- c
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
2 R! R7 W; v# x' F( g+ r- S
) d& l  X+ e/ a; |4 e9 ?```
3 [. H$ i7 k- \+ N, T$args = array(: u# H# s. m, \6 l( [' b0 M9 ]
    'posts_per_page' => 3, // 显示的公告数量2 K6 h5 U5 A9 X# E" [. L
    'post_type' => 'site-wide-notices', // 公告文章类型7 D% a& ]: v# r7 j* W7 E5 e5 `
    'post_status' => 'publish', // 公告状态% I9 M. y: N. h7 Y
    'order' => 'DESC' // 排序方式8 o' V5 l6 @2 X" j8 G$ y! N# `8 ^
);7 s4 ]1 F4 E! _6 Y+ E' w7 w

  q, ]2 n  M2 u5 f/ |; t$notices = new WP_Query($args);1 S) ^3 k3 ~. t0 N& x5 y
if ($notices->have_posts()) :
1 P' r1 F: w+ Q" M7 \* T    while ($notices->have_posts()) : $notices->the_post(); ?>
( d# y9 g4 M4 @( h  _4 p2 t        <div class="notice">
1 t) J3 l4 z. ^7 D1 l' f            <h3><?php the_title(); ?></h3>" l& z% o% Z# n! n) e4 T
            <div class="notice-content"><?php the_content(); ?></div>
* i& b8 G( k) i4 T, y1 [, C        </div>
' m/ r9 f$ X4 J4 r5 n/ t    <?php endwhile;
0 X, @9 i' v& u& K: pelse :
# |" `1 R( p" p& G8 e$ N" R: p    echo "暂无公告";+ j: [: v) G/ _& Z; C
endif;
2 D6 j+ M7 L6 I, Cwp_reset_query();0 M% J2 A9 Y0 U( K2 p+ h9 P% G
```  D  k$ }. W  S; `. k$ s3 M

# U# x$ Y6 r/ g, g$ B# J这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
' ]) w' y# q  b
! O" u3 `, R/ s" F以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

520

回帖

3456

积分

管理员

积分
3456
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
, e  r! P: Q9 O0 X+ @, n- j( U6 A9 S% Q, u" s7 i5 S
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。/ u8 [$ Q* u9 |3 n/ V" Y0 @% {
2 z) v. H; `/ u( z
以下是创建自定义插件的步骤:8 Y8 j3 Z; y/ T. J  M
8 w1 G" Z9 X. J1 |% T
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:1 B0 y: V2 f1 C9 U% d" I0 Q- u# s
! T! K# P0 k# h. ~
   ```* I/ \) g) i2 q1 s9 ]
   <?php
  g# W7 ^5 T+ U2 y1 t! ]3 N   /*
( p+ k  g6 S& k7 Y2 g3 o   Plugin Name: Site Wide Notices Plugin& s' i4 F+ m; n" J; V
   Description: Adds a new custom post type for site-wide notices." ~( r. ?/ n; V  a: E; D3 c' P
   Version: 1.0( h$ j/ J) I7 g2 B& E  e% p
   Author: Your Name5 \8 }- g' N5 T
   Author URI: http://example.com3 |6 ^. o0 G- `& B- }- C) ~
   */
% U/ i' X" u0 L& i0 R' u, @8 U% V( c. K2 J* M; M/ ?$ T; j5 h
   // Add plugin code here...0 Y4 t# h" n/ E! r) P! ~" B( K
   ```  B8 l9 {3 ]1 _- ]' C

. o: ]) X6 h. K! P5 C0 I) u: \   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。9 Z. p) Q1 H. f

* K+ ]6 F/ N' I1 ^0 p8 H; x2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:' Y4 }( {% Q) m5 I) c

) r2 D1 T) K* L$ h8 J' Q   ```
( U$ I1 F  @: k5 W5 e( w! k! q   add_action('init', 'create_custom_post_type');
% }$ J6 R4 ~* }0 Y3 N" x   function create_custom_post_type() {
% X6 J5 H$ w$ x4 \0 @1 V0 |, @      $labels = array(
7 V2 x% Y2 D2 B  f! F( q          'name' => 'Site Wide Notices',7 u7 [7 M4 @: A5 c# p* H" R$ _- f
          'singular_name' => 'Site Wide Notice',
# \7 T8 {1 {5 q; H" x4 C          'add_new' => 'Add New',
  e) e3 E# n/ n$ n/ e& r2 \9 d          'add_new_item' => 'Add New Site Wide Notice',
) _% K/ @7 `" V) D! q7 r$ U          'edit_item' => 'Edit Site Wide Notice',
# O$ |1 J$ V. p# M, |          'new_item' => 'New Site Wide Notice',
  p& [+ i) O  H: p* D) }          'view_item' => 'View Site Wide Notice',! o& v+ ^: ~) G9 X* Z1 O3 {, V& i
          'search_items' => 'Search Site Wide Notices',& E6 u" m+ }6 `1 y! W
          'not_found' => 'No site-wide notices found',
& K. l. s, R4 Z  q: N          'not_found_in_trash' => 'No site-wide notices found in trash'; H$ h) \# e# E2 I' ?5 o
      );  ^% L( ^9 S3 z% K/ g, I' R
- r, }" T( z+ h# x; x
      $args = array(0 {6 s( K5 `8 j, c& S
          'labels' => $labels,
  w( B; x. Y, A/ V( v% [$ d          'public' => true,
3 v/ Z5 o* U' h4 G4 {1 F6 B          'has_archive' => true,
+ M, y4 B& [' j) e/ i0 ]          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),. ~, {7 b% i2 H  B8 u% c+ I2 @
          'taxonomies' => array('category', 'post_tag'),
+ M9 Y" D% k. ^0 O$ C6 G# n          'menu_icon' => 'dashicons-megaphone',! B1 F* j  {) c1 l* M+ [( `
          'menu_position' => 5,( m! B) A( n: l
          'rewrite' => array('slug' => 'site-wide-notices')
5 s* a8 R1 S1 }$ n! I: d( g      );
5 M5 _* ^$ O1 ^- R& x& G$ ^5 g# u9 m) s+ H0 l  ]* R4 }
      register_post_type('site-wide-notices', $args);' e5 k3 b5 \9 ~# p! f2 d
   }# D: ?% n. F" o1 ^4 y
   ```
' e" e9 c& @! z
' V) B2 i, a2 n0 D- X   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。4 h' s$ |# ^/ U1 o# v

/ n  e# h% T; q  n! t3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:* S- B1 H% t0 v/ s

4 `) \3 h* t, U% N, y: V( c: _; {4 w   ```- U7 z& X+ d7 t) g
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');6 {3 w" }2 m  n" X$ \0 a/ u  j: ]7 b
   function add_site_wide_notices_boxes() {
! x5 r( G' V+ ^7 C      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
% Z2 \6 J' G6 J   }
/ z4 M8 }+ B+ b, X) G. Y' x# o7 X. q5 a% s9 k1 k2 Z" a
   function notice_details_meta_box($post) {; s; [4 ?( W. M2 x' p4 f+ M
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
9 x+ ?" a2 N+ O% k; N) M. [7 t      $notice_title = get_post_meta($post->ID, 'notice_title', true);4 m5 z# i' }6 d, i; O% Z
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
; A# K" T, U  Q0 U7 @/ v! Q; X      ?>
* N4 I7 d* t6 t      <p>
8 s6 O! Y* a0 q/ F+ H; |          <label for="notice-title">Notice Title</label><br>
* x/ Z/ K# M3 f( d          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">& H9 Y+ Z1 P; C' Q. a7 W
      </p>
0 J4 T% V( J1 `' r4 R      <p>! j+ G4 T! B" O* [6 H
          <label for="notice-content">Notice Content</label><br>. o2 J; J- w( d
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>. u/ V$ s+ B" J, v3 ~5 A1 V' n  U
      </p>
( O4 y8 `% ?8 o0 i' P      <?php
6 R4 C, {' S( V. Y   }9 o, c/ \" F8 q! F
* b% ]- j4 @( L1 n9 f! x, O3 T0 T
   add_action('save_post', 'save_site_wide_notice_meta_box');
0 @  B3 P3 C9 E- ?, Y) [   function save_site_wide_notice_meta_box($post_id) {/ X) u* E1 K: `9 E2 R5 Y
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__))). \* e, s7 F. n4 G8 B4 a* |
         return;
- c7 ?& x7 c" V9 U! B) L$ s      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE): @2 j9 v  M  c, h
         return;& G  K, u  ?0 p2 F

- y" v7 }8 d$ d      if (isset($_POST['notice_title'])) {% Y+ P) e7 m/ |) y6 r4 u8 A
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
5 B( t" Z! I9 ?- b, O      }' u! a4 A  y1 i1 W0 Y  O0 u* |
      if (isset($_POST['notice_content'])) {) |, t& U9 M" d
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));: y9 P" J% c0 G$ K2 k  B
      }/ T3 j' U" D. ]
   }% W  k2 L% `% r) y
   ```
. Q4 [( S8 C& ?/ L2 L6 C) j% ?9 `7 W! r" H& r5 F* _3 j8 v/ o
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
5 F2 I% e, [1 t  u4 d0 Y
/ ^2 R3 p5 ?+ p5 t4 O: P) ]3 R" x4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
/ U6 U& q3 ~7 ?& Z$ i" d& a8 ~, [( x* W) I
   ```1 K4 U9 R. c3 n& U* Z1 V/ D
   $args = array(! A  J; F  K, E. k
      'post_type' => 'site-wide-notices',
% l3 ^6 a; |8 I  X; ^      'posts_per_page' => 3,) ]1 R) R2 D3 q! H
      'order' => 'DESC',5 z# e) Y  i: l0 c
      'orderby' => 'date'
5 Q% M# f# q, J% U) Q: Q/ e- X2 r. ~   );
/ [6 V4 p' K2 O9 N6 `, o, D   $query = new WP_Query($args);
+ X% Y! _2 O& Z) j: _* S1 L5 I   if ($query->have_posts()) :
- c) J2 c3 ?2 t. j      while ($query->have_posts()) : $query->the_post(); ?>
" ]' X( ?9 z- q* l          <div class="notice">
& w* t" n$ s" R  N5 N# h              <h3><?php the_title(); ?></h3>
/ q7 n$ g  J1 o7 B+ L1 q' f' W              <div class="notice-content"><?php the_content(); ?></div>! p( L/ }1 _1 K/ F6 ^
          </div>
4 T" s0 s- |- d$ ~7 S      <?php endwhile;8 b, P# j1 [- a! }( Y
      wp_reset_postdata();- Z3 y, d* G! y/ B& u6 y! ^
   endif;
* w9 Y8 d' O: U  [2 E( x   ```
, {! x/ S  I, _% v
  h9 c, }' K8 l   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 22:09 , Processed in 0.020898 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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