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

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

[复制链接]

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
0 W' \! F5 u8 U& ]0 r: F# x( k7 t( ?/ |* ^' O1 [' s  n
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
" D. I% H  @4 S5 t
0 C3 G: s3 P, X2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
$ J6 ?- }$ h2 u5 E- U! ?$ G" F# Y0 f7 N& @7 ?( B5 E
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
/ c" v; {- l. x
& L* f; k' ~& ~* Q3 N8 j. S* L, f4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。6 j- d6 \" `0 Z2 B+ O# ], e

) r! u+ `& y7 Y1 F9 M" R# v( I注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?2 L& e3 H- F& j6 i0 {6 Y

7 m: F8 T9 C' R- x) ]# N' u如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:0 l3 p$ d- [9 O; c4 P+ l% r  F

! O" |' p+ Y! r  y0 e1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
; ?  {' z4 j3 N% V1 l! b2 a3 n. ^$ t9 I/ G  ]; S: h8 J! a3 }. \2 Y
   ```' C( M" j& p9 U5 d  ^& u
   add_menu_page(0 z! j+ L; \: _9 B6 R" Q0 n/ l( q
       '全站公告',
! n9 P/ t+ o4 O- u+ Y! l7 r3 W       '全站公告',
1 j6 g/ X5 U2 b4 ]" \, N% L3 M: |       'manage_options', //需要的用户权限
" Q" Z2 L3 n7 I3 x3 f       'site-wide-notice', //后台页面的 slug6 P6 l# x- j% W
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
7 P# d9 j: P7 o2 E" m. i7 v       'dashicons-megaphone', //用于显示在菜单中的图标
1 H' n. A7 j6 Y  I% B* [1 ?( @       30 //菜单项的位置
- y( r  g2 |0 p+ U/ }   );
' o" N1 f( Y, J+ ]   ```- b' w. K: J# d3 t6 U: N, x5 @& @8 B

. e7 B. y% K6 ~) {1 x5 i$ \   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
' m: O3 ?6 v2 {. k. f' S5 E  X0 t  S* C1 B
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:9 o3 T$ t) Y# K5 e" ]

, f2 G: J8 p, p# z   ```
  ~* `3 q6 q4 W. |; \/ r   function render_site_wide_notice_page() {
2 l/ j  i7 O; m      // 渲染后台页面内容
  y) z3 U* W1 J+ E7 l      echo '<div class="wrap">0 O1 S" g) _9 o/ Z8 ^% `% ?( g! s8 D
          <h2>全站公告</h2>
8 M# v; e8 G' p, E          <form method="post" action="">4 L2 T5 S3 j9 [* @
              <label for="title">公告标题:</label>6 E& H: ]) q9 V' P& N$ j% F& Z* V
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
% Z# p$ {2 g9 _4 I9 t1 o/ D6 w              <label for="content">公告内容:</label>6 P  b: y0 E$ m& h6 _. s  l8 u
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>7 z' v! p2 i- v9 W& T1 S5 S
              <input type="submit" name="submit" value="保存设置">; p0 p% @* y: a
          </form>
, P* Q% ~7 a. u3 k      </div>';9 Q  ~1 P: f1 @; }( V

- k& [4 T0 p6 K      // 处理表单数据
  |1 }- h/ c, h; s# |4 k( t      if (isset($_POST['submit'])) {
  T% N. p$ ]$ }: u& c" [. y          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
+ I% E  i3 D2 e" x* y          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
7 K' `! r/ r2 l      }) l9 `2 ^2 j# @& U$ c/ v% g- ~
   }
5 R! y6 `% \" ^$ m" l8 ?! n$ j   ```$ C9 |+ C9 P- J- o7 N$ Q2 N
! ~: y& D& U; v/ j+ ~$ U$ r
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。$ D* X5 G, U7 D

