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

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

[复制链接]

331

主题

511

回帖

3355

积分

管理员

积分
3355
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
/ U% d, m0 i4 b/ o  o. ^9 d3 Q- G( H) E9 _% X/ ?6 Y4 W, t  t
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
3 N: X6 s$ F9 w: [+ {. W6 n
& p5 t, M8 I, n0 E  r( M' D2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
/ a( O3 t9 x. ?, g8 w% ~8 z7 T& `& L
9 J) w# q* `/ g! @# |3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
$ \3 Y: ?& \1 O6 t! P$ {* `% p8 T4 w. `7 _) k6 C6 b! f
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。* Q$ n4 u; K) a+ F. ~) x5 l8 P- L
5 ]5 J- m+ o% ?
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

331

主题

511

回帖

3355

积分

管理员

积分
3355
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
) q$ w1 r! ]9 ]6 Y- R7 ~. n, O2 f& a0 ~6 s1 L
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
1 ?* Y: ]) h0 a! u+ x: I* u2 X6 M% n$ {3 \+ D/ \' ]  B$ `
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:" @% T+ r3 l; R, d3 I  q
# i! O: a0 W( _, }/ d
   ```
8 i' ^4 V( y$ C0 K3 B* ~) g   add_menu_page(* ^6 s- n% D1 P) Y+ R
       '全站公告',
* e+ s3 {) M- J- i& t/ y       '全站公告',
" _0 R  N/ g! ~: F' d       'manage_options', //需要的用户权限* R0 ^# {* M8 N$ ~( k
       'site-wide-notice', //后台页面的 slug
2 P' w2 \/ v  D6 g* V       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
8 t6 x+ f. C- h; s0 X" `1 b; A8 y       'dashicons-megaphone', //用于显示在菜单中的图标
5 {4 p4 z2 y9 P7 b       30 //菜单项的位置; V' v$ K% E8 r5 h5 d( Z
   );
3 f& Y2 p) e: J   ```
6 H3 e" }8 ]' p& _1 I
4 X& ]( [3 M+ B# [* d3 {   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。, _( ]% T% ^) V* P3 n
- s% c$ g3 r1 U: ~9 j  k+ v
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:3 ^5 w- v5 [& z5 p" a  z
9 }; b2 v" c, w4 U; T
   ```
  W% i9 x/ F- p, U3 H4 m   function render_site_wide_notice_page() {) g2 i. y; ?( D) ^# R9 X
      // 渲染后台页面内容
8 ]$ b0 g: l* s1 z2 U+ _: F3 ]( C2 X      echo '<div class="wrap">/ Q9 G% ]% T3 n1 ?
          <h2>全站公告</h2>
& y! p9 r3 Q$ N, ^          <form method="post" action="">
, X5 p* c1 Z6 P5 Y              <label for="title">公告标题:</label>
5 e3 @9 O* ^+ j0 q/ b$ @5 ~              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>3 f1 T% B4 h- C* q0 b! C
              <label for="content">公告内容:</label>
3 I% T; k3 u) R5 o7 P              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>2 T3 D6 M$ m# \8 }  a
              <input type="submit" name="submit" value="保存设置">9 t9 z% n, `, i
          </form>2 w" w% [. u* d7 T5 y( R2 v
      </div>';
' E+ h* a4 b4 ?1 y: r. H. ]
$ r4 u- ?4 ?; q( J, G$ |      // 处理表单数据
! O. T$ Y8 h. [8 h9 ?& _      if (isset($_POST['submit'])) {) H5 q# P  m& b0 r# w5 k0 @" N
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));( f1 X2 F" r. x
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));6 S- z2 g5 _- F' {9 l
      }& a  p. K' u! G9 A9 a
   }) s  o5 Y% I2 K) P- T3 [
   ```$ F# [9 d5 w& q6 E) ^

