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

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

[复制链接]

335

主题

520

回帖

3417

积分

管理员

积分
3417
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:3 c, A, v; ^! b' q# s, W
& s3 M9 X% v0 y+ ?$ d  g
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
1 G5 B  S( v- s+ {* u; @% m( `, m
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
! i0 {2 W2 F' R% n$ ?3 K  e+ i' f  x* w
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。6 x& j' z+ T, D9 g1 e
+ w5 R8 w2 N6 p+ d) [: b
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
7 N/ N6 x$ m( A# J! r& _2 w+ b4 n* D; L
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3417

积分

管理员

积分
3417
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?$ i( N. N1 b8 u& F! B

( N& ~8 }% g; Q+ l) V$ l+ s* x如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:( j3 x, o2 ?3 k
9 d% W- w5 I  a) x6 ]. @$ e4 w
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:+ ]) S4 P- s# i8 [% c
4 a4 a# S2 B: c. q  O0 w
   ```
9 s9 b* |) P5 r# ~+ I. k   add_menu_page(
7 h# T5 l) U3 ~* c       '全站公告',# S1 v$ K. d2 ^" |. A, k5 m9 g
       '全站公告',- ~* Z% o3 \1 I7 ~6 E
       'manage_options', //需要的用户权限; y! M) m) }6 H5 D* v# x7 W* s/ l3 B
       'site-wide-notice', //后台页面的 slug
) V8 R# x( u. W2 `% s: t" Q       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
% C2 J' t& q* B8 r       'dashicons-megaphone', //用于显示在菜单中的图标- H' E5 L, u; L! z/ M! W4 _
       30 //菜单项的位置
. f2 L8 n" \; [3 o   );1 [0 o# Q: F6 q( e0 j3 f
   ```
7 I/ B, R6 e$ }' M, M0 @0 M2 M, ^4 F- R
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。) G0 |4 y5 Y" e* M5 y/ Y' r/ |( m
" }: U& e  W; X, h4 w
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:9 {9 m# u+ a8 v* o+ ?4 H6 o3 T4 Y
5 c& N7 M4 S: y1 p; Q
   ```5 _8 h5 E- a# _$ f8 V: C5 G
   function render_site_wide_notice_page() {
4 I( ?( f* l8 i      // 渲染后台页面内容3 u+ ]6 p' r7 r9 Z6 g
      echo '<div class="wrap">
2 O6 K4 Y) B+ T* \% s          <h2>全站公告</h2>) ~. c. w5 E9 _  H2 q& K% J: C2 R
          <form method="post" action="">& Y1 a5 [8 V7 X0 R
              <label for="title">公告标题:</label>6 y# p. q) U' h- P
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>6 D! ^6 w3 F. a( x" y+ Y
              <label for="content">公告内容:</label>* \- B3 ]% c1 a0 x! i7 g
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br># ^  M+ ]: Q$ C/ f! E5 C* A0 ?
              <input type="submit" name="submit" value="保存设置">
- q. V6 f* [# s. ~          </form>; k; H* z: F! v
      </div>';5 q7 V+ _- Y5 O9 X& L

( t5 w* Y- w" s/ u) T7 k& K      // 处理表单数据3 H( Q/ o7 U* a2 T9 r
      if (isset($_POST['submit'])) {7 K+ Q2 C! \& }: A$ ?
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
% |8 r: ^, l8 ]7 f; w          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
% n" k5 U0 G3 N8 J      }, O* e/ a% k, F: P
   }
8 D. Q2 r/ X. x* V; V   ```
+ }+ ?, S5 S0 i- c( Q0 m6 [* k  D# n" v0 F7 }1 l# ?9 @
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
! Y9 D# l9 x) e9 e# i
5 K- `7 ?1 E' M. j$ ]3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
7 }: U( P9 k' i9 j9 e3 V1 N2 n# H& K
( ^! ?+ _0 d. f   ```' y, T7 w& W* A4 o" u% }5 }
   <?php: R! K1 s0 [. j# x% ?
   $site_wide_notice_title = get_option('site_wide_notice_title');4 ^$ f) W; p, u2 L- s( P
   $site_wide_notice_content = get_option('site_wide_notice_content');
4 h1 k4 X  H; a0 t' _% ]   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {$ Z  r' P9 [" g% R+ v3 C
       echo '<div class="site-wide-notice">';& e  r+ p) c2 [* H4 V
       if (!empty($site_wide_notice_title)) {
) }3 O- h# J5 \4 H! E3 a! a& S           echo '<h3>'.$site_wide_notice_title.'</h3>';
6 V- u0 ]9 u" t       }
2 z2 [% A6 F- o# a- ]( p& g       if (!empty($site_wide_notice_content)) {6 ]: `* g; ]9 Z; d
           echo '<p>'.$site_wide_notice_content.'</p>';: g1 D* |# T- `0 \
       }
3 S4 Q' I* [8 }( q       echo '</div>';
, O6 @9 E4 S" }  F   }
5 z* S$ P' P2 _" |   ?>
" ]: e& n. M# P  `3 y) \  z# n   ```
! O' J7 ~' K3 W) e4 y% r
9 s5 D* C1 w2 E+ P) p7 G   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
3 k8 e1 `% i2 U' t6 K; G, T$ s8 A) X3 y/ q$ G
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

520

回帖

3417

积分

管理员

积分
3417
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
' ^; ?! [" r& _" e( \+ q7 }9 K2 |
" F4 D  |% X" w( P* c您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:+ l6 s0 }$ m! |, g( t

; @$ i0 A7 R- F  k1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:& f) ?( H& P) Z/ s
) m* a! |. b" q4 ~3 H& y+ F/ H
```
  v6 _3 f7 e6 b+ }1 b$ sfunction create_custom_post_type() {1 `6 }0 ]3 f# u! B, l' L. ?+ G. A4 x
    $args = array(
; W5 n- P1 s, Y* ~1 t/ m( b0 G        'labels' => array(+ E2 I) v: P4 O: m* w' a
            'name' => '公告',
8 x+ N( ]0 T7 n7 M  w% p            'singular_name' => '公告'1 k; v% S* v9 _+ `3 Y" Z
        ),
  B4 x) o) L- S* h9 n) F5 ?" {        'public' => true,
