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

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

[复制链接]

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
. I5 O/ ?. G; ]: N3 L6 R; F( w
: R' k+ B7 r' n( n1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
! Q# e9 _7 K( {' {: I
) ~, m; Z: I" _* S; j* M4 ?* ?" _$ Y2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。$ p% S9 f0 S( \# _, d
$ j& p( B; ]7 v$ F! B# u
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。6 y8 C( F  q' _! i& Q& Y6 i9 v

4 Z; h- K/ V' N' U2 a4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
9 d* S2 ~- y! a; r8 F* S7 i/ h0 q: ~. `( n3 g
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
/ O  V. p1 u; e& O# Y. M5 g- t- O9 l! c
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
( o# L7 N5 D  s# @. s" Y9 g1 Z8 Q) _* A
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
/ h( d# _. |. g: n
9 b- J  W! q  D; E; [! Y   ```
# g3 k& D3 u  Y. I+ H   add_menu_page(
8 t6 x4 B8 X1 @4 D% U       '全站公告',
8 p) d/ z# A) `+ P9 c       '全站公告',
" C) }3 U2 o5 \% N+ F1 l$ h       'manage_options', //需要的用户权限
: m  [- F2 S  \+ Z+ X! f       'site-wide-notice', //后台页面的 slug3 F% g3 [3 p. b0 R# Z5 I, Y9 l
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
( f7 n+ Q% P2 _/ Z* D6 j       'dashicons-megaphone', //用于显示在菜单中的图标2 K8 l! n& z0 R0 q% x  C0 T5 }) r" Z
       30 //菜单项的位置
1 ?* w: l+ g" W3 X; Q( N   );, s9 S! G' O- s
   ```
/ p8 Z* o& w+ t- P3 \# p, m
% o  h( h) H$ }# }" ]   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
) D; l8 r- b5 _0 m3 ^& c  K& v
) M! O4 f$ \0 R) \9 O" M1 X" }: X2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:) `5 ^+ u& S# |

: D0 U; [7 j, Z- q/ G   ```) R0 S8 t9 ?! A. q1 L9 ^
   function render_site_wide_notice_page() {0 f7 U, [8 v; S9 M) R- H
      // 渲染后台页面内容0 D7 Y9 i8 @- y1 R/ n/ A
      echo '<div class="wrap">* w. B* j6 g/ n$ I* b. M! d% }
          <h2>全站公告</h2># n( F, @( ]  g* f( N! N; P
          <form method="post" action="">: E0 z3 m7 q$ |& L# Y0 `8 K6 l
              <label for="title">公告标题:</label>
- M1 i( n8 I: A6 `6 L  e5 \* I              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>. ^! |, y. e) F* w2 k2 [
              <label for="content">公告内容:</label>
7 M: S. r# }* Q              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>* U6 O$ E: l' M& t+ ^' t
              <input type="submit" name="submit" value="保存设置">
5 C  Z# R3 @3 q; b: d& v0 |          </form>
& B6 Z9 A; U, i/ \      </div>';
; @( E2 w$ {$ `: l4 d% V4 n
8 q3 N2 U, d( f2 X: b      // 处理表单数据
4 `# S! V+ \0 W( k" _      if (isset($_POST['submit'])) {8 j: O$ y1 W' P- _
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));6 l* W1 H2 M$ h3 z6 H/ V
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));# _  l4 d0 v, |% d  q. e" d3 s
      }
3 m3 E' M, Y" w" v9 O" L( r   }
9 C& H" A6 C# N- C   ```& Q0 b" Y& P/ r* q

, b, O9 [" k! ^/ I& _6 n  H( ?   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
6 t" ^! s! K& |" \" A! U2 {( v& V
- b0 c8 h4 H$ P( L$ A! U3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
  L0 R: t! r6 Y6 |
# @. w8 X, g4 D+ k/ Y   ```1 C+ o3 ]+ f( _2 G; [3 B0 r) b
   <?php. l8 E& Q3 G1 D4 W* b
   $site_wide_notice_title = get_option('site_wide_notice_title');9 L) ~$ U4 `& Z" I8 K/ c
   $site_wide_notice_content = get_option('site_wide_notice_content');
/ N+ _" L, O6 E1 X+ C* w   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {+ e0 W7 Q4 F& ?+ R* ^7 Q$ w/ L
       echo '<div class="site-wide-notice">';$ Y; [: b# [. ]  |1 b0 E. y
       if (!empty($site_wide_notice_title)) {! I1 B8 V$ b3 H% K. w
           echo '<h3>'.$site_wide_notice_title.'</h3>';
1 G9 J' S" u% k2 s       }3 D9 x1 Q" O& p! {6 y0 T6 a" W
       if (!empty($site_wide_notice_content)) {
6 Z. S, R. _* |2 ?' I1 a           echo '<p>'.$site_wide_notice_content.'</p>';4 |. @' B0 |% B
       }
, ^" {7 `0 r" W% U; ^       echo '</div>';
* H8 M* r2 T& ~1 H3 N! B' Z   }
  b; m) n0 `7 H   ?>
" W, z  v8 B$ K$ q   ```( l; |' B# n7 @, L7 H3 ]# @
: `+ ?3 Q% c# n% k4 _
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
% @2 R: `! \; ]# {( \& n* c
/ S( j' H$ \* [  I! z7 |9 n请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?  z! x; \1 v4 F, w7 J, ~
0 [! m  A2 Y) n3 l
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
- _  K% ]+ G: m% W* p/ @# }) k( R- A7 h. p6 K5 }( u& Y6 G
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:9 A  W! D9 A: }7 E# P- [3 K1 S
6 N$ Y$ K3 x1 `
```
* M0 @9 @" t5 q% }6 `function create_custom_post_type() {4 T3 M! t/ V9 f# |
    $args = array(, Q- w) Q5 v* G6 X& ~0 G
        'labels' => array() F4 t9 S' K/ D1 ~9 K
            'name' => '公告',: {, }/ ], C$ d  P0 v
            'singular_name' => '公告'5 d( S9 }4 ]; X% ?9 X  S' C; L; X
        ),3 B1 F5 O) v$ Y
        'public' => true,
. m1 a) z+ a- y6 u# u# Y% c        'has_archive' => true,+ L4 x( K. s* ^0 Q& I5 ?/ W2 ?+ q
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
! G3 y  U' `6 c' ~5 Q1 s        'taxonomies' => array('category', 'post_tag'),( B" R" }) T4 B% y. c" x4 I: y
        'menu_icon' => 'dashicons-megaphone',
