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

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

[复制链接]

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
8 y. p" i$ p' J& t7 |! Y
/ u' _6 ?4 P  G. [& U& z1 G9 `9 T1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
1 F& b$ F& O7 b9 p
5 y; N6 M; |6 t  z6 V& H! _) e2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。# R( h! A% e6 a9 |  v8 k: _1 @
. Q) ^1 z5 S9 M6 |$ t! i
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。: N) s* q0 l% i* Z" o0 Z' a
- d" }/ }1 h, ?& G
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。. S: J3 b- s8 g
- @- ]4 ^0 x# n: _+ @
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?  B0 u1 J* Q& G4 m( h; o  C
! Q' z" \' X+ R0 Q
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:, W1 o+ Y5 j: n: e* F* a1 I  T
- @2 {/ M7 p6 ?% O; M6 w
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
6 D4 S4 C/ v4 w, L1 j8 m+ T
6 g* r- b: F: ~- S# ~! `   ```
' G* Q& [6 q( n$ l9 g   add_menu_page(
( |7 j; t3 }  r! N. a2 A- Y% X% P2 `9 ~       '全站公告',
5 U& R/ _  f( y' Y       '全站公告',
8 P/ o+ r3 r8 b0 G  [0 u! g       'manage_options', //需要的用户权限  Y  z) @) b  u0 ]0 j6 w
       'site-wide-notice', //后台页面的 slug; }* f( ~. ~3 y
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
" X6 M0 }' v* N! Z" u       'dashicons-megaphone', //用于显示在菜单中的图标) q/ r$ Y, X$ k) v, V. a
       30 //菜单项的位置
% J- I: ^0 S1 e  b   );$ V( m6 W) k  \9 Y' U
   ```' d% I4 N) J) l' J  y; V

1 U! [$ m; b- R% Q( A5 }: A   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。; Z+ Z# K1 Z# Z: g% F  g0 k. b( r5 ~, m* c

7 L/ l4 u/ ~! G; d/ U( s2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:, l, Y* l# l2 Q
2 ~  ]* L7 q+ N/ y* A
   ```9 ]. X8 [9 u2 n5 g& p$ M" K  C
   function render_site_wide_notice_page() {
  i0 R4 x7 H+ V/ v- c( G      // 渲染后台页面内容
2 i4 N# C* U; {; b      echo '<div class="wrap">
4 S- F: ]1 c& J$ E0 I* V5 Z8 D4 x/ M          <h2>全站公告</h2>1 ?+ |; ?4 o" E% e  o& Y0 Z3 V
          <form method="post" action="">9 c) {8 l0 W& Z( w: v" K' B
              <label for="title">公告标题:</label>
  k5 X& w) E6 z% R$ n, T2 C              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
; d" q* L4 F  ~/ A              <label for="content">公告内容:</label>
7 t& P6 ]. S/ K8 v7 o: I              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>- k9 }, K& o0 N- o  M* ^; i
              <input type="submit" name="submit" value="保存设置">' V# }% m1 L9 a' r+ {6 B4 L
          </form>
9 f) @% U9 c5 \8 D      </div>';
5 z4 |1 I+ t, }, A* L$ w( X" J& {/ o
9 }& k3 X4 ]1 P  E) B      // 处理表单数据
  ?: K7 {0 g# q      if (isset($_POST['submit'])) {
' t1 w; M# F: K( m          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));% |6 J3 v- Q7 H% e  X/ n3 D1 W
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
+ d6 E0 q2 ]' M( F; p      }
, k7 t5 u' q4 _1 v4 S   }
3 t) p/ H1 T. _& k; N5 I   ```' w$ e4 H. R' o# C+ y7 G( |) H

/ s( Q2 \+ Z9 F( u( a   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
: d7 k& m" [& o  z5 F* z) X* M9 u1 z! v" N
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
; j1 W2 q; k, |, c: E9 g  X: @2 Z, M1 b. H
   ```
; {( H0 ~6 {( c" H, W; R+ B   <?php8 X! U3 Q" B" W, b1 D
   $site_wide_notice_title = get_option('site_wide_notice_title');" C/ u1 J( Z: U. `5 L
   $site_wide_notice_content = get_option('site_wide_notice_content');
% n& }* Q8 Z* i   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {: g# I) v' w) ], d% j
       echo '<div class="site-wide-notice">';$ h6 ^8 g; {" u
       if (!empty($site_wide_notice_title)) {5 d# X0 O$ h. V  ~: L
           echo '<h3>'.$site_wide_notice_title.'</h3>';3 R$ f8 {0 M1 e4 G
       }+ U6 n+ r" K, Q& R: o; K' ~
       if (!empty($site_wide_notice_content)) {
7 ]  \7 ~$ y2 d* e1 r           echo '<p>'.$site_wide_notice_content.'</p>';
7 r( x5 Y. t$ N# R8 [4 x1 @       }) b" ]* o* u- H( H- M! g$ d
       echo '</div>';
* ]0 R* B' j: ^# Y0 D# e   }
4 p" v% N8 E2 Y; v/ s) e! K- z1 A# L   ?>! Q: {, B/ u' l$ @) C
   ```
- ?) P0 }# ^* |2 u+ N  X8 ?! Q: w& q5 ?7 L) W. ]9 V: ]) J
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
% ?% n2 a/ y2 P6 T) ~- o' F, S
$ |1 m; E8 j: X% I! `请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?" T" [9 ~- u4 L& {
' @8 S5 h$ w, n  S
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:# g( @) r4 q2 O
: p& N9 \( L9 H& X% M) M
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
& o6 j  {+ H+ c6 _/ u$ d( w
5 @# X5 y# q5 Y$ ]) l- n( ?- M1 }: ]```
9 c8 K6 Y* n% P+ Afunction create_custom_post_type() {' J9 D* B5 e! N+ T. X" g# t
    $args = array(
1 ~8 E1 B0 ?- C9 P  G1 c) _: w        'labels' => array(
9 h2 a$ N6 w4 M4 V6 z+ O7 x            'name' => '公告',  w5 h+ P7 @* e% b) v) i6 U
            'singular_name' => '公告'" J! _4 r  b5 H  ]0 |" ^/ Z5 h
        ),7 _$ ^! f6 ~  ~8 t& [7 E
        'public' => true,
, c% n; u0 x2 H' G* b" T3 q* W        'has_archive' => true,4 e8 A. j( C* j; f2 b
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
0 y/ L, T9 t3 t. l1 G4 s7 S& X; [        'taxonomies' => array('category', 'post_tag'),
0 X, j+ f, _% s: a# v/ p* C' Z        'menu_icon' => 'dashicons-megaphone',
( C2 V& G0 [" g+ m* |# R: ^; t; H        'menu_position' => 5,7 ?# `' ]/ X) |3 ^
        'rewrite' => array('slug' => 'site-wide-notices')
0 P8 z; p. \, K  e8 E( ~    );9 ]4 J* q4 p% s: t
    register_post_type('site-wide-notices', $args);0 N4 O/ l3 S. c
}7 H, m1 [4 R9 r& \
add_action('init', 'create_custom_post_type');* g. Y4 Z/ l, C( [7 S+ _4 w
```) y6 K) f/ c: J4 G5 w/ s

/ h. K, R8 n8 ^; M9 q在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
: w& e1 ^/ n6 m4 l
& u9 y( k+ D6 H  w( ~; Q) ]# Z2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
; @  Q# ~- p3 z" b/ z
* ?; E, C! s) q9 P. H3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:- a% [  {' ^# K* @+ J3 l2 V
6 X# }# h/ z  U9 _/ g/ @' L0 e1 @
```: V5 U9 I' o: }& E+ q/ l; y- P
$args = array(
( e) u1 `) T" ^8 W8 _' E" j2 h    'posts_per_page' => 3, // 显示的公告数量$ }4 @& M; {4 z! T: ]8 S2 X* s
    'post_type' => 'site-wide-notices', // 公告文章类型
1 [3 o* q  j% v% Z4 o    'post_status' => 'publish', // 公告状态
8 V- c& w% S3 ~    'order' => 'DESC' // 排序方式
4 g6 p% A2 k5 t0 E8 y  p5 a' d+ x0 F);
6 ]2 X  \! S: k. l3 j2 Z! @. D7 Y; c) T; B3 b' ?) a
$notices = new WP_Query($args);
1 D2 W# l8 T* cif ($notices->have_posts()) :1 B/ M+ P& d" m5 S+ x6 `4 v7 m1 {
    while ($notices->have_posts()) : $notices->the_post(); ?>
: x' S; n% |0 b5 p        <div class="notice">& A5 z7 @4 n: b1 H* l
            <h3><?php the_title(); ?></h3>
) T& G' a7 h: V% x! K1 R8 {            <div class="notice-content"><?php the_content(); ?></div>$ l) [' H& }5 p, o& R. Q% E
        </div>
2 I4 o! Z" ?, O    <?php endwhile;  W6 D6 u( J4 {1 |0 ?
else :
* G* q1 }: U5 p: E) H1 M  U    echo "暂无公告";
. }9 k: J' R' W7 Hendif;5 }5 w) y' L% r3 |- j6 |& @
wp_reset_query();1 b( d" i; ~6 G$ K
```' ]) Q  I% `  F: o# k  ~0 x; ^
8 d+ }7 ~, G+ ?
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
6 l, \& @/ C$ Z
/ G# j; S3 [# u7 A. [; ?以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?0 b+ W; d) B2 V

1 X" R' \1 H3 c3 ^如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
! j! u3 v6 k; u& v& f# E  |
; T$ O4 k1 k. h/ P9 l$ ^  L以下是创建自定义插件的步骤:
$ N$ n% h. J. S. m# `% f9 i& I6 G+ }4 ?# i8 d/ ?* g
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
4 j8 e& z' L3 ~. T" X
; u  ?' U" G- M* S7 z% N& b3 h8 M3 R4 r   ```
0 u1 J9 s6 g3 r, L, g: F4 W   <?php
8 I! l# @8 I; n# M   /*
/ L; G) r# [! h. [; q. x+ H+ ~   Plugin Name: Site Wide Notices Plugin
5 E1 m# E& k& B) h   Description: Adds a new custom post type for site-wide notices.  x! O( I! S7 m  z
   Version: 1.05 d$ Y* D+ r- |$ P
   Author: Your Name
7 [) H& ^6 ?1 a! F   Author URI: http://example.com+ K6 S( N+ i4 R* C/ B7 o
   */
, k+ ^/ K5 e' K  ^* M3 ?# p5 K+ _" j6 s$ J6 D, Z
   // Add plugin code here...
8 j4 H2 _* W' D7 D( ~   ```
0 [: ?) x+ j& {1 A. \* B1 C
3 G- L. `( Y! A% H1 z1 n& _/ b   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
0 m0 h. I  y' E" b# J. W; c8 F6 l# X
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:1 m, K9 Q. W+ [5 n" r& t
2 F( z' V5 W9 L0 }; w, Z: \7 h
   ```$ l! c9 G3 Z3 K% I9 n/ ~* H
   add_action('init', 'create_custom_post_type');
) ~5 K$ }. e0 W2 r   function create_custom_post_type() {3 f6 ^8 t. p7 E' t/ V% C0 Y
      $labels = array(
  ~: S5 g2 A; j7 y: ^* w3 t          'name' => 'Site Wide Notices',
9 \, f% r1 Z% E# o6 e. [) @0 P: }" R8 B: Y          'singular_name' => 'Site Wide Notice',
! d( j# u- \) |0 v/ j          'add_new' => 'Add New',8 g8 G/ N% Y- l
          'add_new_item' => 'Add New Site Wide Notice',
$ ?1 q- y: S' `8 s& b3 E2 ]          'edit_item' => 'Edit Site Wide Notice',, ^" y$ S1 j' ]& @' c
          'new_item' => 'New Site Wide Notice',7 b) g9 k" [3 e' X' d) N/ a
          'view_item' => 'View Site Wide Notice',# z, O; e+ e  h: o. j/ ~) f
          'search_items' => 'Search Site Wide Notices',, ^; e3 V  T- S" o9 }* I, ^( T  l
          'not_found' => 'No site-wide notices found',
- E, G3 ?  Q/ U6 N$ W; K$ b- M/ D          'not_found_in_trash' => 'No site-wide notices found in trash'
. c+ T& e4 c1 c8 ^  J6 i      );
2 b0 ~5 d1 S1 h1 L8 z/ L
( o7 z, h) |- I) u. X! Z4 V      $args = array(
/ i# ?( y, g7 a# S9 h2 G          'labels' => $labels,, S: ?7 t- c; p7 `% n( x; H% S+ I1 c7 O
          'public' => true,
) H$ e" n/ v9 z4 Z          'has_archive' => true,4 U7 S3 Z( c+ O- ?5 K4 H( ^; ~
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),: P% w4 S( ?9 w/ N# z8 c
          'taxonomies' => array('category', 'post_tag'),: R, ]1 s3 u3 z/ \1 X9 o
          'menu_icon' => 'dashicons-megaphone',9 z: B$ d% \3 I6 E- U) L: U
          'menu_position' => 5,
. H$ @9 M; q: P6 C          'rewrite' => array('slug' => 'site-wide-notices')3 o) _( [( k- W: }3 U
      );- ^2 x2 ~: }8 P( `4 r

! e  z! m5 N- R+ z- M) |1 }  P3 [      register_post_type('site-wide-notices', $args);
0 C7 b" l/ h( b6 P  W   }
7 I$ O" q$ [6 D: h! ]   ```# f- q; [* `1 [

" r5 C4 W  d$ P! @% u: `) t2 E7 [1 i   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
# r" C6 L( P2 O, _5 [( W4 k. h" E
. \. j- k# W$ m) m* l+ n) K3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:" Z, G: q4 I" e* G* n6 J; \
6 A9 q3 N$ `) j9 f( A5 M
   ```4 B  d3 Q( N! z9 \0 q
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
3 ~$ `8 O/ Q* s/ x   function add_site_wide_notices_boxes() {3 ^9 q" U% q) F" A: k5 b6 J% j
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');5 f% W4 I# |% n  i5 F, e& ^: H: O
   }
1 \( w2 U- m- G  D$ a1 m
" G4 T& q- o! Z- i   function notice_details_meta_box($post) {
) y! r  f# G* O5 [      wp_nonce_field(basename(__FILE__), 'notices_nonce');$ @' z* H  p9 I/ P- A# t! e" f; P
      $notice_title = get_post_meta($post->ID, 'notice_title', true);& ?( ]. X9 k; b( ?" H1 {/ E
      $notice_content = get_post_meta($post->ID, 'notice_content', true);( u. `; f0 A! U9 e6 @
      ?>/ o3 {' v9 h2 k! [
      <p>; W* ~! p+ j7 D7 _, I0 {
          <label for="notice-title">Notice Title</label><br>, P2 p# F7 d1 a# z, y
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">$ [* @( X0 S7 ^2 p4 `
      </p>: r" B  K0 J3 Y; {* X1 l
      <p>
* h4 z8 h& b$ b3 h) ^( `9 ]* q- b          <label for="notice-content">Notice Content</label><br>' Y. \. E% c2 Z. y0 a
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
2 x5 ]# ~, t3 T7 R      </p>
; M! M- e/ b1 B8 g1 Z8 G' i9 j+ y. d      <?php
8 w6 j" Y* a4 s/ W. ?   }! `; f1 _/ ^1 G2 u! {
1 v- m  G  j# E/ B% j# h
   add_action('save_post', 'save_site_wide_notice_meta_box');$ s9 z- y2 O6 s5 X/ u
   function save_site_wide_notice_meta_box($post_id) {
( r4 v' o, n+ C& {8 `      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))6 u( r: U) N" O
         return;
  t- y( Q& n8 u      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)6 v1 I$ s1 e( j( a% L, F: a
         return;
& Z; C2 ]- L: I4 i; v/ N3 r0 P
2 b2 k+ e9 {8 c9 {6 R      if (isset($_POST['notice_title'])) {# m8 d" Z! g6 H& J, H5 f" c6 E
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
6 h* W5 d% D! O; D* G      }2 q! W2 g0 o* T2 R
      if (isset($_POST['notice_content'])) {, M/ U/ @  m* y, T' n$ Y; t" V
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
& Q9 V; q1 L% i3 d( c( p# v- n+ S      }
; Q& O) J% L7 M& s( Q3 }9 [0 N" k   }
% Q1 C- U) H& E5 W& s3 G   ```
3 I+ X9 a: X$ I4 C' l( {, s. y: H/ ?0 A: F! {0 U
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
$ d: R3 ?9 a7 E% u) l* U% w8 R3 i. \
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
. P/ v# e# |" n9 l8 }" |6 g8 C9 y5 t
. X) [! _& C  s. s! J; C3 r3 W+ W   ```( A: Z- x. m- Z
   $args = array(9 {8 M1 E5 `/ N* R
      'post_type' => 'site-wide-notices',! R+ c: L, s3 O; U7 k& [
      'posts_per_page' => 3,
, D! \/ @0 I& R4 U4 Y) d, [4 n      'order' => 'DESC',. O% Y4 r3 Z. F7 y; V9 p
      'orderby' => 'date'# s2 {$ D4 I7 I% R- ^4 K7 j* y- }
   );
/ g5 b+ {* ?& e9 s' N0 ?   $query = new WP_Query($args);
8 Y% n; z! l# p: s3 P   if ($query->have_posts()) :
3 D% O6 s* t% c      while ($query->have_posts()) : $query->the_post(); ?>
) @) q, _0 ]% W9 ~, Z          <div class="notice">7 G& u3 F9 s4 D- N9 C- w/ Y
              <h3><?php the_title(); ?></h3>
( B5 x  y/ V0 Z7 W! Z% \8 e              <div class="notice-content"><?php the_content(); ?></div>1 X4 C/ R) x9 a8 O. L. P
          </div>
2 |9 c3 V2 X* g1 K      <?php endwhile;
7 y. c0 N5 x: B' e5 J      wp_reset_postdata();1 G# ~; P, I# U3 r3 t; @) c  A
   endif;
- x; R2 v; h5 c5 t   ```
* O5 W1 d5 r$ I- q4 C* L- W
* d! G0 K  t% y6 I  b1 ?/ \   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-19 07:53 , Processed in 0.024891 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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