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

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

[复制链接]

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:' z7 a6 E1 t0 A9 w. }/ B
7 ?$ `7 K: a7 f+ A
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。! J: l# y6 W( w( C- H# Y  t$ d

7 S# H: N8 \6 w4 x, I2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
3 [3 ~! [8 K' Y
2 c0 G8 z$ B' f8 B  |3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
0 @" d7 N1 Z6 p1 R$ t3 U7 v, _; `/ j( d, d& n
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。0 \: G' }. h) B7 M" O

/ |6 ?, ]2 t! D/ \* q注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
3 y+ Y- w$ ^! b3 F2 w' s! d' c/ S- u! W5 t
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
" a0 p3 w3 I4 K. k
, t) X* X$ d( m9 C* B1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:) O4 y8 `; t0 c) ], g8 O

3 c; {, p# o& |6 o: L& p, G   ```
/ a' Y( L# t* g' a1 ]   add_menu_page(
9 k7 T( Y" C. z2 ~, r       '全站公告',
) y4 b/ V+ y5 p- Q% ]% f1 \       '全站公告',
7 g# x' ~' O. G, \       'manage_options', //需要的用户权限6 M4 W3 {, h  R; y4 f
       'site-wide-notice', //后台页面的 slug
- s: Z. K' u3 E       'render_site_wide_notice_page', //用于渲染后台页面内容的函数; U2 j! J% B' _7 {, A% c' `
       'dashicons-megaphone', //用于显示在菜单中的图标
+ N& R4 a3 T% Y4 J       30 //菜单项的位置
$ S9 m0 a) M2 O' v8 C8 \, \   );
# T$ V) A4 m9 z( @7 {1 y. Q9 v   ```( `2 w2 I: k" K6 z+ z: j$ O" A
4 o: F5 G9 q; m0 ~
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
; q2 v- s! [# @& b! ~+ |
! P% b" z1 A2 e+ L  @2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
5 @9 [& t3 m: _% U- {- y& q/ }' p, g! H& n% t; D; p8 V
   ```9 G7 @. _0 d5 J1 T. `
   function render_site_wide_notice_page() {
6 D8 i  k% E$ w1 P) r8 |      // 渲染后台页面内容
; n$ H9 e! Q; ^- A( E9 C      echo '<div class="wrap">
# S4 W: n$ b  K" |, X" e3 D) j- x          <h2>全站公告</h2>8 D, n. E/ ^0 S* H: V$ d* L
          <form method="post" action="">8 ]( \8 n8 V  L* f! o* E
              <label for="title">公告标题:</label>
- d4 e1 [( T* G, }! P% M              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>5 X& H7 W2 x- w" b6 [7 N
              <label for="content">公告内容:</label>
+ \5 {! d( e0 B5 K! z+ L- q1 L              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>% {5 ?: Q* s0 y$ o' X! r( W- H; n
              <input type="submit" name="submit" value="保存设置">! J* G6 Z, ]4 Q8 L. C; v. f" P, d
          </form>  j2 w- ]$ U2 G7 D" L
      </div>';7 O7 k, A. O. q6 V9 U
! Y0 P% w( F5 `# M' f
      // 处理表单数据
" a& e4 U6 J  k  l9 Z      if (isset($_POST['submit'])) {2 X( b+ X+ U* M3 m+ a
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));% X  O8 \9 ^# l; r' U% c
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
: H; `9 ~  y$ Q+ W, S5 |      }. T$ d! K8 B# X2 o" S
   }
0 ?! E8 e2 l( V& W   ```9 \1 j5 ^$ v0 R& w
  f' a5 `$ g* z: }" m
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。% v% u3 L  v5 g6 I

0 m# M# Q/ X8 v2 b5 S+ k3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
3 ]1 r, D& x( `+ P# O; Q  W+ j/ f% ~
   ```
5 D# l- X& {! H   <?php2 l, \1 N# k# ^
   $site_wide_notice_title = get_option('site_wide_notice_title');
. [1 x3 r5 |( i7 k) W8 V  W* A2 }   $site_wide_notice_content = get_option('site_wide_notice_content');
9 |7 Z! B: R  A/ d# B7 C0 x! D  P/ K   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
( m9 h+ I9 {: `- V       echo '<div class="site-wide-notice">';% d- a& ]9 [2 U( Y: B
       if (!empty($site_wide_notice_title)) {" K& _3 I" E8 E$ f# [- i" R
           echo '<h3>'.$site_wide_notice_title.'</h3>';
' ~; p. }' f/ j0 y2 E. _7 K       }) v! d3 N6 D7 T. T+ P  }, x
       if (!empty($site_wide_notice_content)) {3 C0 E& e; h8 K4 J; i* W5 D
           echo '<p>'.$site_wide_notice_content.'</p>';7 T6 e6 a# y$ ^
       }/ ]; Z0 |9 K7 r+ e4 M
       echo '</div>';
  v& p* I9 g  H& v3 {( Z' C   }
, |1 r3 ~! E; F. H9 p9 u   ?>8 i+ `# W# B- t7 M& W: x2 I
   ```
. h# B& Y& g$ J/ E
8 t4 i6 X7 w! }9 A( J$ }  c# U* Q   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
' z& Z; `  g; d5 ?( c4 X* D% B
5 n% |1 ?  V9 m8 h2 C请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?: y* i' W+ F  V
, d' x* x0 V4 ]
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
  ]7 {2 Z- M/ ?$ A: @6 ]5 J
7 F3 x: ^( H1 t+ F/ r1 i- H1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
% U- r4 S2 H% c2 u; g; S2 L. m- U+ W+ F, A2 a
```1 q! o, m0 A% P, t6 m+ D1 ~
function create_custom_post_type() {
5 D/ Y: n8 i( F9 `& L# a6 m  o    $args = array(
/ ?  J" @# C* ]& k( s' d" x* ^        'labels' => array(
( a+ }3 |9 B+ J3 H            'name' => '公告',. V7 J9 M- |$ \$ [4 c
            'singular_name' => '公告'
6 W" i6 P# c% L* d( ^        ),
% A( e9 @2 s+ b* I        'public' => true,
! F# x$ S4 J1 w8 G, k6 V0 V        'has_archive' => true,) T  l% t" J7 @6 e* e( w
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),8 f' j  U( d0 }, I4 i
        'taxonomies' => array('category', 'post_tag'),, E! c! I5 h; z) a; s8 ]- Z( \# z- h
        'menu_icon' => 'dashicons-megaphone',. |" v$ N# o' h6 j
        'menu_position' => 5,& o. A4 `& q9 w. v
        'rewrite' => array('slug' => 'site-wide-notices')- h4 H' K; G+ }; o2 Y8 ]
    );
- G7 x( E$ h" ^+ J; m7 T; s: {+ c    register_post_type('site-wide-notices', $args);
. R2 |( q6 _0 a- O" D/ X}
" u% q# b" U" x; ~; k: Q& Cadd_action('init', 'create_custom_post_type');- {" j5 G( ~9 i9 T
```
& Y- a2 Y8 `$ y+ q
) j1 E! K( w: }; @; m" z8 m在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。9 h# I/ n; t, F9 e' F! E' q

5 e+ {/ X. y8 M, P2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
. n# ^( X9 {% \7 I/ A* Z' m  f
. @: ^  o  l' A8 v- p9 _7 j: T3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:& t5 c1 a. r1 ?$ w5 R8 h

9 a* V: n. ]. m4 r. k, Q```
; T- C; V# ~, J: g; G' n$args = array(
: N6 d$ G+ B2 Y# B0 G6 o    'posts_per_page' => 3, // 显示的公告数量6 f8 D* E! V/ b+ s# N( q- j
    'post_type' => 'site-wide-notices', // 公告文章类型
$ @1 R7 N- I2 R! g+ M) g" z    'post_status' => 'publish', // 公告状态
% @5 F1 z5 i' Z3 M$ Q* X; C& \    'order' => 'DESC' // 排序方式
5 l4 J2 J: [6 l/ {* h' j);" a$ S! J- |4 B2 y: _( H* t
5 g3 a) ^1 R7 G( `! [' t( y
$notices = new WP_Query($args);* @- h/ Z8 m, A1 X" S/ l
if ($notices->have_posts()) :9 W) u; h- K+ o) e2 q' G
    while ($notices->have_posts()) : $notices->the_post(); ?>
1 r4 q% {  ~5 u, X( l- b8 o0 T        <div class="notice">
  u: i: x" }$ ^7 h& {, u. z* N4 c4 H            <h3><?php the_title(); ?></h3>
; A: S# c3 b7 ~# N6 n0 _            <div class="notice-content"><?php the_content(); ?></div>3 E6 X5 y, w: j. A
        </div>* p. n4 w5 h" b/ a$ \$ H- e
    <?php endwhile;
1 \3 s  I9 z" @8 }: d4 T" U7 jelse :3 O" s3 o4 C1 `8 K3 s6 N7 j
    echo "暂无公告";5 U2 G/ T2 ?9 m  U  c
endif;
4 t: Y" ^& ~4 C7 w, Owp_reset_query();
& p7 P6 d* w5 B. R; q9 L/ C' }```
# X9 \  @$ a8 R2 _" p3 N9 A: n* }' f: D, c
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。) z2 E  n2 ~2 K6 H% _, }
6 P% n7 B2 ^3 J* ^+ ^
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?$ v; A  r& w% y3 N- s+ D! m" G

$ _$ x$ M5 [' j# i1 \, P4 h如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。: m7 ?3 x. {( K8 Y
0 v+ x0 Z7 O% }( H0 r
以下是创建自定义插件的步骤:
0 d! K% X9 P/ p3 o, l! r% B1 _% v( Q! F# O5 Z* J; k
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
' h! n* r1 h& h/ @3 m" m7 z- Y" Y4 S8 S2 t; E
   ```
9 x  H- L1 [! I* F   <?php
% x3 M9 @/ R% P0 N% b   /*
2 z+ ^; O# U  x/ k) P4 y/ s   Plugin Name: Site Wide Notices Plugin1 X$ p; h8 Q& p3 W8 |" [$ G
   Description: Adds a new custom post type for site-wide notices.
- C0 x' e  F' x; X  n# ^6 T: L   Version: 1.0
( q1 d# b. v& ?   Author: Your Name
" F  V! N' }, A. |6 C( [, q   Author URI: http://example.com; H/ i" X; O. J% a
   */
# w8 T# x( _6 I) K% K" V+ D) }
) ^+ z. _0 b- h4 Q. O' w   // Add plugin code here...! ~8 ?7 \# s. p: G+ w! C
   ```" `/ X9 N" m( [" W

% A' q% u9 o& o& f   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。4 b% X. Z5 T/ y+ y" M2 H% T5 h

' N" |  I( J' l/ W* A2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:3 }7 o0 `; b+ I( s

3 {8 v4 G. B4 x# ~8 O" t- h" s   ```2 t9 r2 _" V) l! C8 U
   add_action('init', 'create_custom_post_type');* y! \* r& ~- Y! ~8 U1 T" m, g
   function create_custom_post_type() {) Y* B5 z8 T  D" I! _7 Y
      $labels = array(6 \1 A" ?: G4 D- }+ }; U* F
          'name' => 'Site Wide Notices',
4 {- D$ \+ H& P7 d4 v# h2 W          'singular_name' => 'Site Wide Notice',/ A, y; @1 L- Y! y& J7 n
          'add_new' => 'Add New',# B1 o$ q# }7 l9 \! |
          'add_new_item' => 'Add New Site Wide Notice',6 ~/ l  x. P/ j% e5 Z5 a! P
          'edit_item' => 'Edit Site Wide Notice',& P  P: p: [* ~4 d* ~9 E
          'new_item' => 'New Site Wide Notice',
6 E7 G% y6 h  ~! J3 O3 Y          'view_item' => 'View Site Wide Notice',0 w7 @& S2 [+ ~2 G) t5 \
          'search_items' => 'Search Site Wide Notices',( m! |4 |2 x" s7 o/ q  g
          'not_found' => 'No site-wide notices found',
3 y( @: W' N8 v          'not_found_in_trash' => 'No site-wide notices found in trash'3 T, e# j" p, ?- h  G+ Y7 @
      );
; J9 R9 T4 n+ ?& N; [6 U8 v" n  k: Z! `2 L6 p) a" \
      $args = array(! D. D9 b; {9 R( p5 {
          'labels' => $labels,3 |+ F; |4 M+ @& w9 `
          'public' => true,: v! H$ ]0 }2 c2 T- h* o$ J9 E
          'has_archive' => true,6 j+ T% y5 ^# S: b) y% w  t; F$ u2 t
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
9 N8 b# k" H# s+ p. p          'taxonomies' => array('category', 'post_tag'),* n  c6 a% p0 r4 E' M# o  S' }
          'menu_icon' => 'dashicons-megaphone',0 H& \7 ]8 @4 A' ?3 x5 c6 E- c9 r6 x
          'menu_position' => 5,; @2 [& l- }% U/ A. ^% I
          'rewrite' => array('slug' => 'site-wide-notices')
$ I% X8 ~! Q5 Y0 g' x      );
6 j  V2 @" }4 U* }' O5 F  ~% Z$ O5 J; k( t8 Q- a, ~* ~1 D, g; t! f
      register_post_type('site-wide-notices', $args);
; B6 W5 j/ t  W+ O+ D2 w   }0 F% S( c$ `/ C. Z) T
   ```
* z1 H) s+ \9 ~$ E: }  E0 H' ]
9 ]+ ~* }" d* t9 x/ S0 @   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
. r% e: C7 q* v4 p
! d+ f1 z% @0 T3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
2 m" e2 \4 n6 A) S+ a7 f6 F6 \8 {( x  u1 C* A# t6 b1 B  n
   ```
1 p* l5 p, `! t+ R2 s- }, E   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');/ E+ G* L. \- Y; W! [( `
   function add_site_wide_notices_boxes() {
0 m" G3 J6 e- O7 C# ^      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
5 [4 h( T  f* ]' a, t   }' b, y$ l" Z* `

/ J* {4 S' ]+ L3 [7 t& _: H   function notice_details_meta_box($post) {* o& G: e1 e' U9 t9 _0 Y, {
      wp_nonce_field(basename(__FILE__), 'notices_nonce');! W8 M" E$ r* O, g3 a; ^1 Q. |
      $notice_title = get_post_meta($post->ID, 'notice_title', true);: B. y3 g1 F( M+ C
      $notice_content = get_post_meta($post->ID, 'notice_content', true);5 Z% c, }( Z. N  B5 G
      ?>
, F% r4 `- E' O$ d3 p4 U, @$ N6 X      <p>( V2 t& o! b, Y! ^
          <label for="notice-title">Notice Title</label><br>4 Q& H9 r% `! G+ d% a2 b# k
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
$ O; E& s+ e" _      </p>
% ?0 S! B) Y6 S2 |% {8 y! }, D! h      <p>: H" K' `" F1 }* v
          <label for="notice-content">Notice Content</label><br>" W. B( C+ H' Q8 o1 N1 ~
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>0 k' @7 Q  u; N/ y- n
      </p>
) k! V& E: g1 R      <?php; P' n0 @* ], T! n. L
   }
5 ^2 B0 p2 j5 D5 S1 m6 f; `3 D. F8 o% Y. N* v# x7 p
   add_action('save_post', 'save_site_wide_notice_meta_box');4 P, V0 O8 m3 j' t1 @
   function save_site_wide_notice_meta_box($post_id) {
, k3 Z- j; Q0 I) ?! m      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
# w& j" \- l) m; T3 D% S         return;9 a' m* y* V  S5 _& ~3 t
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
0 X* W3 G& d/ c$ ~! h         return;
! @+ m; n/ ]' g/ _" X$ n/ j4 _, X, E1 J# k' a# r4 X6 ?8 r
      if (isset($_POST['notice_title'])) {2 h; |8 J5 z8 |6 N% R4 i$ `
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
2 {; f% p2 L1 M3 }- s" a      }
( e8 S  e! ?( N. _9 M1 y      if (isset($_POST['notice_content'])) {
# `! }* O2 U& v4 h          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
& N( h% f1 \) X; e+ o      }
8 r/ q: M/ @4 O   }' ~0 K' a; F) X! A7 F
   ```# Q$ h, _8 e0 a9 g: @3 w: n
2 ^9 J; L/ Z+ G7 d8 B- K* I# l
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。0 e) ^2 d- A- f5 M
7 F- M; f% {+ U
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:1 \( q( p( @7 ^8 [

. @; g6 H9 Y- n- ]( c. x   ```
7 D% b' p% a4 X# n& j) ?4 q   $args = array(! v0 e4 I! U3 e3 u# Z4 _8 ?0 d, w
      'post_type' => 'site-wide-notices',8 D6 v$ G" R- }, s( I) w- H# b1 N( C
      'posts_per_page' => 3,$ k# ]! [6 p& n) N
      'order' => 'DESC',
7 h0 C" w6 m' S: a! Z0 U      'orderby' => 'date'8 {7 T6 G+ N. u
   );
( u$ l+ Q# q6 ~" l) x   $query = new WP_Query($args);; V) W) q9 E3 R! y+ L+ j
   if ($query->have_posts()) :; s! h/ I3 e" q1 A. }
      while ($query->have_posts()) : $query->the_post(); ?>" t% m: Z8 o2 Y3 m
          <div class="notice"># N) c" q  K4 g  P8 |6 m! [% X
              <h3><?php the_title(); ?></h3>
% v) X  A+ M/ S2 H/ A# O4 A              <div class="notice-content"><?php the_content(); ?></div>8 M) f4 c, j& z+ |( S7 D7 i' R
          </div>! @% y0 f. t5 R
      <?php endwhile;
1 q1 ?% J7 f$ l, x; B      wp_reset_postdata();) L6 f! o3 w- T% S6 O
   endif;+ Z; r7 |" E$ u
   ```
9 S5 z. M  R! w) b
* N7 E- l. e! K9 o2 K/ a   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-24 12:27 , Processed in 0.022426 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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