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

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

[复制链接]

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
$ U3 w2 E8 P: t! i' W
& x& S0 G8 t8 S, ?( k8 n. L& W# Q1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。  P6 g) d: c; ?8 m8 ?
& O$ v. Y2 E* M8 [' {4 o4 d& a
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。$ O; ]+ c( Q' o$ ]7 [/ @7 r# T' s

8 P, ^/ ~2 h# U0 n4 ?: H1 c3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。/ ?- u' V1 C9 Y# r, A2 ^: {
3 \- H# X) I; a9 {' _! l. m/ S
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
5 g; l4 b' b' F/ v6 v/ {* o; e1 k6 [' p1 g4 u$ P: K
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
( N6 m$ s4 E( w/ N/ W- w2 B8 T+ }" z3 g' V/ \; g) J" c
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:' r9 [% `- Y' ~7 L+ ~; X/ B) n" c
) R; U+ \' G" d: p
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
4 i. Q& P, l: j* E1 K( @4 r# Q6 `* }+ b' a! m
   ```
8 p: N, D  }+ Q9 _7 U   add_menu_page() K0 r( T) q9 @" M3 U* i
       '全站公告',
# D7 f+ I: `4 t. d2 T# B% d       '全站公告',- {% y  a# c0 F" i
       'manage_options', //需要的用户权限- p1 Q% \' D- ?& y& y5 `
       'site-wide-notice', //后台页面的 slug$ e4 a- D9 Q0 p& G( G( B. D2 c( n4 h
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
: i0 G3 C3 u9 n9 r9 Q3 \0 Q& s       'dashicons-megaphone', //用于显示在菜单中的图标
2 o! i- g' ~! h) w! n! z8 E; d       30 //菜单项的位置
9 i- J' c1 S2 c) t   );' F8 r+ w- V& f
   ```2 M! m( o7 u/ {2 y
6 o4 y2 T+ C; I+ `3 M
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。9 O& x8 L# O9 T% S3 E! F" G
6 U8 E3 c: [" r! |, K' G% G0 g
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
+ f! z6 E9 l+ |) p5 R2 ^
: b2 T: v- L3 W- E   ```
6 O  i: B% D6 z! ^   function render_site_wide_notice_page() {/ @2 _0 x* r0 z: A. r* n# S
      // 渲染后台页面内容1 a1 i9 v# n$ h- k& k' G
      echo '<div class="wrap">
& b1 q% t+ z5 g- f) A8 D! F# `          <h2>全站公告</h2>& w, S; h# u! {' q* R+ x
          <form method="post" action="">
% \5 f2 N% s+ k              <label for="title">公告标题:</label>6 J, I& N7 a' v9 ~$ b1 q
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>0 W1 c" j" G) E8 |# k
              <label for="content">公告内容:</label>  p( }0 T+ l! a5 x/ t/ Y' Z
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>& ~  ]" x& r  k* s
              <input type="submit" name="submit" value="保存设置">
. ~! j4 @* j) D' Q6 I          </form>
4 k# }+ \4 ?, C% O! k9 l8 z      </div>';
" }9 J) t, n1 Q5 g& r; [
9 S/ K% I0 e/ F7 G1 s  b      // 处理表单数据
' A3 A( Q/ M/ i& G6 h      if (isset($_POST['submit'])) {
! F  `* T, \0 F- I          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
# D# z5 F# c" P( O          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
, n2 E9 I- o( m8 W! g$ F; q      }
3 K' ?" @$ d) v3 r  h; g9 w9 n   }  Q2 y9 E, t3 ^6 |7 C( `2 w
   ```
$ T0 X1 a! K1 z- g3 r7 M
' h' d5 l0 C5 L5 \' s) L" O   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。' I7 O8 F6 ?& m4 x2 T8 u
/ `# V! p* j3 R/ e
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
, o& K5 m4 T3 |0 \5 {1 N; B
5 L8 y( g& C; \8 L( q, v   ```/ U6 z5 r( w' Q
   <?php
4 _) {7 ^, k8 f  q+ x( A   $site_wide_notice_title = get_option('site_wide_notice_title');
0 x4 ~6 x- u" M; Y# S   $site_wide_notice_content = get_option('site_wide_notice_content');& V0 M( L+ f5 ?. y' o
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
0 p. u; `3 ?# I       echo '<div class="site-wide-notice">';- A( ^; ?) l2 a7 f: b1 Z. q, p0 V3 H
       if (!empty($site_wide_notice_title)) {$ t# v& X% Q( q
           echo '<h3>'.$site_wide_notice_title.'</h3>';8 Q* ~! f4 S7 ^7 b
       }
% x% d' e, O3 g2 H6 d       if (!empty($site_wide_notice_content)) {' g$ r- A/ [3 z6 ?/ v
           echo '<p>'.$site_wide_notice_content.'</p>';
" y7 B6 W8 o8 G( h, U       }
% Q* U, b' r- O/ |9 y       echo '</div>';
, y7 f0 O5 w2 g7 a+ ~   }
/ `( M5 ]6 Q8 Q, P0 W4 X1 n& Z8 [   ?>3 \% \/ C% Z9 G1 [7 u
   ```8 u" S0 f8 |% F% ~1 ]

/ @; b. w! m6 x% K% {1 F- N   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
5 l9 {7 w" H* F4 n
% x( r' R; Z5 d/ b! d请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
: e: h/ `1 X  `1 v
& ]: g, v/ Y9 Q/ H4 M' W您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:3 f: b" ^0 t# j! f/ r
$ m! P$ c- U, }  ~4 S
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
9 h1 N( a- \0 j  q, \
; z! N& W: m  d+ o```1 }7 O" A0 S( y3 v; ?1 i1 {' D
function create_custom_post_type() {6 O: X& b  f# g5 U; Z  ^
    $args = array(7 E* _" A2 x- |$ _1 E$ p  P+ ~( X
        'labels' => array(' |+ F; u# K1 e; b# n6 Z3 s
            'name' => '公告',# I' ^/ o( L% h
            'singular_name' => '公告'
' a% m7 s: z& V6 d- Z2 Y. g1 ]9 _        ),
8 {) P8 L5 {2 T3 n. x: x        'public' => true,7 L3 p( f; U0 y
        'has_archive' => true,/ h) I2 D7 a5 F2 J9 C
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
( T$ Q6 q$ M& R4 s& o8 X0 Z        'taxonomies' => array('category', 'post_tag'),. O$ s3 x- m& @# W- ]4 {' R' Y0 y  p
        'menu_icon' => 'dashicons-megaphone',+ }1 A- ~7 P( v, @0 o$ R0 m+ v
        'menu_position' => 5,; `% ?0 B2 ^* b0 ?3 ^2 p
        'rewrite' => array('slug' => 'site-wide-notices')
5 g2 c; l8 Y% r5 A, B1 S3 g6 r    );0 r$ A2 e4 x# h- Y$ b9 I+ q
    register_post_type('site-wide-notices', $args);' o6 J# N* K! B
}
# E$ g& w8 V4 o. Z) I0 Qadd_action('init', 'create_custom_post_type');) e4 b. u; v/ }# N: x6 i6 b1 q; N
```2 O, g) [+ \8 X% O

: \) \. `$ x% l2 H$ A/ @在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
, j& R  A; C8 U9 r- ]( i* b& z- l; E7 X9 M; L( R' {7 w9 S
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
' e3 h/ V, p, n6 x( D2 o7 P' t1 L/ I- G! q& i; w
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:! Z) y/ K  \, f! I" n- X/ m' x

4 m9 s1 W4 t$ B7 N( Z$ F```8 T, o5 y( i2 _
$args = array(7 C4 r. C" M6 J; ^
    'posts_per_page' => 3, // 显示的公告数量7 Z7 q, @: I* Q
    'post_type' => 'site-wide-notices', // 公告文章类型
! i: c$ v1 |2 f6 L5 P( {    'post_status' => 'publish', // 公告状态6 d* _. p$ J: m6 N. c
    'order' => 'DESC' // 排序方式
0 ]8 m' L; N: [2 |; C  R5 u  q);
# W8 D/ p. w* U8 g- R/ @0 N1 e9 c  v; `5 f2 @. |% ]* A
$notices = new WP_Query($args);
. N. u* c  s) o% `if ($notices->have_posts()) :
3 r  U  [" f1 W& ^( {. Y, u6 X" y    while ($notices->have_posts()) : $notices->the_post(); ?>
2 `; k, j4 r: j. `        <div class="notice">
- R! B" l; o# R7 P% w            <h3><?php the_title(); ?></h3>3 F; e: A3 X! _7 I3 H
            <div class="notice-content"><?php the_content(); ?></div>
5 w4 s  m8 |% a  }- @  S7 l        </div>
; w: ^( M, U' l* _8 M    <?php endwhile;0 {' r' S) C6 ?& o1 t2 ]4 E
else :) h; g3 ~0 \  y6 o/ n
    echo "暂无公告";
5 \0 `% b' z- Q* r- z5 y4 }0 S/ Pendif;
/ k2 ?# W2 S5 x& iwp_reset_query();# v  W/ _# x# {4 ?4 d
```
1 H+ [2 m' l# q% c9 S' T1 s9 y/ L. W$ w' v* ]; Z5 v8 c$ W
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
# X7 t& p8 ?; b! B  }& ~3 d( n- T$ |2 ?8 [. Z% n2 l
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

529

回帖

3528

积分

管理员

积分
3528
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
/ D% w% Y0 T; y$ x/ E2 T
! f5 p$ z) v& E如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
* I: T1 K3 j# J# ?( {
' w8 x. ^/ F! ~( x$ o以下是创建自定义插件的步骤:( N) U2 C% Y; N5 d
' T" s" }7 i7 G. I
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
% c  B5 X. H/ U/ H; H$ n
7 D: |2 R7 h' c/ M   ```8 [! h$ a2 q3 S
   <?php
; ]7 o* L2 z% w   /*$ x$ C, O7 A9 V  D; q
   Plugin Name: Site Wide Notices Plugin$ E; N1 {1 i3 A* e2 H
   Description: Adds a new custom post type for site-wide notices.
  h( j: \* K  v* l$ N( \$ B   Version: 1.0
/ B% F) G0 J* {6 U7 W   Author: Your Name
" K7 U- K4 }1 I) c. s   Author URI: http://example.com
  |# D& A7 c& ]7 W   */
5 [5 V/ q0 d1 u, k3 F0 |1 ^5 J
4 y$ B4 G: W' h& G+ J( S- ]) `   // Add plugin code here..." d* H) q( O! ^3 P% R4 A6 L4 O
   ```/ `; ~# L  \; a/ n  r& T6 g
1 l3 ]  F: C% E" D4 B5 @/ S7 X0 j
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。0 i5 F, Z, n. Q. a: G

/ {4 D7 a) Y* Q. j0 T0 I& O! G# ~7 c- z2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:7 k. S% v$ q" s9 O6 ~, p8 q& w
8 w! c/ }; P7 M# [# h/ o
   ```
* w/ g- G" Z: G. [- r$ r   add_action('init', 'create_custom_post_type');
- i" K7 n$ T% Z+ }; W0 e   function create_custom_post_type() {
0 s9 Z5 m/ I; u2 e      $labels = array(3 j: c' P3 L8 a
          'name' => 'Site Wide Notices',
9 H  U7 |. p7 \( O1 Q7 z' u          'singular_name' => 'Site Wide Notice',3 }& T& m) S1 x; t2 k/ [$ `- u2 x- B
          'add_new' => 'Add New',
4 _+ e5 {6 b  j' d, l* T0 J( h& l5 K          'add_new_item' => 'Add New Site Wide Notice',
4 N0 P9 e1 Z4 X( G" m          'edit_item' => 'Edit Site Wide Notice',
- h) |% I) o! y. y! P) J* I9 B          'new_item' => 'New Site Wide Notice',! l7 W+ B. c: P) q0 R: y% ~/ I- H; F
          'view_item' => 'View Site Wide Notice',