( r6 l, [' j) i7 @. F3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
4 H$ V" F; S3 L/ A2 B. \/ O; ]) ^7 k, S  t5 ]3 [: x
   ```
. s* [  @& o! ?3 L5 r' b3 l* r0 d/ ]   <?php
# v1 x2 R1 Y% s2 k7 S5 F   $site_wide_notice_title = get_option('site_wide_notice_title');
* H8 }- U( T/ |9 ^" }   $site_wide_notice_content = get_option('site_wide_notice_content');
, `4 O9 j% R# ~5 K  Q. ~$ e   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {& ^% K' a+ R1 A0 C! e* y
       echo '<div class="site-wide-notice">';
; j" u! o$ [: T, b' c$ l- l       if (!empty($site_wide_notice_title)) {2 V. E) [( N0 x! Y5 V4 E$ \
           echo '<h3>'.$site_wide_notice_title.'</h3>';2 _* ?5 u% g1 N5 p
       }
. @$ J5 H" L& m0 D5 @: a2 M$ c       if (!empty($site_wide_notice_content)) {
  f  Z. _( `. e8 g* l( @           echo '<p>'.$site_wide_notice_content.'</p>';# U1 B2 o/ p4 v$ v' t
       }9 q1 w6 K- X0 g9 B- \
       echo '</div>';( S0 o8 _! [! i$ v8 \
   }% j! X: O: H3 A$ @- A
   ?>0 A1 q1 `* {! V$ ^6 T$ A) Q
   ```& P0 y+ ^# S: D
1 Y# X  w  p& K/ t) ^
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。& T- D+ P$ I) a6 R
% y: c. P2 }. i4 y" B
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?/ [7 s2 Y& l1 E- `- u: x5 \" \0 I

' z4 p6 g0 S5 U- I2 q/ v您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:( y9 g# T- m* O% O/ U0 d6 Q
& w- Z* H7 X/ B( |" `/ r1 N0 q' a/ B
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
; F  H% n' h$ t% y
3 q9 l7 F# _" ^7 K2 z```6 Y# c/ R- a0 t4 V( J+ @, h% B, w
function create_custom_post_type() {
6 C- b: }$ ^' _; a% d, e    $args = array(
& z5 i$ ]3 l' M        'labels' => array() d; [7 G( n0 ?% k, v
            'name' => '公告',* y4 K* H: I" s! b: ]/ A
            'singular_name' => '公告') t, h8 S8 O  h: R$ I: S
        ),% P2 d0 b% M9 X3 }. E  ~
        'public' => true,0 L! T1 s9 n4 d, h( V5 c
        'has_archive' => true,
. T' F7 S- u" p        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
$ L0 F2 k, k! ~+ i; I3 \1 M  e        'taxonomies' => array('category', 'post_tag'),
4 D5 Q6 i! p# A7 J. B        'menu_icon' => 'dashicons-megaphone',
7 H7 c: n0 d/ j. i* B) e" X        'menu_position' => 5,
2 Y+ n: p1 v' h/ f; f7 l        'rewrite' => array('slug' => 'site-wide-notices')0 f2 A- ]1 i4 N5 J9 Q/ q9 Z
    );; j# ~) j: W& O* r& K! {7 q, Q7 M
    register_post_type('site-wide-notices', $args);% e  p+ m5 K' ^% s
}+ C* n) }8 A. ^, z/ v2 K
add_action('init', 'create_custom_post_type');! ^4 L4 X6 G6 v' {
```  A5 V/ G) k' e# w3 O3 B4 S

; ~% o+ P. F/ k' l& M* D在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。# V. t% l  y5 U3 L

$ W9 k2 a: Z( K' l7 C- s2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。' i5 Q( k9 V: T1 b

3 N/ N% Y1 P; S- P# r% R9 u3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
/ t( p3 N# d- J9 D6 H8 G( n6 b2 O- w* E
```
) d0 P$ y& X1 |$ j, I( W$args = array(6 D. r* d6 ]) |- w1 A) B: B' a
    'posts_per_page' => 3, // 显示的公告数量( n% P* ?( `+ p# d
    'post_type' => 'site-wide-notices', // 公告文章类型
