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

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

[复制链接]

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:5 i1 H+ P$ N/ {* ]/ j/ W
# M& q2 w" S4 Q5 x3 }+ E$ Y
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
- j$ \  j% Y$ a5 P& g
, f* r- i) b$ r  W& Q( J9 ~2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
, }! z6 N4 z2 p9 M* k- @4 d: A3 g. p. @% s" o
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。0 o2 F9 J5 U. S* c! u
1 T8 Y4 V: F4 P! c# _
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。4 G: d; b+ f. m% \2 M! v
7 |. j7 g8 L" Z1 `" V, |  _7 j
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?) k2 A3 ~6 z7 b' g" m
' _2 J& D5 V$ D& [
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
. X! b" I, y% Z! C
! F( i2 \  A6 P0 |( R! `5 Z! }5 d1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
- S1 _9 C9 ]3 y
' m1 r* G9 P$ C   ```$ A. ^. o- J" W+ \% ~
   add_menu_page(
* ]. s; I5 [: [5 q9 W8 n  N! j       '全站公告',) B) ^. v$ a, ]) N6 Q6 u
       '全站公告',
% z' q3 }& i6 V# u       'manage_options', //需要的用户权限
7 j: l+ S$ U3 y' y       'site-wide-notice', //后台页面的 slug' V7 a$ g: G9 c6 z- G, ^6 I8 u
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数- _4 k  I  X5 h2 O
       'dashicons-megaphone', //用于显示在菜单中的图标
1 F. H1 r! G. R8 d3 \       30 //菜单项的位置
& s3 N1 i8 Z2 {- B# G( g   );# h8 Q' f3 ]( {  ]9 h
   ```" _* s$ G9 i& z5 N" n
* ~( U/ F5 E# z
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。0 o4 i6 a. a! Y7 E
; _9 T+ T: @7 k( `4 ]
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
' w* C8 x, ]8 t, L9 u
5 O6 u1 I& E1 y) g* H   ```
( w6 Q+ A: e# b% s   function render_site_wide_notice_page() {( z( X" X: k7 y3 z( F$ r
      // 渲染后台页面内容
" Q; s6 b, s, J( b  \. f  H      echo '<div class="wrap">1 N) G7 H' ]3 D. y
          <h2>全站公告</h2>
  O: S: ~; e; B& p          <form method="post" action="">5 i, i( B# s* y# ]+ A) H* t
              <label for="title">公告标题:</label>$ s3 b' W& e) }; W+ o
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
; i6 x6 [# H3 @7 _2 Y$ D( r$ z              <label for="content">公告内容:</label>
( S6 a( {8 w! U+ k0 R: L              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
: i' F& Y% [( L2 o1 f              <input type="submit" name="submit" value="保存设置">
9 p& R: o4 p' m          </form>+ }5 ?9 g# V3 m( L8 Q( E: o
      </div>';+ W0 Q" c2 L4 x  W( y' T
, k; e4 Y: H6 J5 A
      // 处理表单数据5 {/ ~5 r3 Y2 H0 H' P9 ^
      if (isset($_POST['submit'])) {
5 Q* |4 }# |! m8 G" _" x          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));& Z3 D3 U6 O' K3 i8 H8 f3 X
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));( T9 U+ e' e* p
      }: M, S3 d9 r; y) }4 y. V2 m
   }
5 K" q: c6 n+ K% k   ```
+ {7 O& M: {0 B& S( b* F+ ]& u) j+ {7 U* U
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。% T4 x: v+ o5 U3 A9 x3 n
6 H8 Z8 ]$ `: A, }+ U) l
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
4 z! F3 K. f: H3 v& v% X! z  T( a2 E& n4 V8 r
   ```" p- @8 U" E  ~$ c; ], i5 m
   <?php2 W6 O9 H3 o' p  ^4 C% t( c
   $site_wide_notice_title = get_option('site_wide_notice_title');
* y% l1 s1 o2 F3 H3 D9 P8 y$ P   $site_wide_notice_content = get_option('site_wide_notice_content');0 \+ G* L2 A/ h1 ^* G& p
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
: v/ M$ n# P( M3 r       echo '<div class="site-wide-notice">';
1 J0 g" o$ m* d" x       if (!empty($site_wide_notice_title)) {7 j* ]- k' i+ V
           echo '<h3>'.$site_wide_notice_title.'</h3>';& y* X# w6 i5 L$ N9 H2 S2 e
       }