* y6 k- h) j3 A- X$ m2 X          'search_items' => 'Search Site Wide Notices',
1 D- Y2 Q$ {* s5 ~- u          'not_found' => 'No site-wide notices found',/ l" q  K* a  R3 E8 p7 l
          'not_found_in_trash' => 'No site-wide notices found in trash'0 b8 u* E3 N% f6 M& r6 t5 i
      );
# d0 F" B1 I1 r
. V0 d# p/ g* M/ a6 B      $args = array($ H8 q/ }0 ]0 u  p
          'labels' => $labels,6 v4 Z1 s0 \8 Q7 E# M
          'public' => true,+ ]  f& c0 i8 E+ m6 h8 e
          'has_archive' => true,, T7 K* Y' \5 M- x% ~7 }7 B
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),/ ~0 {3 x9 ~% H$ P6 \5 r
          'taxonomies' => array('category', 'post_tag'),
% ~  c3 u$ c" B# F- Z& F1 ]          'menu_icon' => 'dashicons-megaphone',
1 G* T& ~! Z/ E" J& [) d% @1 J5 s          'menu_position' => 5,; J9 h6 q1 g3 G& G1 Q6 }% J6 G
          'rewrite' => array('slug' => 'site-wide-notices')
1 c: G; O& f/ G0 x8 J9 Y      );1 u6 p6 j0 c. A& b+ m

