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

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

[复制链接]

341

主题

543

回帖

3579

积分

管理员

积分
3579
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:' O/ X" W. m2 W1 S  D
& j9 @& ?. b" l
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
% g# Q. u9 j1 K
) O$ y, l- g. V# x3 E2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
2 J  m/ s7 c0 Z3 ~- p' p- N2 K  m( U/ s
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
4 r2 a: a5 U! Y" V  J  q9 B6 e) E; E; j6 K5 R$ ?" l
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。: O* @& B0 V: n3 x1 s- a

5 S$ h/ }2 V" ~) r: b注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

341

主题

543

回帖

3579

积分

管理员

积分
3579
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
; N1 \6 R! G% R) B' i3 Y8 f  E; n2 M/ c
( T# P5 f# W- l5 V- ^# O如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
5 J8 S: t( c/ P
" E( }- H/ H0 F+ B& P2 U& T! G0 e1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
" I+ B0 q% r5 e
7 Z5 b, G2 B2 c' ?   ```8 c9 X2 U+ I3 M/ G+ |) Q
   add_menu_page(
. P- q( @) w  O* V1 l       '全站公告',/ G8 j+ Q1 ]) R0 I/ D
       '全站公告',- H9 V9 F$ |0 R/ `
       'manage_options', //需要的用户权限
5 |' \* M  w) ]. _- X1 n" h) Z       'site-wide-notice', //后台页面的 slug
" J& L7 f: \3 ]) w. ?- a. {3 {       'render_site_wide_notice_page', //用于渲染后台页面内容的函数4 f5 l; ^) ~0 p  c
       'dashicons-megaphone', //用于显示在菜单中的图标
3 P7 g% K! B( F% |) v! R       30 //菜单项的位置
0 J" M) _/ b2 b2 W# V  @6 d   );
- h4 H1 j2 g. a   ```0 J; X& M/ e; `/ P: S* r- a
+ d& j8 y1 u1 h/ Y0 o
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。9 I- [- d$ G1 y- V% v1 E+ k1 }/ F+ s

; E, [6 O# i$ J, m2 \1 J# V  y2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:9 e% f" Q6 g, W  g$ ?& _6 E7 r

) v% n( v: w; }$ S. ~5 Q4 h$ s   ```
# T6 n. g3 d6 e, N. f' i( I   function render_site_wide_notice_page() {
* `; H0 r- r3 O/ W# P$ c      // 渲染后台页面内容
& Y  v# q4 `3 d  h& Y, x+ C5 N      echo '<div class="wrap">5 f8 W8 z# |1 u2 y" [5 B$ Q
          <h2>全站公告</h2>( a& ~$ v+ l/ f. H
          <form method="post" action="">
/ f- G) h/ r: c+ `# V              <label for="title">公告标题:</label>6 ^- _8 k$ h6 o! X; e0 C. f/ U
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
, l( n0 P4 j$ ?2 J' p- e* \              <label for="content">公告内容:</label>
- R5 ?3 C6 R. Y              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>' I1 ]4 J% v; x; W
              <input type="submit" name="submit" value="保存设置">1 O( i7 s; y7 B9 C/ b1 i% |% \6 m
          </form>; \2 t% a% G; j" ~  T1 V% Q5 h
      </div>';5 M  m9 q5 o8 c0 j+ q! A
3 x2 W! C8 V; _! J
      // 处理表单数据
  T: l3 q- e* {" _0 Z& I, A      if (isset($_POST['submit'])) {
3 U+ W- S) Y" M- i1 E          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));, c8 w  ~" a$ c% G. m' V7 a! g7 S( |
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));* A, Y7 i2 a/ ]) k, Q& X6 z
      }
- Y1 L" b7 z0 e. B* B   }
1 g& _$ p5 U/ c3 e5 }- D8 f4 G   ```
0 e+ W4 j1 t3 ~" m5 \7 X9 f. P: O7 x' K* P' r8 ?4 T& {4 J5 M, k
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
3 M7 T  ~1 P' Z9 z9 T0 h/ F1 q& B. n5 u+ r
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
; x- L# U( R, T8 C/ Q4 V5 _- _% ?& e: z& F
   ```
( _6 w0 k$ U% ?: P1 G# _: s$ [6 j   <?php
$ y! g1 |$ [' ?5 B- z   $site_wide_notice_title = get_option('site_wide_notice_title');2 Y; q+ `; K. V, m9 ^3 h3 b0 `) r
   $site_wide_notice_content = get_option('site_wide_notice_content');% c8 u+ R! O2 T7 v- P
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
9 q5 s+ Q( N$ q* q& l       echo '<div class="site-wide-notice">';8 |$ y: g& q- x2 k( c
       if (!empty($site_wide_notice_title)) {, c- C* Q8 }9 z$ G7 v; b
           echo '<h3>'.$site_wide_notice_title.'</h3>';4 Q5 h. D: ^( K! l
       }
3 Q/ P; D4 u% ~6 v' L       if (!empty($site_wide_notice_content)) {
, o$ \9 F$ ?1 ~5 b" b( v           echo '<p>'.$site_wide_notice_content.'</p>';
/ p; [& f0 u/ _! F/ m2 z( ~( H1 Q       }
" m* D* r' _  M+ l" m       echo '</div>';
+ p3 d9 F0 n, [8 h   }" W+ [# Q! k4 S; m
   ?>
: l' ]8 x2 b$ A: U   ```. o( C0 K% ?: v

% a/ n. v+ \; {$ X! A  O   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
% b7 ]8 L% U" [/ q. c7 g5 r( ~* Q0 k5 ?
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

341

主题

543

回帖

3579

积分

管理员

积分
3579
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?$ A2 R% M1 s( `! }
  U. s, n" w- X7 j- F; o
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
' |" J" M" `3 X, X. c4 m) y* G+ G7 ^) N  q( I" B8 l& J
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
; ^7 q0 {+ @4 ]6 ~4 f. s6 c' i( Q* G6 m5 U
```
0 ~  y; d+ T" j, vfunction create_custom_post_type() {' e) v2 g# d$ x" Y
    $args = array(
5 T' q$ |1 X" |% ^$ e5 _1 }2 z        'labels' => array(( b: {2 y% r. n: r" `' G9 e; n
            'name' => '公告',5 J/ X( Y6 A7 F' B
            'singular_name' => '公告'
2 [  f0 Z& o' L. w        ),
* j. p& C& ?1 Z/ W3 |6 g3 p        'public' => true,/ H' E2 F: ?% |8 ^3 m* `
        'has_archive' => true,
0 u0 y. _/ D0 S" U        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),' J5 S; [6 j/ ?+ j3 B9 H4 N4 j
        'taxonomies' => array('category', 'post_tag'),0 L# _5 @  N3 z+ c
        'menu_icon' => 'dashicons-megaphone',: [0 A% y; H+ j( |. F, N
        'menu_position' => 5,
) U  f. J' \+ |  i5 q        'rewrite' => array('slug' => 'site-wide-notices')7 j) E4 m/ P: U. `
    );  N& W& a. n/ C9 z; W6 k6 L
    register_post_type('site-wide-notices', $args);: I7 V* X+ Y( M* z
}4 Q/ U, F2 H4 R& D5 }( n6 [
add_action('init', 'create_custom_post_type');
& z+ d; E4 S; a```
0 V% l6 Z! o, p# Q9 ]# \7 ]
! I7 M$ W& `: N$ b) q3 ]- q# S在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
$ k! V2 w0 ?- r0 K5 U2 k& l" N6 J: W- W; m4 K. b  Y- ?1 o
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。& A9 p/ ~; k2 v6 r( i
& y; u2 H( `$ X
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:* ^" j- D5 x0 G" L) N; r; @. B

& Y. \' f' c7 h: v```6 ?  L! |* K5 r# F6 C  C
$args = array(0 a( M0 y% G% T4 p
    'posts_per_page' => 3, // 显示的公告数量0 H' A7 `$ [! @: W( e
    'post_type' => 'site-wide-notices', // 公告文章类型; i& l  U7 Y6 {6 q! i1 @
    'post_status' => 'publish', // 公告状态7 _9 J5 q! n' r: d' t+ ]
    'order' => 'DESC' // 排序方式& o9 l  q$ w" |! N5 j
);
! v7 X+ Z7 D/ I" L4 e( n$ t9 m( n0 C* p/ e+ A
$notices = new WP_Query($args);* n3 J) U- Y9 I" ^' a' T, P
if ($notices->have_posts()) :
) W! a3 c2 S8 w0 Y& q    while ($notices->have_posts()) : $notices->the_post(); ?>5 t/ C' O2 c1 u/ O) Z. P; ]
        <div class="notice">7 D7 g/ w: F: S
            <h3><?php the_title(); ?></h3>0 s4 J8 h) J- L' \
            <div class="notice-content"><?php the_content(); ?></div>
  J* [: e# J  J: h        </div>
8 u8 A. t& H4 h% t8 |6 G7 ]3 J    <?php endwhile;
3 c5 Q, Q2 F( f" P! N2 aelse :
  w; f& \5 L) S( Q% s/ h. Z/ d    echo "暂无公告";! R5 `' ~8 C$ |5 q: t9 z8 H
endif;
( M# A8 n% E. q; D! xwp_reset_query();7 |) L  _! Y0 `7 M
```
7 v, s( y& b& y
$ P; q  l) O$ F0 g这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
0 v. G* B7 h1 W4 \! ^8 }: f+ C" z: Y/ p3 g: e6 A4 K
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

341

主题

543

回帖

3579

积分

管理员

积分
3579
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
  N$ d& g% D! U; ]; X8 H) Y2 L' \1 N9 ?! }
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
5 b. @4 e. S' O! D8 e  a6 ]; @0 b
  G. P  {7 V' c- _0 ~+ r" @. i' v- q以下是创建自定义插件的步骤:0 _$ u* R2 }' U" h) i2 w

7 p7 S1 h. f; b1 v  t2 I! V; A1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
* a$ ~# Z/ g. a1 t' \% _" S
; W  z) D3 W+ |   ```
# Y4 H! i" x% L+ }( g; V/ p, [   <?php
  t1 D, s  P3 u8 L, {   /*3 C  ?  O( L* k  Q2 t+ G) `
   Plugin Name: Site Wide Notices Plugin$ i/ _, G: c& u
   Description: Adds a new custom post type for site-wide notices.2 z5 n; S4 ]8 I# ^
   Version: 1.0, H3 y) z! b+ }" z- `" N
   Author: Your Name
, O5 G# g9 E% |/ f! C9 }   Author URI: http://example.com& m# N6 I3 }( a7 y1 x  ~( ~
   */# l! c' e2 |- t2 v) c& \1 w: \7 J' m
# t  ]0 z9 x9 i+ B; g
   // Add plugin code here...
7 p- t. ?# @1 E6 U   ```/ c3 W  ^5 X( Z- z

3 u3 W) z3 M+ T6 U   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
' p2 l& K% D0 p& `: ?7 [! P; d6 N
5 c6 T3 @4 ~; ]6 e2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
9 w1 V. ^" v" l" i0 b+ h3 i
8 V- i+ j- s' b! I   ```
, p& d  q: T% a# F4 v' V   add_action('init', 'create_custom_post_type');/ h7 O9 Q& H( Y
   function create_custom_post_type() {* V# m* M- A, N' n  c' T& e. z9 i/ j
      $labels = array(
" M0 Q1 _. f6 W' y4 T$ F          'name' => 'Site Wide Notices',0 r3 f4 y$ P+ y- Z6 G5 @! ~
          'singular_name' => 'Site Wide Notice',4 w5 m8 L8 J) U+ T. {
          'add_new' => 'Add New',: f2 N% ~: i! u8 L. r4 y
          'add_new_item' => 'Add New Site Wide Notice',$ s. X) E! I7 V& @/ f0 t* R
          'edit_item' => 'Edit Site Wide Notice',
$ n( X, \8 I. d6 |3 B: W' ]. ^$ t& I          'new_item' => 'New Site Wide Notice',2 t' U3 }, n; B4 G/ X0 z
          'view_item' => 'View Site Wide Notice',9 i9 a+ P1 H) n5 D; f% `3 Z$ T
          'search_items' => 'Search Site Wide Notices',
# Q1 J" C& R* d  v1 [0 R; v          'not_found' => 'No site-wide notices found',
$ l# n+ n  s- m, F# Z' z( ?          'not_found_in_trash' => 'No site-wide notices found in trash'& m& d. a* O( f% x
      );
& R: f6 M& F2 b3 D1 y5 o6 M. @7 Q" P1 R5 f
      $args = array(8 u  a: z" R& ^) y$ f) x6 j3 M9 N
          'labels' => $labels,
# o0 Z$ k# `* h4 G* n( X          'public' => true,+ _. j, w# B% e
          'has_archive' => true,
; j; @3 x7 n2 V  O          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
* i5 g# j. Q4 i$ U, a! P; o& f          'taxonomies' => array('category', 'post_tag'),: {0 }9 `; X* K& Q/ q# ]
          'menu_icon' => 'dashicons-megaphone',3 p7 {+ e( C! @$ f/ {6 U( Z2 o
          'menu_position' => 5,- Z5 `" c$ Z7 N$ K
          'rewrite' => array('slug' => 'site-wide-notices')- k  y9 g5 I: H
      );
- v! f  c: e, v& ^  x! d, b/ p) T" o  n% C5 U: m
      register_post_type('site-wide-notices', $args);
7 `  n' F3 w5 o0 U5 z! u$ e   }
' {8 L6 A8 `9 y8 S7 c7 @( n8 p   ```/ U7 r/ B3 \  \/ M7 W& g+ V9 T1 L

, Q' l  T+ b9 _2 C: ~   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。/ T5 A0 O: Q0 I7 J+ T

/ P! x2 J; w! a) O9 Z  M) l3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:% j  P: z. w! P4 `5 m/ @* A

  Y/ O( N+ D% _+ t+ v   ```
5 U0 N* W' G2 B  w5 E& k   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
4 B5 M# d* V+ r   function add_site_wide_notices_boxes() {
! H0 U/ {( r- \" h) u2 Y. P      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');5 p$ r  Q# \& B, C  G: |) w' j
   }; v% V# F+ X; L# a( @2 m$ F

( d8 U9 e, y2 M+ A   function notice_details_meta_box($post) {
) b1 t. \  J# w  P; Q& K( {      wp_nonce_field(basename(__FILE__), 'notices_nonce');  a2 k0 o# F0 D
      $notice_title = get_post_meta($post->ID, 'notice_title', true);* _1 P3 a  D' P5 y" t! U
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
/ F) @) p- _+ m& ?2 ]& ~      ?>
1 C/ A3 P6 t& U/ x3 ^* e      <p>: v6 p7 e9 ]( r4 z$ O7 A% s4 K4 t
          <label for="notice-title">Notice Title</label><br>9 O# n7 `1 l! |: e
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
2 q+ N( R# O# w3 _% Q% A6 k      </p>9 W( S) s+ Y3 q% F( ?4 ]1 Y6 |+ K
      <p>
- J6 A9 h. `9 i9 e          <label for="notice-content">Notice Content</label><br>
1 s: r' ^2 f0 e2 D: d          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>8 f8 _% m" }% }% `; _" @! R/ t
      </p>& V4 u) m6 _5 M- g+ X
      <?php9 e1 M- p) _' P" G7 x" [
   }1 H- A8 z( }$ J' D9 o/ r$ b
  M* ^( x" {0 P6 v
   add_action('save_post', 'save_site_wide_notice_meta_box');0 t" U3 g3 }, y! a6 w7 W/ j# L9 m) F
   function save_site_wide_notice_meta_box($post_id) {
. A. o; {6 F" U5 r, b# b      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))+ M: K5 b$ D  Q- O' M  S
         return;
' k7 v  i3 s$ g. {) Q1 E      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)4 I( [) N4 j/ s4 F: F+ t0 x
         return;" c0 E. i( ]3 I" D- {5 v7 J

0 l* `6 ]+ L7 \  S      if (isset($_POST['notice_title'])) {
( b# g2 U, a( R; h& V          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));! L4 J3 w3 |$ ]7 W
      }
& N; R0 p& y5 w( m( p      if (isset($_POST['notice_content'])) {
. C! M+ G0 N. x          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
9 A0 m4 X  X+ `5 `# j% ]      }
6 O! V/ o! u6 {! f( a   }, {  ]1 O, D% Z5 h1 T* z. a1 \; W
   ```
; W6 p6 R3 n, [5 Y  p( @) p  J0 U
$ I2 W. X  U$ ^+ g/ l   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
  d; _5 j. ~  w4 ~) r, R% o3 ~. E
3 V, y1 |2 h6 c) j! T( y7 N2 N4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:7 {6 S* ]% U1 G5 N' I( L
9 S% U: ?. D# @% g1 F
   ```2 |0 f" L( [: ^
   $args = array(: Z4 ~# O: f- ^" j  O& \, H
      'post_type' => 'site-wide-notices',; ~, \) k+ a& {3 Q: t) \# _
      'posts_per_page' => 3,
5 i% Z: g# V& e8 [1 s8 \; m0 c# v      'order' => 'DESC',
0 }# m. R' B9 J      'orderby' => 'date'
# H" h) W0 m! c4 _$ Q  c; r+ A   );: m8 B' l  Z: w0 M; G; Y# J- }% V
   $query = new WP_Query($args);0 A. y5 l1 H. o* o1 P+ m  {
   if ($query->have_posts()) :
! u4 W( |1 t$ B" D- V; a3 z      while ($query->have_posts()) : $query->the_post(); ?>2 x1 t8 S* n# r8 E. a
          <div class="notice">; k/ l1 j0 G) [- h$ l
              <h3><?php the_title(); ?></h3>& p: N, c* C; r
              <div class="notice-content"><?php the_content(); ?></div>- X3 i0 W" W1 ~5 m" [; [5 G
          </div>
5 m1 v6 n# k% n: E      <?php endwhile;
! J3 L9 |! E! `5 F0 j      wp_reset_postdata();
- ]" ^4 U, T7 X- p6 Y, |   endif;
" E+ g8 M9 y: W9 i/ d4 e. U   ```
8 I' [) G" t, Z$ _- {4 H; {
$ \. T& `# P  Z" u1 ]   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-26 09:11 , Processed in 0.028849 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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