: g8 P8 Y* K9 z$ {9 E( [0 Q0 j       if (!empty($site_wide_notice_content)) {
( t" Y) z# P1 O, I( M" V& \           echo '<p>'.$site_wide_notice_content.'</p>';
0 @& Q. T# z9 l/ \+ t. O% W, D       }
$ H& E. _1 K% Z4 H       echo '</div>';% ]. c: m6 M  V! p) O$ R# T
   }$ `  h# V) l: ^3 X' o
   ?>: n8 Q* [3 e  s3 S+ y; U8 k* L
   ```
0 w/ K% A0 b$ x" K8 C5 d4 p; I) N1 ?8 |8 @# v: w- L3 [4 e
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
8 C$ g# H- S' U7 x: X4 N# f7 T2 s7 ?# U1 [
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?/ g5 l$ {. e8 q3 R

  T3 n* m7 j" e3 p; J5 _# X5 x您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
4 |2 B! I7 |; d3 i5 x! y. [3 i9 c: ?1 l& `9 ~0 x) W' |
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
; j9 c6 o1 X) w0 t! e: M& V( g( A* p* b7 `9 ?
```
, E; q% u9 o. y5 g2 tfunction create_custom_post_type() {4 c: Z$ K( A% V& x
    $args = array(1 [! A! q2 m% r; R. K
        'labels' => array(7 v! y; E+ i3 A6 U0 Y% X# m4 }" ~
            'name' => '公告',$ B& v9 j' A& k# o. Q, h2 T# }
            'singular_name' => '公告'- v, u/ B0 t" I' ]7 |7 e( V
        ),
- r2 u/ L2 H  }$ r        'public' => true,
+ |$ F+ c. k% R0 K# q        'has_archive' => true,
% d  X( g' z9 W        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),6 L, T+ e% X3 m6 Y1 l1 {
        'taxonomies' => array('category', 'post_tag'),- |' q! r7 f! r; \* _  ]+ i
        'menu_icon' => 'dashicons-megaphone',
9 D' \6 Y. p4 z7 s2 F) y. r$ c        'menu_position' => 5,: g8 b* p8 c+ \5 u$ G, y
        'rewrite' => array('slug' => 'site-wide-notices')3 u* L/ o# q( L  \+ N9 A4 A
    );
4 T; c7 B, t7 d3 \    register_post_type('site-wide-notices', $args);  x3 Z8 C9 Y! @6 f% p
}/ c0 }7 g* @5 F* g8 S; N+ K
add_action('init', 'create_custom_post_type');4 }* P2 L3 n* d' Q( u- L8 v: p
```
# g4 {, R- `# {: w! U# J+ F  d
0 J5 m3 ~; i: M7 S$ T7 [在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。3 X2 V2 ~) A2 Q0 v$ R' p) ]

5 @7 }3 P% {+ [5 \2 z' T! M2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。# K; `+ B% a6 d- P9 x) k

+ k- Y. a# Y& u: v# ?3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
% V7 d, u  {4 N" c
+ ?1 `8 z- p" j; X! j```; b* ~! ~6 a0 }) w+ E: d
$args = array(
6 W: l1 k' U! k7 y; @: R& S3 i    'posts_per_page' => 3, // 显示的公告数量
  e# H6 d9 ]. b: g8 @* d4 L/ O    'post_type' => 'site-wide-notices', // 公告文章类型% W2 J7 X+ I( ?' b+ ]# @- x; y! V
    'post_status' => 'publish', // 公告状态/ u% j2 T. F1 ^& z1 f; w7 a, c
    'order' => 'DESC' // 排序方式
) N9 D1 G2 ]' D);
# W/ M% F. q2 G$ h! @( O7 T) r" ~0 L  A; z% ?+ Q2 `5 c
$notices = new WP_Query($args);: }6 P- D- {8 E0 \
if ($notices->have_posts()) :
0 e  e5 c8 ?* p& w5 l8 H2 `    while ($notices->have_posts()) : $notices->the_post(); ?>' V' z, g( [' |" E
        <div class="notice">; y" y! ^7 u( q) i  b1 }: N1 u7 j
            <h3><?php the_title(); ?></h3>
9 g/ o1 a9 z: b* A8 f            <div class="notice-content"><?php the_content(); ?></div>  S7 d# b- ~) t) O; k3 n' [1 D
        </div>
. i# G7 ?, L0 l' e, A8 C" U    <?php endwhile;: Z& f, f+ Q7 H3 }3 N5 I+ z
else :
7 b, \6 j9 H. V+ ]( `    echo "暂无公告";( i0 k' P( g- C+ M$ u  t
endif;" [/ e8 e( t- {- F3 `  I/ D
wp_reset_query();
0 F7 @: ~: n1 p! n" L7 n```! T  ~; o% u+ I6 B/ D6 i

# }4 L+ U" [8 v这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
9 w4 T, q# P) S4 }+ E9 {' |$ c8 f% |4 h) p( A
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
4 y* U- a  j5 l. n
3 s# q; z4 ^# ]如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
8 k& n% h% O! L0 w* S4 d5 a
: k+ d4 L9 d9 a以下是创建自定义插件的步骤:: Q- X: g1 c  G

3 b+ ~! G3 E5 E* K- `" b1 h1 x' C, R1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:$ x! X9 @0 d, q0 E/ C- l

7 o( X" t; O% _! N/ O, [% F# g   ```/ N5 W( ~5 l7 w# @/ |  w% `6 G
   <?php9 q) E$ `6 A0 d2 o3 C$ p  y. E2 v7 q' x
   /*
4 n% L4 L& `4 s* |. T5 W; @   Plugin Name: Site Wide Notices Plugin
: }% Z1 L; t5 L; \   Description: Adds a new custom post type for site-wide notices.
( k! P0 g3 N2 Z8 G+ u; V  |   Version: 1.02 O  j1 I, U. G, Q
   Author: Your Name$ M  F# o: u1 v3 Y- K  W7 Z
   Author URI: http://example.com4 H' g& e/ }3 h: `
   */4 R/ N. I8 V) R
# x8 J# i. I% ]' B* W
   // Add plugin code here...3 t8 @- t5 A1 u$ l9 J# E2 }4 w
   ```+ A* A" q9 t2 G3 x+ f, [
/ j$ ^4 U9 @: D. ]  g; \6 s+ x
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。4 `* q" v6 M( ^  {, l4 ^5 J

3 Z7 ?. Y- d+ E  J$ M0 q2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
6 v% A2 r% _; R9 V% Z4 x7 m8 [4 b( T$ i& I4 h7 Y
   ```: q3 Z: O. ]$ t0 C' C* b
   add_action('init', 'create_custom_post_type');6 Q) w2 w7 @5 t6 L+ R9 \
   function create_custom_post_type() {
* y  D, I, a! N- v" X, E, [4 q      $labels = array(, y; T) Z) S' h/ a7 P
          'name' => 'Site Wide Notices',
- F3 x6 T7 v4 m" t6 E& h3 G( m          'singular_name' => 'Site Wide Notice',; R9 s; m3 k+ E
          'add_new' => 'Add New',
* H1 c3 l/ M8 O8 Q0 z          'add_new_item' => 'Add New Site Wide Notice',& [  Q( B# a5 E7 H3 X6 h9 {3 X
          'edit_item' => 'Edit Site Wide Notice',
7 C1 _$ n7 G/ s$ g, x% b1 D3 i          'new_item' => 'New Site Wide Notice',
3 ?) {) W3 R% S/ k3 T          'view_item' => 'View Site Wide Notice',
" _$ T" A# T/ K4 x          'search_items' => 'Search Site Wide Notices',+ ~7 s& E; r6 E( F( L* C5 h
          'not_found' => 'No site-wide notices found',
5 g8 e7 ]! Z6 m, t          'not_found_in_trash' => 'No site-wide notices found in trash'
2 a% C* f* h- h' _. X5 u% ]      );# [8 ^; I+ b6 G3 u$ H; [
  k1 z5 {! Z9 b. q8 ~5 F( O# E
      $args = array(
( g& L( G3 K; e          'labels' => $labels,
$ \  {$ {% s7 ]; G/ }+ F          'public' => true,: R" ?1 O* e  x( X0 D
          'has_archive' => true,8 Y6 Q* k/ ~( c+ P$ A3 X+ z
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
0 @  h% w+ c# {! M8 K+ S          'taxonomies' => array('category', 'post_tag'),# Q, a6 n" ^) ?8 i$ T
          'menu_icon' => 'dashicons-megaphone',; l1 @: f1 o- n7 X$ p
          'menu_position' => 5,
& B: p' p* u9 g1 ?0 J          'rewrite' => array('slug' => 'site-wide-notices')( r) }! \/ Y6 g! o5 z
      );& y3 \# u( I. C! f

5 H4 E' ~( D6 Y) Z- P. `      register_post_type('site-wide-notices', $args);
$ @+ B+ X7 D0 P4 _- E( X  Q+ F   }
% A* U% d, _  H/ [/ I- T2 a! y   ```
4 m$ o" P, n# o7 P/ J" L; m/ E" ^* q. o; N
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
+ {: O8 t0 f* m+ X+ s2 d! Q2 V7 [5 F
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:" N  N: c9 X" N5 g8 B

! d$ f0 F9 M. k9 Q   ```# H- G& a, i) f" f% g
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
, L' _! _9 j8 T9 i   function add_site_wide_notices_boxes() {
2 `/ f! f3 n& Y) j& z      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
1 C3 P( U: k" a4 l$ e& G   }7 W' Z9 X: k. z. ^; P' Z

& H0 B/ i" r( I! e4 n7 L   function notice_details_meta_box($post) {# i4 i9 k- s" Q, J$ i7 i
      wp_nonce_field(basename(__FILE__), 'notices_nonce');- `0 r: ]3 ]9 t/ J5 T
      $notice_title = get_post_meta($post->ID, 'notice_title', true);( V. P) c% W5 s; @/ ^& t2 W
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
( G9 i( n9 s9 G; V  C! v) T      ?>- Y  i) `$ ?1 N# `: |1 v! F' y
      <p>' q/ [! u* p7 O2 x) `$ T" n
          <label for="notice-title">Notice Title</label><br># y9 n) c* ^6 M# Q
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
7 G/ K( q8 m* K8 m; y6 k4 z- {% c      </p>
0 ^/ d. P) g: X) r, O- l' s- b      <p>' A2 o5 h$ A, u" B/ [9 n3 b
          <label for="notice-content">Notice Content</label><br>
4 C5 I1 [# N4 m& j2 `* N- x$ ~1 J7 o          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
, T0 |7 h' t) q! r      </p>  L7 h% j4 x  ^; u' _
      <?php+ `& T) k+ g# e
   }
" u0 M; l3 A; j$ h6 v- I) {0 E: P7 T7 ^; Z  |4 i3 [0 ~
   add_action('save_post', 'save_site_wide_notice_meta_box');
$ F3 `* `# p" |( D) T/ v, _   function save_site_wide_notice_meta_box($post_id) {
8 i: ]- a) U/ a. c7 L9 q      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))" r3 M5 s! \* N% Y1 p3 i
         return;
- i2 C5 S! W; p' w$ U      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
/ r( y) [/ M5 ~: N- d2 f         return;1 U! [1 L2 N: A. ?5 k/ P
" D, H, |3 B7 n* F- w6 c
      if (isset($_POST['notice_title'])) {
# w* A) Y/ ^/ {4 l0 B: i* y          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
; B9 U5 x1 Y# H$ e7 r      }% X6 A+ B( k8 }& P; x
      if (isset($_POST['notice_content'])) {% P9 I3 h8 S' u* F
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
! b% l7 m( h9 \$ B" R0 r      }
+ q! g; B3 D+ H3 v   }$ R3 i5 b7 {1 L3 L  v0 G6 R( i
   ```" P; R& h3 `) |+ _" D' y& C4 s

; C; X. m$ U9 e3 B   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
+ c, b: n: b9 o* N. o
1 O+ y( V/ d& _8 g+ h6 ?4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
+ _8 V; Z7 ]) z# o6 V
: |3 f. U: Y2 d0 A3 |, j   ```. c. V  \( l5 N# j
   $args = array(
1 O! w  {" c" [; ]/ I      'post_type' => 'site-wide-notices',6 g1 X% O2 w6 }' P% w+ w
      'posts_per_page' => 3,, V( Y# a; T& @: x! D
      'order' => 'DESC',: |8 P( p+ W' u+ `! [) E
      'orderby' => 'date'
8 ~: {: ~' h; x* a6 i4 j   );9 M3 a- `1 i# v
   $query = new WP_Query($args);
7 h6 W" Y/ y3 ?  Z& o7 u   if ($query->have_posts()) :
- S3 ]1 v6 j" U" ^4 `# n+ \3 X  |+ u+ a4 O      while ($query->have_posts()) : $query->the_post(); ?>
* d+ Q  ]4 q7 t) u% ?          <div class="notice">
; K, Q. |5 X. d: A, _4 \              <h3><?php the_title(); ?></h3># ~  q# W+ W; L
              <div class="notice-content"><?php the_content(); ?></div>
7 f5 e; b; ~4 X3 `' t! B* l3 O          </div>
1 @! D" n+ V4 ?: Y. b      <?php endwhile;
8 g) a3 @& T" |2 H      wp_reset_postdata();) D2 c1 l  X7 m. ~+ ~; ~  d% s
   endif;# \) O/ e' \# |; c
   ```
8 u# E9 x' F% y
( Z; Y0 R( t: {* y* b% u  g& P8 }4 z  t   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 12:00 , Processed in 0.126621 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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