" i# n) b; d" ]) t      register_post_type('site-wide-notices', $args);, i. U$ q8 K( |: X8 G! `
   }: n' Q# F" k: h7 f. I7 E5 r0 ?" C8 |8 A
   ```2 p/ ?/ F% A6 g3 f: s! N2 G: S8 M
7 n; g  P3 [9 W; h' p
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
& C# A( g- ^4 W1 N$ L; }: I& r! l# h6 M; A
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
' @6 [9 f& _/ x6 v/ [8 C3 M  q' F; r( F7 D; r/ L
   ```
9 x* z" g6 Z/ x% z# w0 z! B/ _& `" v   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
- f8 x! P  {" A7 ?   function add_site_wide_notices_boxes() {
  i/ g2 ]% G4 l      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');2 m* A$ I: J- V' X
   }
, v: z  O. l+ D0 b7 ?. P+ `! J* s" y
   function notice_details_meta_box($post) {
# X& l  P2 o3 s! D7 [7 U* x! d      wp_nonce_field(basename(__FILE__), 'notices_nonce');
: R4 a# X: L5 B. I      $notice_title = get_post_meta($post->ID, 'notice_title', true);
, i% X, S7 Z# y  [; |      $notice_content = get_post_meta($post->ID, 'notice_content', true);+ @  |8 z7 L; B5 V# K) D& n6 D
      ?>
) l: r5 q3 w9 I$ p& X      <p>
+ W% t" T8 n, y2 w8 X( X          <label for="notice-title">Notice Title</label><br>
! M5 N; D4 \3 z1 d& ]1 a( z          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">  J  r: v6 B8 D: Q
      </p>
( Y: s! G# t, [8 z; u/ s      <p>
8 j$ z- f; d3 [          <label for="notice-content">Notice Content</label><br>
* C# P: D& m! V7 j' F4 Y% l* t          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
( V: Y0 e. m, x1 w+ s- G0 N  \" {      </p>
5 a" L6 m$ U% y) K      <?php* [2 E' G7 P5 _) V1 l9 x. J
   }9 W$ ]" v9 |6 S2 n: U
  S7 P  M- g" s6 P  B
   add_action('save_post', 'save_site_wide_notice_meta_box');) K9 ^! b3 J3 U9 F+ G
   function save_site_wide_notice_meta_box($post_id) {5 v  o3 T/ f9 ?- ?0 r' ]  S, v+ v
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
# r# N0 Z. o6 E6 J+ `8 ]& F         return;5 u. W5 y: s1 }. q! h2 S) Z2 ?2 f
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
8 f. u# [" s. \, g+ R1 w0 l; _         return;% F, G% Q; H. \& p( U) V! M