8 i# D. s0 e2 u/ D% K) h5 U! s5 L5 g    'post_status' => 'publish', // 公告状态
* s5 I5 T# G& A( Y    'order' => 'DESC' // 排序方式
  C' V( E  A& Z' K( `);8 l$ A+ Z8 ?& A, A& b
$ c6 m/ g# P2 I6 o. y, \& P
$notices = new WP_Query($args);+ G) Z& u0 V( r# n3 ]9 A
if ($notices->have_posts()) :; a: |5 f0 N7 {4 w. {& E* f  V
    while ($notices->have_posts()) : $notices->the_post(); ?>, e: N7 x- L+ b1 K/ F* H9 g! M
        <div class="notice">& i4 N$ f' ]' s! A8 {5 U
            <h3><?php the_title(); ?></h3>
; ?$ o+ _3 O  Z' c( p, Q6 F: B            <div class="notice-content"><?php the_content(); ?></div>. T9 n$ p% _) X
        </div>$ y" Y. R- S/ [2 S" c# G' W( u: L
    <?php endwhile;9 _9 l  A( p/ k# x
else :* f" E. U6 _  Y8 |; x5 C2 [# s7 L
    echo "暂无公告";; B& O  ~. H6 j5 b# a' X
endif;$ p  y9 E  k2 P' O. X' k  K
wp_reset_query();; v4 Y2 q) M. F8 [" M7 l$ r
```
, e* B! _* q: P( H
0 I- Q) _/ F5 g8 Q0 q4 ^这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
1 k  @7 L) g5 J; z( l, O: m' E
5 N. G( Z- j3 Y以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

519

回帖

3409

积分

管理员

积分
3409
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?$ s$ J: w8 j- A: ?7 D0 y# ^& u
, t# T# o2 _! S" J
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
+ a- p3 C" w' g6 o0 I
5 ~  \/ U* y! M; j& h$ e以下是创建自定义插件的步骤:4 e4 i( \1 Y( p, Y) p
! s2 p  O3 ~( Y3 u9 ^7 v' n* Q
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:0 y4 v! I2 g, I0 w# v
6 u# G1 m. f# G7 l+ I2 z
   ```
) m. r/ t5 D4 f' y8 ?   <?php
- V* m# v0 q+ x2 @. J! F   /*: W% U) w7 Y4 u) q4 Z
   Plugin Name: Site Wide Notices Plugin
; A% y% Y0 F& W1 ^8 t2 n2 n   Description: Adds a new custom post type for site-wide notices.4 t5 t: T/ F# _7 {. ^  E
   Version: 1.0* ?7 t+ A) r. Q4 j" {, P/ A
   Author: Your Name' U6 p/ ]- P$ |! m
   Author URI: http://example.com
' G: G8 K+ i! j6 i( H) U. m   */6 l8 z  Y: |4 p; V) |: y9 i

- A5 R( E' Q; t* q& J4 o7 W   // Add plugin code here...
0 y! l6 O( d+ a' q- B- f   ```1 u# @$ |" p* F4 Q5 k5 n' J* E+ L
7 `: X4 Z( b7 S& I4 [2 m
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
, _8 ]5 I8 `6 A. h  ~- ?+ F
  V5 o. y: N  ]4 i2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
6 Y6 G  c8 U9 e2 M) K; M2 A3 R' Y0 A8 P2 Y
   ```/ c$ R% X+ T7 R8 I
   add_action('init', 'create_custom_post_type');
  m! C8 o' M! g# L) V, M2 w   function create_custom_post_type() {/ y5 @" q+ M9 d1 x0 _, ~6 ^- G
      $labels = array(
3 ]2 |" A: N8 A. K/ @+ b# E" M& {          'name' => 'Site Wide Notices',
0 w1 _1 X+ [7 d( _+ e! K# E          'singular_name' => 'Site Wide Notice',
  Z3 q2 p& u2 S1 ^( t: h" ]          'add_new' => 'Add New',
: X, E% ^- `3 w0 Z* H          'add_new_item' => 'Add New Site Wide Notice',+ s  A1 m$ x2 h
          'edit_item' => 'Edit Site Wide Notice',
: a8 Y" M4 V+ d/ W) Q3 G# {( }- q          'new_item' => 'New Site Wide Notice',
5 t. v8 ]2 S1 c          'view_item' => 'View Site Wide Notice',
) J9 c9 N3 E  A          'search_items' => 'Search Site Wide Notices',
: q6 }3 k) E% N3 @  }3 w          'not_found' => 'No site-wide notices found',
  j& A/ k6 l/ `          'not_found_in_trash' => 'No site-wide notices found in trash'0 m1 b+ K* X8 L4 b& u
      );
2 }9 P3 ~8 G, G* V4 w* h; z& M+ C9 }7 |! `/ f) f5 u3 w
      $args = array(% A6 D$ i$ e. ?& d' Y! |+ a
          'labels' => $labels,
6 v& y0 p9 g# S" h          'public' => true,
: s  h% g7 o) X0 v3 l7 u          'has_archive' => true,
! h' s, ?3 x9 ?6 B: A          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),- w) i& b4 N6 ^+ L! v6 C/ w
          'taxonomies' => array('category', 'post_tag'),5 ~0 y1 h; m8 D9 B* i
          'menu_icon' => 'dashicons-megaphone',
2 n$ k. k) C/ j          'menu_position' => 5,! l; V; z$ P% f) c. K
          'rewrite' => array('slug' => 'site-wide-notices')
6 P) {" n% ^) k+ y) f      );, g  M5 Q7 p1 U0 F( F% g
/ l  D# |3 D7 z. r; M( p
      register_post_type('site-wide-notices', $args);' r, s( f# d. L* N# i' _* u4 \
   }