: r" f+ g! O8 A0 u( N7 h4 G        'menu_position' => 5,
1 r5 c5 P/ t6 n( w  D        'rewrite' => array('slug' => 'site-wide-notices')
9 R) N1 o! R: \* Y6 [4 v    );
8 n+ Q* c7 i% n' h2 ~& u7 Z    register_post_type('site-wide-notices', $args);
8 U0 b; J: j9 f" n: X, ^% g}
: u6 L( @- n+ O7 ^0 A$ E, X( zadd_action('init', 'create_custom_post_type');3 y. ], Q( ]8 B3 c$ [  x+ q
```
+ Y( R8 [9 T  {6 x( v* C" v' Y& E8 F; h( {
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
5 t; b% p4 w- [: e3 C! R; Q, }5 \( m4 U& l: s5 q1 D, h
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
! V! |$ S6 F4 x1 I
5 F' M1 W* j. ?6 ^6 O5 {: Q2 T3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
' k* @( i( s2 T5 b% ]- F& O6 k/ l* v( y* N5 B' R) u
```
3 v$ n2 C* D; o8 U$args = array(
- t5 G. m; _* `    'posts_per_page' => 3, // 显示的公告数量/ t+ z3 ?+ v  w- Y* _( ]
    'post_type' => 'site-wide-notices', // 公告文章类型
0 M+ L8 A8 X0 R2 A( o( e    'post_status' => 'publish', // 公告状态; @0 @' E: R7 w: \8 L( Q
    'order' => 'DESC' // 排序方式
; [2 s$ P: d: k2 N' K4 r1 J# F1 K);8 l' }5 @2 m- s4 W4 C. V1 B

! @% B5 X  q" k# ^) |$notices = new WP_Query($args);
6 \; {: J! p: b! I3 k' I; kif ($notices->have_posts()) :
2 F* U" I+ D: n) Q: I    while ($notices->have_posts()) : $notices->the_post(); ?>3 ?# k$ [2 I2 v: h! J9 F
        <div class="notice">- j+ e/ v% W$ P+ i
            <h3><?php the_title(); ?></h3>
/ V" h. ^8 T7 p# |- @! t            <div class="notice-content"><?php the_content(); ?></div>
8 r, G9 _/ \- f0 o/ p$ ~        </div>
& k3 s1 F5 q/ m8 d$ b) z) b    <?php endwhile;
) e$ {7 m0 V# f0 g/ F! Selse :
5 N- p  K2 Z1 {3 {    echo "暂无公告";
* m7 o& v+ G: r3 ~endif;0 d( j" H3 a  j- x$ \
wp_reset_query();
0 d( m# j9 b2 ]% O$ y5 D- V/ D4 m```3 l! V7 j' z1 E4 g# G6 h6 m4 L
% [$ b& {1 M9 R1 K( J* ^' A
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
2 a. B3 N/ u( m- z1 m
* C) [7 W1 D+ R, t/ H, e以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

524

回帖

3508

积分

管理员

积分
3508
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?$ K& ~; E7 v/ }- ]' G) C4 T! V

6 |4 e" L+ g9 Q0 t9 ~如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。# ~* D5 Y: E  f/ @" g2 w/ M8 V1 @: t
3 s; b  _1 U- J" F1 w) O. ]
以下是创建自定义插件的步骤:
& {2 s/ P4 n9 ~2 s: z2 a2 v+ D2 Y. _6 D2 a$ l
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:' B( X6 _# e2 c' z* U

  W+ H  d! X: }' B' w( r   ```2 a% K- V/ l. V9 `% Y
   <?php
7 U$ ^$ R$ u5 S$ f% s& B) |   /*0 i1 y! O) A% v4 W  E- [
   Plugin Name: Site Wide Notices Plugin
/ F2 L) t" U" U, o! I   Description: Adds a new custom post type for site-wide notices.
* L4 k/ W; i" j7 _' m   Version: 1.0, Z0 E1 ?- q; n- ~$ a8 z1 x: Q
   Author: Your Name
% k5 D7 {) S3 U) [2 @+ n   Author URI: http://example.com& ~4 U  c( C2 B* [4 y  {$ r4 x
   */. `) N. c" T5 T% ?% y2 F/ q
( Z# v4 Y& q3 x
   // Add plugin code here...
$ \( u* O2 d5 I2 u9 y9 H4 I5 Q   ```
+ R( e2 v9 X" H, r( W8 a4 p& [) T
% ]$ B; `1 q6 q( E  ]   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。0 r! o2 n3 U* q( W. B
; j2 ?% J; M, B5 Z8 O
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
- r. N2 F1 H. ^. T4 X/ n
  b3 Q3 m  t( Z' ~   ```4 c2 T  N. B7 L8 s1 z; ?
   add_action('init', 'create_custom_post_type');
2 F3 S( t; A( e4 x' f: a   function create_custom_post_type() {
  [+ j% k; K* W6 D1 t      $labels = array(6 m; r8 O3 `7 }* F% g' r7 l; n( f& b
          'name' => 'Site Wide Notices',3 o/ @  F3 p  d6 M! s
          'singular_name' => 'Site Wide Notice',' \2 a' N# S) ^( |' z( y' _# p: h; E
          'add_new' => 'Add New',2 h6 c  i" e5 C
          'add_new_item' => 'Add New Site Wide Notice',
6 q) O; m9 t+ I" d          'edit_item' => 'Edit Site Wide Notice',5 g! {; M+ N- I1 |' o9 {4 G
          'new_item' => 'New Site Wide Notice',3 m  D. V- @2 \8 s; \
          'view_item' => 'View Site Wide Notice',
% l% r  x; e) x& _5 Y          'search_items' => 'Search Site Wide Notices',7 b- {+ ?6 M$ z" {4 q) M' r+ ?
          'not_found' => 'No site-wide notices found',
: K- t: i  t9 o0 R  m          'not_found_in_trash' => 'No site-wide notices found in trash'3 ]2 `, f% Y! q3 |
      );2 V0 G5 R, b* o1 f/ T0 M

$ T7 y0 O+ {  O6 A' e      $args = array(# ^3 i. _7 K. [  ~0 R0 c, D, C
          'labels' => $labels,
* m+ A% }3 s0 i+ h1 y          'public' => true,/ j" G3 ~0 f) n" a$ I
          'has_archive' => true,) C. }- w9 M9 o! W" r
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
9 E% R1 L7 `( g; I  E          'taxonomies' => array('category', 'post_tag'),
/ R2 D% M+ F+ m& J7 ]          'menu_icon' => 'dashicons-megaphone',
& t2 U8 {- K# E* ^1 t1 @1 c) c          'menu_position' => 5,
) Z+ R  {. a- ~/ j          'rewrite' => array('slug' => 'site-wide-notices'), t5 r; G6 w+ @# |2 Z$ U6 R9 j( j; f
      );
1 P4 I7 W, E6 _% U+ ~% e
- F3 E: G. C' V      register_post_type('site-wide-notices', $args);
: J# t" Q9 V" j: T1 w$ O/ P   }: G! s! K( X8 v4 A
   ```: A; q1 ~6 y4 h- S% z8 T% y
4 a8 |0 [" d! r, q' \& q2 }2 T
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
, f' m) D3 k% Z( D& p' k  `+ A( @* Q6 r; k. _
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
5 Z/ u& P# s; a8 F4 k5 a5 r
$ @* T! q: J$ j) ?9 u! S% r% n* J   ```
8 j0 ]0 u! `( P/ g" d   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
' K1 m9 d2 f- x* r+ h: m% e. Q   function add_site_wide_notices_boxes() {. `& }: X7 w  D' z+ [. l
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
, Z. e5 d; ?9 n$ D( A; \% [2 H6 I9 p   }
" a  ~3 _5 E6 l! x; z: m- J* D/ z2 |5 f( O' F
   function notice_details_meta_box($post) {
( t' C4 |1 D2 y) q3 ]; E: T1 M      wp_nonce_field(basename(__FILE__), 'notices_nonce');
' l5 ]; p$ |% S7 _3 T. t7 B1 m      $notice_title = get_post_meta($post->ID, 'notice_title', true);
4 j7 j7 p. o2 {8 r7 p8 ?      $notice_content = get_post_meta($post->ID, 'notice_content', true);# n8 W7 _1 x. P+ Q! L
      ?>; K( Z6 y' ]( q' N  a* w% F
      <p>
3 b  `" O% D" U( p          <label for="notice-title">Notice Title</label><br>8 L! T: Z, |3 h$ T5 f
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
! B" W4 D6 v2 ~- O9 d5 Z      </p>
. h7 A( l8 ^: N& P# f$ W      <p>. w& \  y/ y2 R$ B( z0 r
          <label for="notice-content">Notice Content</label><br>
0 s, N1 r2 W/ U7 E+ s; v: ^. }          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>+ g9 c8 l9 \' V" c+ [# P
      </p>* ~$ r' E; w' A  ^
      <?php  r9 u7 Q6 S3 x
   }% R+ L" o- ]' G% N' l- F/ U" ]
8 F& y6 B; V" n0 q. y1 Z) L
   add_action('save_post', 'save_site_wide_notice_meta_box');9 S: h+ n/ s3 x$ S) q. h& c
   function save_site_wide_notice_meta_box($post_id) {
2 h: s0 Z: {' A- i4 |- Y% _7 h! H      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
: h/ _4 `- j% I+ S, ^; @# v# k! o         return;
6 a+ x3 Z8 D3 ^) \% |) V7 G      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)6 b- |% f) y9 ~2 t' k1 _
         return;
% Z5 d& }' a1 k- F" |, L: D, E. ?, y' z2 Q& A$ ^8 p& o/ H8 E( P
      if (isset($_POST['notice_title'])) {
$ G6 e. n7 j1 `' \, }% v: O. p& f4 e          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));5 v7 A; H2 }2 i0 {% M6 E
      }
# ^2 S% y+ u9 }& j$ w      if (isset($_POST['notice_content'])) {
* H6 Z- ^; t! v7 H$ H          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));' Z+ Q1 p2 i( `. n" I
      }
6 v3 m  M2 Z2 L, p+ H+ `   }( J  Z: p) o. n  h+ I) A, S
   ```5 i* Q1 \% r1 G) d% x
  o+ b" L; y% X# l& q  z
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。( D) t* e/ M! F6 l6 X5 K
& b0 I) o4 k7 V+ }- e- w7 p# F5 @
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
5 O0 k$ I% l, M
) ^% i  p  C+ D2 s' ?* y   ```: [' J, b' L. J/ s' U5 h
   $args = array(6 i; S8 N5 A* E+ f& X9 F
      'post_type' => 'site-wide-notices',$ f6 n# L' V5 Y. n, k
      'posts_per_page' => 3,
1 p$ k5 `8 u8 J' O) s" q      'order' => 'DESC',
( {. f7 @( n! q' c% w      'orderby' => 'date'
' Z+ N8 Z  ?0 H8 V4 C   );8 Z: }, L, ^# H, g6 }- x
   $query = new WP_Query($args);) a4 N2 X/ P' L9 o' @5 s6 f
   if ($query->have_posts()) :6 c3 ~: r: p2 Y+ G& h0 n
      while ($query->have_posts()) : $query->the_post(); ?>) `: h5 l& X  N  ?# n' n$ q
          <div class="notice">
$ ]. f" S/ S1 [5 w5 x              <h3><?php the_title(); ?></h3>
8 c5 d; J) L/ _# n( ^              <div class="notice-content"><?php the_content(); ?></div>
; e% `8 ?6 s9 Q! g) f+ f1 e. O          </div>% ?' T3 c/ g; q4 F5 L% t  Y
      <?php endwhile;4 V' L5 l% {4 \5 W& \: h/ f' \. ]
      wp_reset_postdata();) z" r( D7 u) {9 X4 J  p1 W5 V. ?) m9 G
   endif;( U0 s, f" ^- G5 d& @: F' E
   ```: I7 J8 f+ N. F# s) H2 S* f  f& W

  |# Q) X6 x6 o/ }) |   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-14 16:34 , Processed in 0.018852 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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