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

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

[复制链接]

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:, I2 A) Y& I: }' M* P) x; a; r
& e8 M: O0 x7 ^- d* Z9 }
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。, E* r4 K/ [, Q+ [8 ?
8 Z+ |  m7 M% a# g( o  @
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
- I2 @  p: U+ i2 [% M/ O# `+ v& \% n
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
  s. [( F" n5 f  H! K8 Y; A  H1 [( A8 u6 j9 W0 L' O6 ?6 `9 S8 V
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。' p6 B7 g) f0 T9 D, T
/ K+ s! C; [+ ^; o, e- \
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
: k; V1 G  |# W4 S$ q3 d9 Y  X7 l. Q: P3 J
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:, @: o4 t* n8 F" R- I' |
3 Z6 n0 }' r  Q3 }/ l
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
; Y2 J5 b6 k0 V+ r0 E' n
: r( d3 w/ G) o; B! |. X3 U   ```
7 r4 {. Y: r* Y! r4 P   add_menu_page(0 z6 a& M$ l0 @) M8 U
       '全站公告',
) I' E' x5 @, G! d0 m5 q       '全站公告',
" |1 c) w+ F; X# [       'manage_options', //需要的用户权限. v! @, d* i$ h2 S" w" A
       'site-wide-notice', //后台页面的 slug! d, |9 [" i- U" Q8 j! S: V, c
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数' h8 e, ^5 r+ x% u9 |# a& e) ~2 E4 l
       'dashicons-megaphone', //用于显示在菜单中的图标* p' _: j- A$ V* J) I5 \3 [5 q
       30 //菜单项的位置: g7 S3 _7 W  C$ T; I9 Z8 E" T
   );
- A1 F6 p! f  P2 g. f# g) p   ```4 n8 u* r" h4 F, L+ P' e# }
9 m, m9 q6 @: ^& p6 I
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
- g( f1 b* _# x# E# G* [* s4 y5 w$ w+ G, S) G: Y$ P- w: b+ R0 _
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:( d0 a) D6 y4 p' M
' i6 K7 t4 n- O1 h
   ```2 y7 S; s2 r+ l: j# d6 W2 N* B, }
   function render_site_wide_notice_page() {
: L" x  E- x$ N. F/ B: ^      // 渲染后台页面内容" E. |5 Y  m0 K+ U' @3 w
      echo '<div class="wrap">2 \; G$ D, k1 ~9 s4 A
          <h2>全站公告</h2>, v1 ~/ ^2 O8 V( u
          <form method="post" action="">
& I/ ?8 T. Z- [% ?  P) t$ c; G              <label for="title">公告标题:</label>' j+ @* Z5 ^$ ]
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
. N6 e" G9 E) r1 f( ^0 Z              <label for="content">公告内容:</label>3 [# c3 ]/ F" e: }- M( W2 f4 |% X" }
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>( S$ ^3 d* t+ |- w" W
              <input type="submit" name="submit" value="保存设置">
; e' Y# f6 v5 t- |+ e- S7 c          </form>  p) m2 H* }) X6 `* n1 \
      </div>';
% U! P' W+ q$ _
5 y' ], y' {) H# e      // 处理表单数据
6 B2 l( J/ V4 x0 N5 ]( s      if (isset($_POST['submit'])) {
; O% R- I7 s+ Z( |. Y. u          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));: G: L! ?; @* T8 q
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));& _& o* P- t2 ~) b* w1 ]
      }3 X6 r: H  k; I1 v& ?* ]
   }