% N  T4 E8 y" n2 B0 K4 L: }) b; m   ```
6 m8 V" ]0 r4 y: o! S8 M$ s- G# R4 s# L7 S, w
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。: T5 t, E* ^4 q& `& o& K9 @' ]% x4 I

" Z8 n0 T  _6 S* w3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:6 m& K: D* g" M: ]. |
. J8 e/ \0 F  ^
   ```1 ~. b# a6 o. r; e$ u
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
3 ~. s/ K  l7 i; Q* q& X8 g! f2 \   function add_site_wide_notices_boxes() {' T: F+ s4 A* v$ B: [  l9 ^& V
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
" {  q* A6 X: Q% ~2 d& @6 b! F+ G   }
8 I0 g1 f# H( s9 Z
. E$ b& T( v. O/ w   function notice_details_meta_box($post) {
8 u& b, l- _: K1 b2 f5 d      wp_nonce_field(basename(__FILE__), 'notices_nonce');" d- ?/ R; f- g  R4 E
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
4 A. h( u) X+ T      $notice_content = get_post_meta($post->ID, 'notice_content', true);4 v! M7 I  R0 H- h$ {
      ?>
$ S+ X* C* _& V, f  z      <p>
8 K" v  J8 ]6 h+ w          <label for="notice-title">Notice Title</label><br>2 x* ?$ @, [5 g7 r
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
3 t' b) C2 _( [; r; I' L      </p>" O1 a7 W1 c# }; {. _* n
      <p>
6 L! s" W. b- g5 E7 j" c          <label for="notice-content">Notice Content</label><br>7 S) b1 d" d6 Z$ e) p
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>* i" t# C* C" g) ^  v) y
      </p>
, x( e+ V; b/ R      <?php
1 a, Y* G, u* ~& v4 v; p   }" L4 r& U7 r: }' Q2 x8 i9 \( h

: N4 C0 s  m! l# t) }& r   add_action('save_post', 'save_site_wide_notice_meta_box');" b' L$ s2 p% _% ~( I* v& \( }: p
   function save_site_wide_notice_meta_box($post_id) {& z! K1 z* E2 I9 U- w4 Y
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
* p1 i6 I  F+ J% Y4 b! Y0 {         return;
. P+ O; V1 R' j1 Y& c4 |$ o! Y      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
4 h, ]  N. }7 @2 J5 R  R+ a         return;
* p. ~7 r  A& x- p+ \
) Z; R8 D5 {' F( B# r  Q      if (isset($_POST['notice_title'])) {
4 f+ A/ y6 R1 G8 \          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
& a$ j$ p2 \; W      }  S# W$ }, X& {, b8 M
      if (isset($_POST['notice_content'])) {
5 g, m& j3 |" p; l) \* l0 A          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));+ i1 ], h. t3 B& O, C3 S1 M( q
      }* E& [5 p# t2 e$ C5 q4 P
   }
( F7 _$ B/ `5 t6 H, _4 {: L; t   ```4 {- m2 x; D5 ^) d
# P" B* z5 V& I" E3 z
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。+ b& }7 P& M, _( h) T  J, Z
7 ~  S: I% Z, g! m$ c) r! x
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:# }5 ?( V1 t( S+ J" W% j9 j, g$ `6 `  n

- _! ^- D! M$ }( F1 s: V2 m   ```
5 u- B  [. G) g' c; n   $args = array(3 G( G0 W# S/ X+ _: x
      'post_type' => 'site-wide-notices',, a/ c9 p) W0 ]/ n2 p
      'posts_per_page' => 3,& Q  q. g6 L4 M( r
      'order' => 'DESC',  B+ O4 g, e9 I3 E' {
      'orderby' => 'date'9 y" e7 T$ Y! m& v+ Y% H* _% d
   );
0 e5 F+ X& Z1 X. D9 S   $query = new WP_Query($args);
0 p9 X, [7 \  d" j   if ($query->have_posts()) :( @2 S- m3 l* {6 i+ ~
      while ($query->have_posts()) : $query->the_post(); ?>
; z5 d0 W$ v3 ^# o( a9 ?          <div class="notice">
' Y' t* @% j" J) Y* ]: m6 p3 p              <h3><?php the_title(); ?></h3>5 K! i1 M$ O) {. A' z
              <div class="notice-content"><?php the_content(); ?></div>
$ N1 A+ `! ?. Z- V$ \1 _- _, M" }          </div>' B, ^" h$ E. t/ L
      <?php endwhile;
- A- y5 ^) I4 E. G      wp_reset_postdata();1 S( v( C2 G7 |, O0 M
   endif;
/ j0 Q3 b+ {( m8 u% h* A. T   ```
$ n" q. v/ i, S+ W$ @$ k4 s6 F& ?( y4 h8 I8 ]
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 14:01 , Processed in 0.112576 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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