9 Y: G! K# k! G   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
$ s. u% A: }3 X9 \5 E* T
9 k' ?0 I) ?6 K3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
. F8 |, R/ g4 w( {7 l! J
( V; F" Q2 |% g5 \9 z/ d1 O# \   ```0 m8 K8 S% Y8 l' V2 @3 J" o7 x9 Y
   <?php
# a# n. A, h$ C! J. Z; B: D0 i% k   $site_wide_notice_title = get_option('site_wide_notice_title');5 h4 c" j% l4 i  v* l9 A5 E8 ?
   $site_wide_notice_content = get_option('site_wide_notice_content');% _* D/ O- m; p0 R1 B) G
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
' E3 R  x- @+ k; R4 n. f8 l, w       echo '<div class="site-wide-notice">';
* y- c7 U. ^4 `" v: N9 `- _% B       if (!empty($site_wide_notice_title)) {9 v2 }& E; }5 h2 k4 d6 G! i( Z8 O
           echo '<h3>'.$site_wide_notice_title.'</h3>';
1 P7 n8 _( t+ ?! G5 W       }0 E) Z3 I8 y( C5 r( O
       if (!empty($site_wide_notice_content)) {
( T6 [, M; L9 \+ Q% P3 c           echo '<p>'.$site_wide_notice_content.'</p>';4 L5 `& n1 r' R, w
       }
/ B9 O' j* m: _/ x0 W: D, `       echo '</div>';
' K' I: {' _- Z   }
5 q! R' |5 l. _5 m4 k" P) x4 L   ?>
, D1 h# J5 g4 _" b2 p- K   ```' A+ P8 ~. @  v& H# y* H7 T: a

$ A; [0 k, G: x, `  ^   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
4 O% x* N8 o( m2 `& b' J( L6 O) Z
7 N# s" O5 u# x. g0 i请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

331

主题

511

回帖

3355

积分

管理员

积分
3355
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?) D2 I& i2 B+ C! O" M% A& `
$ [# Y$ |0 W5 s# t
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
7 P2 ^1 L- K" {- A# S& Y7 t5 t+ Q" |' ]8 L& O+ e8 p' Q
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
, Z; [* K! Q# X# l9 F4 ~3 o8 @; |: }4 m
```, g1 A5 d! H+ k7 n2 U1 j  C
function create_custom_post_type() {
3 H! u( `: @4 G. j3 A8 B6 C    $args = array(
  F! S  }' I  s  I        'labels' => array(+ Z) J) W6 A- _$ E; U' \
            'name' => '公告',, [" a: k5 \. _/ r; X- M, U0 J
            'singular_name' => '公告'1 k8 i, I/ `5 _$ M! p9 V, l. F. S7 C
        ),9 O/ x. Y+ [: f+ Y0 Z
        'public' => true,
" C2 B  g/ d# B7 K9 o" w        'has_archive' => true,
1 t- y1 l5 c# @- S8 G/ b! V        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),9 g* J/ q- |! ]$ p& B
        'taxonomies' => array('category', 'post_tag'),. F8 Z. y7 ~; b! c: V8 }; A
        'menu_icon' => 'dashicons-megaphone',
* U2 `6 a! }" X% T- A        'menu_position' => 5,
! d$ c/ r% k3 d' Z        'rewrite' => array('slug' => 'site-wide-notices')1 K1 R. B% L: x5 ]  o) J0 N
    );
6 X: F0 R6 B( q0 i. j    register_post_type('site-wide-notices', $args);
. }: M( K1 x, l/ A+ f( z. G+ z}
5 d  E5 T" F, L7 g1 Z0 tadd_action('init', 'create_custom_post_type');7 Y9 z# H9 r- b6 c0 }5 y
```( c1 P9 ^: ~5 }7 s9 r

" b; \" Q' K) J+ x! h5 q在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。  \8 Z+ O; |7 d+ C, d9 b
1 t' X- l- _% n- `; v, A. J  ~
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。1 o: j3 ?9 T! [! C
/ ^; q  z8 s# t7 W
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
$ B5 l' P/ w/ }/ J3 z& [
5 F1 [' w& N' H( E```! A0 Q. n0 r/ u8 ]7 z8 S' ^
$args = array(- K, P/ h+ v2 ~( }( {1 A
    'posts_per_page' => 3, // 显示的公告数量
* b" Y1 h" ]. q    'post_type' => 'site-wide-notices', // 公告文章类型
/ j6 p0 C* p" Y/ i$ O4 _' |5 s    'post_status' => 'publish', // 公告状态
. E7 h% \4 |9 S3 \4 }    'order' => 'DESC' // 排序方式
& f; [( F) ?& N/ [);. w+ x6 a- u8 j6 v* g% h' M
; I; M* d$ }6 z6 n6 H
$notices = new WP_Query($args);
2 B: x* l( i' Lif ($notices->have_posts()) :3 D5 Z+ b3 z$ G3 @! ]% _! S; ^
    while ($notices->have_posts()) : $notices->the_post(); ?>- d* k2 h( A7 b3 N8 n- a: I! E7 v
        <div class="notice">) [1 R2 Q' F( Y! |: U8 _
            <h3><?php the_title(); ?></h3>
& R8 \& H) D3 h0 {) f            <div class="notice-content"><?php the_content(); ?></div>
0 r* u. O/ b; ]% Z0 P        </div>, e, L( u; M+ |( H1 t
    <?php endwhile;
$ m! A7 Q) f1 a& L0 M# D, `else :) m; ?+ _: U( \: V, ^! n/ ~
    echo "暂无公告";. C6 L# D7 ]/ G* N4 t" t& |; ?/ D/ n4 ]! i
endif;
& }# m" n7 M, I& X2 b% `wp_reset_query();
% c: F4 w2 {3 g8 d" S5 [  k```: o! Y) b' a8 k' v) ~6 b
2 l6 s2 j0 m! V) `: O
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。! e3 ?: f& k$ Z! S" e

4 a* i5 ]0 k" V6 Q; o& ^# D& E; B- i3 R以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

331

主题

511

回帖

3355

积分

管理员

积分
3355
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
' s) x* \" y+ J  i: H' L5 ?5 \) T7 [' V2 _. \0 d$ @  }+ s* I
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
! }; m( B' s7 P) |( j
) P/ x- `' [9 B6 u6 I以下是创建自定义插件的步骤:; p6 p, [$ @3 Y

- M1 J3 u% E9 Q/ k' @; R3 C1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:9 l2 x# w8 d8 d( p7 L: V

0 g. a! G4 z  S+ X. e7 J+ |   ```! ]) {$ p+ a9 u' c& Y8 t
   <?php
8 v- }( P2 }! q4 {7 P" V   /*
4 j7 M# d. `' x  e3 ^8 k! O   Plugin Name: Site Wide Notices Plugin) e4 r& o# [, A8 v8 Q& t5 J7 C
   Description: Adds a new custom post type for site-wide notices.
5 {: G8 V: o7 z# M$ W* |) C   Version: 1.0
& ], M8 w1 R: Z+ n5 L3 g   Author: Your Name* _+ @+ f( a5 f" \; }, F
   Author URI: http://example.com+ B- _+ K4 D4 p. n
   */9 a; K1 i5 \3 L. j

* w% l; l/ m1 s; d; q# Y   // Add plugin code here...3 P, c0 Z3 n+ o& I$ I0 k# K: U
   ```
7 g# M( S) p! _. ^
+ h! X; p' O% a' \: H" N/ i* K5 d   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
% R0 A) i1 X1 L8 F9 Q4 V7 x  g" t* l: `* |. A! D% i
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
. r$ R2 y+ Z2 B! _$ i+ [0 N/ ?- _9 e) [/ Y0 R, p4 [( d
   ```
9 f! r% @& }( D, L5 T1 |2 a   add_action('init', 'create_custom_post_type');" W# r# D2 J3 r' b  P4 \
   function create_custom_post_type() {- P4 M2 u: t/ F. f1 R' C
      $labels = array(5 I1 u- T, u- e/ K. _5 m
          'name' => 'Site Wide Notices',
5 P# r$ E4 L! C4 D7 [          'singular_name' => 'Site Wide Notice',/ b: B. k1 K2 U, b* N
          'add_new' => 'Add New',$ j/ c! L( G+ c/ h
          'add_new_item' => 'Add New Site Wide Notice',2 c( h8 @. t/ a  r, M
          'edit_item' => 'Edit Site Wide Notice',/ }9 r  j$ q3 ^5 H: d9 r
          'new_item' => 'New Site Wide Notice',
& e0 E( ]4 P% _8 g          'view_item' => 'View Site Wide Notice',
3 n& m  v( S0 P% X          'search_items' => 'Search Site Wide Notices',
6 B: F" P9 ?. r          'not_found' => 'No site-wide notices found',
4 b/ j6 g; N( z# T- u5 V          'not_found_in_trash' => 'No site-wide notices found in trash'
/ H; U  O% S$ X- q( ~% s& ?      );: y3 Q4 Y1 x. ?* f6 x
: b: K6 y8 @2 v5 P
      $args = array(
& y$ ?5 u8 B' D( ?, q4 G          'labels' => $labels,
0 Y, P0 e; q1 }$ U9 i" X          'public' => true,
5 }9 x# I8 y) W$ S3 P          'has_archive' => true,
& ~# a5 i; W: {0 S' ]          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),! t) Q2 V4 r) ]0 c6 Z% s. H2 t6 q
          'taxonomies' => array('category', 'post_tag'),0 h$ y. M3 e4 G
          'menu_icon' => 'dashicons-megaphone',
6 i+ U1 O' H* f4 x" R/ T          'menu_position' => 5,
/ K% ~/ S* i! v          'rewrite' => array('slug' => 'site-wide-notices')
  H- I' ]! s' E: b0 V& S      );- G5 k5 X! v; a7 d! o

! Y" a- U$ p- G+ D  u( Q( m( O      register_post_type('site-wide-notices', $args);8 Z8 _1 e- T+ m
   }
2 u5 q3 q3 M& b+ h   ```2 g) B( ]. N; w5 U. b! ^! ]
7 E$ Q4 E# Y2 i% H' T+ v, D
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
) p5 Z- m! }8 I* W6 H" e9 Y* N& ?6 `& s
; [4 V0 q) \" c) f7 ^' g) A' d5 J3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
% v; i* [+ X5 ?" o. L( n7 Q
$ {  @! `8 L" ?, t/ _   ```
# D: s7 K$ M& O: |* X  a' A   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');: f( A; j1 g. `- t7 j7 }7 i
   function add_site_wide_notices_boxes() {  R8 P. g; z# R
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
5 q) B5 k" A' x* B9 ~. {   }% M* p. }% n. E8 [

) z/ P* [6 p/ [. ~   function notice_details_meta_box($post) {8 p( n% a8 _, S
      wp_nonce_field(basename(__FILE__), 'notices_nonce');  A4 E/ X6 x: Q( \5 H
      $notice_title = get_post_meta($post->ID, 'notice_title', true);+ M% I3 e% J5 x
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
2 D" O: C1 {8 j0 ?      ?>  j. v* o1 q! L' h) m
      <p>
- c, G: e9 n; c  F  A# u9 h% L          <label for="notice-title">Notice Title</label><br>% b/ V; C1 _# t7 M3 p3 c
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
+ S1 o6 v# w- D% X. @      </p>/ f# M. [/ a  J  k
      <p>
6 r( _7 R4 \( ?          <label for="notice-content">Notice Content</label><br>. ^% i( R3 V$ J
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?># ^) k9 }( l! g6 m' e  r, W
      </p>
- [5 _/ L% b3 P# n/ U. U      <?php
. ]1 w: U" T5 J& x( `   }
3 \) o% U* `0 i' Q: [6 {+ A, L- h) {9 W* g" q; v
   add_action('save_post', 'save_site_wide_notice_meta_box');
$ m' L) b  I/ m   function save_site_wide_notice_meta_box($post_id) {; t# K; z. B- i  P4 c: M. B
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
. X1 m, s+ W, p6 e         return;
1 t% w# K$ W# b      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE). e% z% x+ d) p& s
         return;0 X! e1 Y" d# K" N! P

1 ]+ Q, y. ]" k- C# o: J# z+ p      if (isset($_POST['notice_title'])) {
8 Z1 j- }$ w8 n          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));- O9 ~5 f3 g5 \1 B$ e- u
      }
6 t! _% y. o/ C! x/ @3 Y      if (isset($_POST['notice_content'])) {( |% @9 M; g7 v3 P& Y3 L' P+ @
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));! R, N7 Y) f: V6 p
      }# J9 q3 _0 O5 p- p% O5 E  W: H
   }
8 D& v" y8 m$ [7 ~2 t+ ~* ]1 B   ```/ i- \5 |) m  J  T4 f# d2 m: T: r
9 e6 C, `4 i& C* S
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。7 w/ n* r5 G) v2 E
, ?4 {$ Y. M; [
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
- U( z  ^$ Z, N  x( [) s
& l  v) ^0 I* _+ O6 J" B   ```0 A, @% {5 b) f% Q" k" P$ N" {/ g
   $args = array(* C' y" p  w, _, A, v" W
      'post_type' => 'site-wide-notices',
: U/ A3 E6 A. `* V/ u6 d      'posts_per_page' => 3,
$ g; a, t/ d4 O      'order' => 'DESC',, F, K/ x4 v) f0 I3 i
      'orderby' => 'date'1 q/ l: ~! e1 y! O2 \6 d
   );
) v* D6 G- A, }- U0 o6 S( @9 q   $query = new WP_Query($args);# ~# O" d. e- F- w
   if ($query->have_posts()) :
8 N) ^! P) U0 Z( Z- p      while ($query->have_posts()) : $query->the_post(); ?>7 V% @( p* q6 p: }1 K2 P
          <div class="notice">
5 ]: I( s- h8 F( ?/ Y9 Z              <h3><?php the_title(); ?></h3>
# V* |1 v! P* t3 K0 ~              <div class="notice-content"><?php the_content(); ?></div>$ i( b% j" X. A2 o$ z
          </div>
+ L  `- |4 k" U8 e" X1 W      <?php endwhile;
+ b8 Y, q. v  n7 A2 l      wp_reset_postdata();" M2 Y* Q) M$ o9 b' P, A
   endif;
, e: p& ?5 u3 `" V   ```
& L' g/ Z2 [0 ?
9 \% n# ]" O* w5 M   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|通达产控投资 ( 粤ICP备2023021749号-1|粤公网安备 44030402006137号 )

GMT+8, 2025-11-21 00:36 , Processed in 0.094106 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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