( b- B0 I/ N( I# K2 B; C7 @/ ~) T1 U   ```5 ~4 m4 c5 }/ m4 X. i/ g

& ?: i* K; J8 Z/ D   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
+ Q) P" @. _! J( l/ ~
8 U2 h* q7 I# l9 Q& c) k3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:" p+ ~& y6 G  X) c/ D

! D% D/ C5 ~* V0 v8 |   ```
( p4 \7 J* @) Z4 N1 y   <?php3 [% \0 o# U# X+ j4 L
   $site_wide_notice_title = get_option('site_wide_notice_title');
5 a6 g/ e9 ]& J8 [% ?   $site_wide_notice_content = get_option('site_wide_notice_content');
  z( P4 L1 F$ G9 u3 x' q+ @   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
' G& L% W+ Z/ T& r2 I  G( q$ O$ A       echo '<div class="site-wide-notice">';
& K7 C: q, U& y' l7 n9 F       if (!empty($site_wide_notice_title)) {" I! y* }7 b. C- _, `8 B& i( i0 {7 b
           echo '<h3>'.$site_wide_notice_title.'</h3>';
5 ^* q% _0 k6 D! z       }( o6 W3 i& s% }1 n3 s5 I; g
       if (!empty($site_wide_notice_content)) {- w* {0 q. t  W
           echo '<p>'.$site_wide_notice_content.'</p>';
9 F% N8 W2 b5 u0 D       }- M2 a+ s" w7 |& I1 Z
       echo '</div>';
( _1 h/ c& n0 C( o. G- T; o   }  e0 d& c2 }+ m
   ?>
* m( v+ u7 f# l6 G% E   ```' P4 P* z6 ^6 Z6 a# v, C  M& g1 T) l; f
1 |  \: H  f+ ], c: D
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
9 ^0 A' D9 r, i4 l" x/ k9 [" O4 l0 N* {! I7 v
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?; \$ n0 {1 ]' a$ A2 B- U1 @3 J
9 G  @3 [" c' Z9 V. F5 S
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
; l) F) V" j' t8 ~& u1 B/ \7 T# g1 n% n" I. F! A8 {, T; T( @
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:. I/ k, h, j' p' `8 @: }

; |& b: }. k2 s. y; @7 r```
9 t; W' p5 J' x' i5 dfunction create_custom_post_type() {
" L0 A  x' N# L    $args = array(1 F$ ]  Z9 C* c
        'labels' => array(8 I- A! F7 i& n6 \3 S( |! `
            'name' => '公告',2 C, }6 [  n! Q6 g
            'singular_name' => '公告', h$ k6 H; x4 ^% B" Q& o8 y# p
        ),3 X" V+ T" L+ l& U. [1 Z
        'public' => true,5 {9 l' L% e# N' ^5 s2 Q) _* |4 w
        'has_archive' => true,4 M. \$ F+ ]2 m2 P- i6 l) B8 A5 W
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
. t( }8 Y. y) V: Z, _; \( ^4 w        'taxonomies' => array('category', 'post_tag'),* r! \5 Y* p: I* }
        'menu_icon' => 'dashicons-megaphone',
% L" `) i+ @) c0 r+ @, Q        'menu_position' => 5,5 [& |! I$ }3 s2 `7 E$ {4 y8 O
        'rewrite' => array('slug' => 'site-wide-notices'); O2 {) e1 H1 _6 I7 R+ z; x# F& k) }
    );) c1 G2 q1 X! [; R. A
    register_post_type('site-wide-notices', $args);
7 i" k% G( z* ~$ z$ o}
1 S2 t4 e# V' z. ~- W5 A; Jadd_action('init', 'create_custom_post_type');% V" C7 L. i* [1 s6 }
```6 V# Q2 L+ J' @% w/ @

3 d5 Z  A- p& |9 u2 L0 r在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。9 g6 u6 N5 T: ~, X
" g' U& j. U9 u3 a2 X" w$ d( B
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
+ u% ^" T% l  Q7 u" k: ~+ x& }) N6 {2 V5 h5 G
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:. R8 _) D  \1 L& z

$ W0 S% u' I: o( M$ g# Q$ }! N  s/ z```1 J! x7 F0 n& E: |( S
$args = array(
9 H. ?/ G9 \4 X. o$ w    'posts_per_page' => 3, // 显示的公告数量& }& b, t. Z3 L( n$ R) b; c
    'post_type' => 'site-wide-notices', // 公告文章类型
- r! \. k* p0 T$ K8 Z" M    'post_status' => 'publish', // 公告状态
1 g2 r+ M$ u8 e& l9 i- @4 N    'order' => 'DESC' // 排序方式) Z+ ?) z7 G  J# h( t" w9 r) l
);" B6 D% }* d$ Q+ |" }! S
; Y- q! X9 G4 O/ M7 v; w$ V
$notices = new WP_Query($args);
# {6 O9 O( [9 h! q/ Jif ($notices->have_posts()) :
+ o9 _  O0 z) i    while ($notices->have_posts()) : $notices->the_post(); ?>! S. d9 G" \& V9 W, y+ d7 ^
        <div class="notice">
. e. G1 Z) h: \. B6 ~( _3 x( g- `/ @            <h3><?php the_title(); ?></h3>
) \+ c0 @$ |3 h) [            <div class="notice-content"><?php the_content(); ?></div>: O& P4 G. x: g4 K4 P
        </div>; U6 ]3 D' v. k& }
    <?php endwhile;5 P; k' S% a0 e% j9 `
else :# D; y, q- E; y7 f$ Y/ _. U
    echo "暂无公告";
4 i/ g  a& s" s6 j2 gendif;- B8 R; O  ~) Z4 [0 @' V) o, X
wp_reset_query();
# Y6 o6 K5 G8 M* Y& ~( P6 h3 l# b```9 F  {( m& M8 v! L- |& G4 w6 k
8 n; j6 n1 l( U" Q1 g
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
6 d' C7 d0 Y1 b
9 i& w8 L+ q( |2 H% M& U以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

335

主题

520

回帖

3423

积分

管理员

积分
3423
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
" L( A% `% `& W4 u6 T; h
8 T( z% U+ G( V# n+ G3 K2 c; O+ b如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
" |. K  a1 @" q4 Q
! g% e9 [' D0 s9 D8 S/ Z8 p% H, X' e以下是创建自定义插件的步骤:" x3 |6 V2 n7 _9 b: r1 P/ _7 k# R

. H8 c) E& x- M  M6 p7 P1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:* {. a, U- F' j. h( F5 x. u
. ^; f5 z2 G0 y4 j
   ```
" c1 `$ q7 M& w. W8 z   <?php
- \; j) {" g+ _4 p. ]# I5 f+ B   /*
6 S4 T1 w: _. w+ [' @# q& k   Plugin Name: Site Wide Notices Plugin
; l3 }# H/ B0 q$ f   Description: Adds a new custom post type for site-wide notices.( `9 w5 q) W; l/ u* b& W2 S7 o
   Version: 1.0
! X; T$ h5 Y7 l' ]   Author: Your Name% w3 Z  N6 p7 Y
   Author URI: http://example.com
# ?' I# \: x% O- {# J% q   */
- o2 e: @( l" W. \' u: X6 ]* F
# ?5 U5 _0 ]6 Q2 L   // Add plugin code here...
& z4 U3 W* W8 B# k" f) _1 W2 q: P   ```
! J; D  @% g9 Z* A3 y# d  k4 O( ~* K
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
3 D  u/ x1 r9 n
8 k% z$ z! Q/ N2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
6 o; W0 [, i9 Y
% j6 t& R' \: p# s   ```
3 D2 |# n" p: z" |: ^+ p# n) ~& \   add_action('init', 'create_custom_post_type');
2 [/ S" l& S! y! w   function create_custom_post_type() {, H- m9 E5 F! V) M0 J9 r7 b
      $labels = array(
9 F* H  P) v  s1 h/ R          'name' => 'Site Wide Notices',; k1 l4 ]6 }& T" G6 S  S% C
          'singular_name' => 'Site Wide Notice',
- T) O# N9 M7 f7 w1 ~' m& ~          'add_new' => 'Add New',
% E+ _; ^' e! K          'add_new_item' => 'Add New Site Wide Notice',) m7 G$ a6 k( R4 h7 c7 R" b7 |
          'edit_item' => 'Edit Site Wide Notice',
; i! X1 u9 d9 A3 {          'new_item' => 'New Site Wide Notice',
4 \7 [1 _7 H0 j- z$ z( s+ o; g' w          'view_item' => 'View Site Wide Notice',2 e  j; `# s' P
          'search_items' => 'Search Site Wide Notices',( y# l+ H6 Q2 F0 t& O) M
          'not_found' => 'No site-wide notices found',
1 y7 u( ~. e) F5 P$ e8 K8 W, M          'not_found_in_trash' => 'No site-wide notices found in trash'
/ x) @" R" Y) A/ D5 c+ o8 A- }6 r3 a      );
' p! d6 b4 j0 P4 z$ Q; g% K5 W) W: ~) _) D1 u& B4 b+ c$ `
      $args = array(
7 f9 I5 l5 R6 p" w          'labels' => $labels,+ D4 A, f5 k6 \& F
          'public' => true,8 v3 g  P0 \& I0 p* [" A
          'has_archive' => true,* N! a) O( _# D: x. L
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),% N2 o' N/ z* W+ Q9 j+ B
          'taxonomies' => array('category', 'post_tag'),
3 r8 E% o) |- N8 L  E; K2 X. A$ d          'menu_icon' => 'dashicons-megaphone',
( b. ]5 M- ?/ Z) t          'menu_position' => 5,. N' K0 h0 c0 ?3 I4 w
          'rewrite' => array('slug' => 'site-wide-notices')" }, ?+ j# u/ ~  O  ^# o
      );
! `0 a% `- a  C# P
; j0 L1 [0 U  o! f1 q, I4 F6 s      register_post_type('site-wide-notices', $args);
3 i; |2 O+ L) {! e; L$ j5 y6 A   }
; }0 x' }, r+ Q: c- I- R   ```
; f% [8 ~( ^! m! E! x+ V- e6 m5 C5 ]9 v3 X4 l8 ?2 j1 w4 }# u
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。; Y9 f" c) i" b

9 [/ w# v- l4 {/ ?: ?3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
4 l* x/ v5 ~+ y8 x6 `3 U* s: {" T3 u' e( |9 `% O" N
   ```" J' W. X8 u& F3 K' y, P
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');4 M( ~4 ^( [# E; R  K4 ]7 H+ R: U
   function add_site_wide_notices_boxes() {) T" l) s4 F5 N) t" d  Z
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');' ?( Z" u( `( l3 G' x
   }
# c3 y/ c/ H' S2 ~* r* u7 {" ^! \  M7 _3 g. C: ?7 c2 x, r
   function notice_details_meta_box($post) {0 u2 u. `9 N. A, J, T; T
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
" x( M& x, K6 g) X, n( N      $notice_title = get_post_meta($post->ID, 'notice_title', true);
7 e; _9 u" P% [      $notice_content = get_post_meta($post->ID, 'notice_content', true);
: t5 ~! x/ O2 A) I4 H: W      ?>- D( ?9 u5 E1 v* I' {% }8 @" h1 J# O
      <p>
2 C; j$ K. ~& F% ~/ t2 [          <label for="notice-title">Notice Title</label><br>
1 K* s' a6 f! a- x3 K1 w) \          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
0 N1 ^& {; m2 B4 b* t# s  Y$ i      </p>5 b+ \! N9 h' J
      <p>
  L& G, ^3 T7 @1 J, T" S          <label for="notice-content">Notice Content</label><br>. F, A7 |* o5 [$ A, @1 ^8 A& J
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>8 Y+ _/ l1 L9 A; f2 G' k1 |( e( W
      </p>7 \2 I" \6 U6 c' J$ s
      <?php
' ?3 ?" L2 F* F, [   }# t3 [% C2 b8 B8 l) w6 q. z1 C

9 u- N# m  `* l# J   add_action('save_post', 'save_site_wide_notice_meta_box');: G2 W, L* s/ q$ u
   function save_site_wide_notice_meta_box($post_id) {
4 B9 |; P" @, @8 R: l/ J" v8 L: h6 E      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
5 |0 `8 e, Y/ F% R9 E& a( h         return;. a/ X% t, D! ]/ A
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)7 e/ f4 k7 z+ C- _% x
         return;, R( k( y7 ^9 U! I7 [! `
( P: [1 G! Q& ]' |$ r- D
      if (isset($_POST['notice_title'])) {! b4 K. Y3 c# E" G, B! J/ ?3 U
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
) h) z0 t+ L4 o' N4 j! b: A      }
) c* I( ^% f* E  R9 I9 e      if (isset($_POST['notice_content'])) {! {% i, ]. V( q+ n* e
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
; m+ ~$ P' K2 B  r- w      }
$ q& w4 f8 ?: Z, m! X: o   }
: A, {" V7 V2 a3 W. t% Q   ```
$ h" y/ v. i# I0 {
8 o# X) F9 k  U7 o   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
, {" D: j) @0 p
, j% [" H! C' d) i/ K8 C4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
! O/ k) D+ K0 E% S' J! w5 t4 Y  D1 C3 ~0 f4 p
   ```
# f2 f: `, d) Q   $args = array(
# y7 Z* E/ `, w& W      'post_type' => 'site-wide-notices',
$ i* r  @% i4 M, G. j: i      'posts_per_page' => 3,
- `; l" P9 }* ^6 v5 a      'order' => 'DESC',9 R0 [7 T: I6 h  m
      'orderby' => 'date'+ O- N0 S! K5 M- k) C
   );
- W1 ^0 ?! R2 [8 U0 I: R# c   $query = new WP_Query($args);
/ U) K+ K6 H+ |& I2 f   if ($query->have_posts()) :/ c9 |) ~) N! y& G
      while ($query->have_posts()) : $query->the_post(); ?>
6 [0 M% Z  i5 ]4 \: k7 X          <div class="notice">" L' l  b6 s, w8 b3 {: X/ d
              <h3><?php the_title(); ?></h3>3 A9 d7 y4 z: f
              <div class="notice-content"><?php the_content(); ?></div>8 n0 c* k" \4 N- d- k* S9 h- j5 g* t
          </div>
' u' x5 J9 |' c" n6 d      <?php endwhile;0 B8 g3 b4 r4 C  D
      wp_reset_postdata();
, ?1 ^' O. h; C  ?' W! q3 d2 l0 o  W% r   endif;
- d, v) H6 a6 ]) m+ f" G5 G6 H   ```
9 y; }( `4 K6 u' b+ b
  @/ P& R+ v- G5 K. j   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 21:07 , Processed in 0.076168 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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