6 r, T! ?* Y; M# @  C$ Z        'has_archive' => true,
) G: i( r+ w  W8 F+ F/ R  ]+ }        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
- B+ I3 S6 V; L& ?        'taxonomies' => array('category', 'post_tag'),
" S! R. g7 ~4 e- J# K: D8 ]9 J* z        'menu_icon' => 'dashicons-megaphone',
" g7 N$ |; Q0 W; H/ A        'menu_position' => 5,
) I8 n8 \5 C! c2 U3 R) L: g        'rewrite' => array('slug' => 'site-wide-notices')  ~  h: a) L1 `2 ~+ o
    );
+ |/ @5 C% j: w5 N  ^* I    register_post_type('site-wide-notices', $args);
$ J9 H1 y* o# E' l! I}/ S7 g( {: r( ]3 `
add_action('init', 'create_custom_post_type');
4 H0 z1 s7 c) ~7 R( X# k. n```
: q$ A6 c8 H) {+ ]' s) R5 Q  W5 j* o4 e0 b: y6 \1 a% G
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
* {( a( B% j# d  h* z2 k/ H" z5 s. N2 H: z1 q) h1 I
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
& u4 i! x. L0 Z% y0 ^& L1 S9 L& Q  \: a: e
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
; J+ F$ f" z. T4 {3 _. K% o; x+ C
8 h" F6 t0 ?5 C' S# a```
5 k- o/ g: L, w5 V. t- F1 f  a$args = array(
7 g5 O  y, T# ]9 e& {    'posts_per_page' => 3, // 显示的公告数量1 C* H( Q3 X3 T. d: L
    'post_type' => 'site-wide-notices', // 公告文章类型
6 l2 I8 Q$ Z6 @, h* f- d8 [' }    'post_status' => 'publish', // 公告状态
( L9 i1 T; d! u; J0 ?    'order' => 'DESC' // 排序方式" c0 V, |& t. [- A7 A
);( O: f6 ]" `4 ~
9 ?8 o" J. D4 l/ N2 ^' m3 v. G
$notices = new WP_Query($args);
) z+ ~6 ]6 a. `8 m. {9 ^& Pif ($notices->have_posts()) :/ `- C1 ^) R( Q; h3 O( G" C2 {
    while ($notices->have_posts()) : $notices->the_post(); ?>8 d& ^( @5 F8 h9 O, l+ _
        <div class="notice">5 v; p' d$ ]) Q( m. T
            <h3><?php the_title(); ?></h3>5 ?$ t( G& m. a3 U
            <div class="notice-content"><?php the_content(); ?></div>
; {3 ?, \8 X1 X6 K5 Q/ `1 \        </div>
" x- M( K1 A0 C) K7 F6 z, }    <?php endwhile;2 v% u" i+ T! k1 G' J* d7 o
else :/ z/ E- Z8 A0 T; b
    echo "暂无公告";5 D. M/ \# r; R6 l, S( B" d+ O
endif;2 o1 v( k, N$ L- P( ^" t, m
wp_reset_query();
0 [$ Y# n- a$ ~' m, \7 ~# s" t# h, F```  }& {# H: ?3 ^7 m
6 ^2 B6 b2 o9 I3 P" b* R) y. Y
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。6 K4 q4 F  L: S5 z2 Y9 Y+ j
& V8 f6 a2 [8 L" e9 V9 t$ W
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3417

积分

管理员

积分
3417
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?  A5 f, T; {# J9 p/ w" W  j
2 Y' ]7 z$ k" C% {4 r$ v" _" Q
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。& o& W# A4 t1 W3 Z

  D6 w! k( @. {0 d, H) L0 |以下是创建自定义插件的步骤:
( g* Z$ q+ x, ]8 j, P
  |' ~7 o, h8 F% ^& B1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
5 c6 f: _! O! x5 ?; o6 J1 ^- @
! O8 d! H, ^  v   ```* X- W1 Y% O5 A5 Z8 w* }1 \. V
   <?php
" @% R' L! B/ I6 E* p# [  N( _   /*
, b4 w% K% Y" N0 V3 ~   Plugin Name: Site Wide Notices Plugin0 Z( S3 R+ b% s) R
   Description: Adds a new custom post type for site-wide notices.3 n5 D& d! `' x, G4 X' C1 t+ ]
   Version: 1.05 ^. Y/ A8 I6 y+ c' r0 l7 k8 e, h
   Author: Your Name8 A" N& i  U( \8 N' Y
   Author URI: http://example.com
  B( ]2 S0 t9 [) E! R+ S+ Z' N: q   */
/ W* F) g1 y4 z4 h. D7 U% M( ]8 H
% C1 B' g* h, O7 J   // Add plugin code here...* f7 q& B) e2 o6 Q( y2 z: X
   ```
! s" N; `# J+ ?2 R: X# X) l
( `6 _' b) J/ P5 x9 [   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
+ u0 d' F  W& f4 ]+ K8 T6 s" |4 V# F: o2 f  c6 W
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
, y9 D* c1 H3 r; A6 p+ q' D& r# R6 @1 N8 U7 v
   ```. ^' D2 n- b% X
   add_action('init', 'create_custom_post_type');1 p. d# K" H( n9 d. G2 B
   function create_custom_post_type() {
# Q$ u0 Q( p9 l4 d      $labels = array(& Y. L4 C, H; r
          'name' => 'Site Wide Notices',
; ~0 E! {4 V  E& Q8 [/ B% q2 i% q          'singular_name' => 'Site Wide Notice',
2 j8 p& B- o6 [4 o. U7 R          'add_new' => 'Add New',
  I) _/ `" R& E3 a& ~0 l) o+ V/ \          'add_new_item' => 'Add New Site Wide Notice',( \9 h- [$ s9 g% L& V
          'edit_item' => 'Edit Site Wide Notice',
" V) U+ o/ C# x1 {9 K8 z7 G          'new_item' => 'New Site Wide Notice',6 @$ K7 N" {, ^% A, W: T; L
          'view_item' => 'View Site Wide Notice',* }5 w" b# u. u: v+ G( A# v
          'search_items' => 'Search Site Wide Notices',
+ y" ?: ]) d# d3 p% r) L# \          'not_found' => 'No site-wide notices found',
: G# t$ v# M. `' {4 B- I) e          'not_found_in_trash' => 'No site-wide notices found in trash'
- G6 ~4 U7 i5 B6 H0 \1 [      );
8 V+ |9 a5 N' L! W0 L/ u, \* g) _' w# J
      $args = array(
2 f& I4 x- w/ F) F6 s          'labels' => $labels,0 E' M% b# g. @! B0 H5 _
          'public' => true,
2 i- x/ e0 f1 G+ L          'has_archive' => true," W* j5 K% T5 N* Q' ]1 N* @* e
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
9 G+ G+ A/ h$ b          'taxonomies' => array('category', 'post_tag'),( m/ f8 Q9 k2 G
          'menu_icon' => 'dashicons-megaphone',
- R6 K- w. l& h! P' N          'menu_position' => 5,
5 R+ \' ^" n+ a; V          'rewrite' => array('slug' => 'site-wide-notices')( G/ C- v$ b- |3 _( Z1 J
      );" M- c- O5 f0 S
* \' X# h3 H; O4 A
      register_post_type('site-wide-notices', $args);
% Z6 ~& J$ Z( o; Q2 }   }
2 V/ l/ U+ ?4 d- u6 `   ```
; ^- B  g1 C- Q( p; b
6 B8 w# H6 q* X. V- j6 R   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。( A3 A1 H# _) t, {  V: j4 q# X3 q

/ {" `  a3 F( K$ f  H3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
0 {& u, v: f9 u; k/ Y: h* v7 |& K: @6 M: Y" }6 o( ]
   ```! k. [7 X6 k+ ^, K' }2 ^
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
" ?2 u6 ^- K* `2 ~. i5 S3 _( X   function add_site_wide_notices_boxes() {
4 m* K& T+ D: G4 x# |( v4 O8 H  R      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
( l1 H& u2 Y! Y' K/ o' W% o- g9 w   }) v, |+ @, }) c. n6 J0 C9 I4 G
6 @1 l2 u/ `$ U& i( T
   function notice_details_meta_box($post) {
2 V9 V  n3 A. S  s9 c      wp_nonce_field(basename(__FILE__), 'notices_nonce');3 X* }2 h3 e9 a" b4 H& Y
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
* f( w. x3 F- g  q# d, P' j      $notice_content = get_post_meta($post->ID, 'notice_content', true);' o* a. [* g/ W; U: M/ Y
      ?>$ f! }- ]$ D* j( @" s7 J
      <p>
8 d2 D! G6 ^+ y* w  U, X" ^+ p          <label for="notice-title">Notice Title</label><br>; _: X) {1 U( ?& N( L$ }$ D
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">" e# K: R6 i- I) a" L
      </p>- T+ N  H' J- |: U! }  s' ~
      <p>
  F' H( p) ]9 \5 ]2 Q          <label for="notice-content">Notice Content</label><br>6 B( d. L4 y" y
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>& R. n. l2 \# R6 \
      </p>
. g0 l3 S8 K7 p- K5 b% L' {; ~( k3 X      <?php
9 I& ]+ F0 K6 S* N+ ]$ ?1 Q   }
2 A% T2 W. `% R! Y. E; S1 }' ~
   add_action('save_post', 'save_site_wide_notice_meta_box');" A$ L- K/ V# a- Q9 j5 H0 O
   function save_site_wide_notice_meta_box($post_id) {
  T1 |) t. d: `2 ^7 P8 [6 a, x      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))) R, s: s. o% y  s  W1 i
         return;
* v% R( M& ?& W      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
& N9 ]: n7 `# l% q, r         return;. c5 [2 x# M( ~$ Q+ B! A
8 B8 {( ]; M: O% e. Z) F6 @7 U
      if (isset($_POST['notice_title'])) {
8 `( {& L0 ^5 ?, |' w, W7 [- F( S          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));9 @! K, @, S  L( v; X' t, [
      }: D6 ?( m. I% T& t. l
      if (isset($_POST['notice_content'])) {' Y8 D! Q+ B2 J  g6 X. E$ e5 v
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));4 y* s! {  |2 c5 g+ \
      }& p3 R5 V% p) N' e7 U
   }+ i- I3 \4 T. G
   ```
' p4 j- t6 K! Z% {+ C- b8 K5 s$ [$ b( i4 w" |& i8 D
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
6 ^5 B2 S, x& x2 e1 B6 [$ Z' l8 Q% O0 O7 u1 k
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:6 G( G! j% V3 {5 J2 N3 p

  X" Y; }! N6 {; T   ```/ v$ s  e5 F8 `9 \/ s5 R4 G" O; C* l
   $args = array(' C) d* K' U9 O) y, I) V- `
      'post_type' => 'site-wide-notices',. h* `6 J: \7 S9 M9 |! F
      'posts_per_page' => 3,, ~  \2 R. t/ V  k  W9 S" L& [+ v
      'order' => 'DESC',
2 K: J8 G0 V" f      'orderby' => 'date'
* d7 j7 s+ d# O4 c   );" c7 Q3 L) F& |3 U: _8 _9 O& b4 u
   $query = new WP_Query($args);. {2 U0 g+ h/ j( k' \- ]8 }
   if ($query->have_posts()) :
% F/ ?. R; A/ ~" W) W      while ($query->have_posts()) : $query->the_post(); ?>- L8 l: {) m& w9 m' a! Y2 D2 t
          <div class="notice">& p1 K+ K4 J; W+ y: ]8 ]' @5 @7 x* f
              <h3><?php the_title(); ?></h3>
% y. S; m# {2 i0 j- S' v/ D              <div class="notice-content"><?php the_content(); ?></div>1 f+ D  ^( L  _8 d+ o
          </div>' f: d3 C4 Q+ e$ \* c7 w
      <?php endwhile;
9 c) Q$ K# A  K2 `( i3 N      wp_reset_postdata();
9 I+ @, _6 z0 v7 ~, P  U6 U- a1 ^; p   endif;
* Z& ]( u+ X) h) v   ```: `( N# J2 v  U* c8 q

2 i% d& q+ H+ {* T   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 23:41 , Processed in 0.073073 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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