6 {, l  R+ u6 Z) B) b! k, ]      if (isset($_POST['notice_title'])) {
4 G: u1 l. g3 `* x( L          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));( @$ v3 S& ?! K7 x; h7 [0 n  q$ r
      }
% m: ]$ E* P8 n! T$ f# O      if (isset($_POST['notice_content'])) {
1 P$ Q2 t' f1 z/ B! l  G% o/ s          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
4 m% s# Y3 X- M. G; k      }) q+ r, i- h4 Y* f
   }
/ M8 F, C7 s0 s- o( Z5 a   ```0 k0 g  R! W4 I
2 }1 i& R* y- }, q4 b' M5 N& Q
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
! U8 v& n6 M* ~& v' n: T1 |' H  l1 r7 k
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
4 v4 G, k) P' Q4 e# f3 @4 R- J" N% g! p$ ^; `; K
   ```; r: X" g+ M' f$ ^  x- Y
   $args = array(9 W5 w# ?. F- x: N* R7 _
      'post_type' => 'site-wide-notices',
8 v2 K: f6 {( I$ ^7 X2 A' k      'posts_per_page' => 3,% \: L: J4 {4 E) [) g* N- r8 X9 U
      'order' => 'DESC',- C$ J$ |( V. \( G: J$ i
      'orderby' => 'date'$ {8 v$ n# U! S2 O7 C9 P; G. G. t
   );
: O4 j0 C$ R( ?" `   $query = new WP_Query($args);- N; q6 `3 S$ w+ i3 F
   if ($query->have_posts()) :4 k) ~' k! u" S9 F0 b# }
      while ($query->have_posts()) : $query->the_post(); ?>
& e2 _. p% ?& C* d2 m+ s          <div class="notice">; y. d8 j, u. ]+ d' U
              <h3><?php the_title(); ?></h3>: X! J7 F; J. O4 @8 K! X( g. X* I
              <div class="notice-content"><?php the_content(); ?></div>; V4 ^# L! G/ B7 u8 D
          </div>
! q) j3 p( w3 B! I$ @2 ^      <?php endwhile;
4 J' Q- J5 q0 M5 z6 Y7 j$ h' [      wp_reset_postdata();* v! d0 q& h2 b+ ]* B# w. X
   endif;
: _' A/ Q) \% F: ?& W5 J9 j; G6 k   ```0 }) Z- p% ]- t; ^7 u$ T) Y$ F
  u) `" h0 n9 b; q  z9 A5 B7 f8 [# N
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 13:04 , Processed in 0.024460 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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