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

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

[复制链接]

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:( b4 ?0 b7 T7 L; s
! ]0 x+ R6 |' I& P* a
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。" c# ^% X3 p0 T( o  ]/ Q# w

. [! K6 r  N9 ]! w2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
6 {3 ]: I' K$ _1 Q1 h0 K0 R
3 N8 H0 [# r0 M' V6 s( Z2 D3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。9 E, \9 N  r4 G# O" a7 {# y) k. u

7 M0 P" m1 w1 o5 f/ q4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
; o, O; z* q) S; \. N0 b* t& l6 L0 ]- t& z# }* S; j4 G
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
; K7 W" S  x! n+ Q0 O( U
8 L$ J; z3 y" e. x0 s8 g% T/ S: ?# `如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:  P3 b) z  J. `" s/ _& \

9 o& n  f: S0 P+ ?; W1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
" n3 b# |5 \; }4 Z- q% J( ?6 U1 `& J: F5 q* i/ b: N. p/ F
   ```/ P2 X4 J$ y  a, ?
   add_menu_page(
1 T& \+ B  r# j. L( U       '全站公告',+ N( K+ `/ F5 I4 c
       '全站公告',
* e  u6 C- d' i6 d# H       'manage_options', //需要的用户权限$ G# i9 ~& U1 ]
       'site-wide-notice', //后台页面的 slug3 t$ x! N2 t7 p) H$ D3 {) w- q
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
2 F: H; k2 r  F  k       'dashicons-megaphone', //用于显示在菜单中的图标( o7 m; L# L, w. ]( v
       30 //菜单项的位置
9 z8 U$ x3 h" K( X) f$ }6 O   );4 e# L7 A6 h8 {
   ```
5 Y# z+ B2 I8 \. y' f5 k" O
4 a' f4 F9 N8 P9 \  |) j" J2 g5 P  b   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。/ U' H8 O7 ^. o( c) I) M

4 |* J- q9 f2 r3 \* h& b2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
0 i/ p0 ^0 y) Q6 ^: P6 a/ o+ {5 L* ?0 A8 S; A- [$ t8 h( v
   ```
0 I2 _* o) E3 i2 i   function render_site_wide_notice_page() {
" v6 c/ U  Q: L7 L      // 渲染后台页面内容
& {; C2 W- n2 R0 r9 u7 i      echo '<div class="wrap">
0 r9 p: G9 z3 t) s0 M          <h2>全站公告</h2>
4 ~3 P$ _2 z; _! q" V! G          <form method="post" action="">
+ T. x# N1 j7 P- [3 I              <label for="title">公告标题:</label>
" a' l/ g* I/ m) P1 h6 _$ q              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>8 H' e. @8 ?6 f1 x5 f& {9 H) Y2 a& x
              <label for="content">公告内容:</label>
4 |" c9 s+ {& o8 \) M: S              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
! v% S6 e8 F( ]              <input type="submit" name="submit" value="保存设置">
* u4 B, Y7 m8 c( T0 U" x          </form>9 y/ g) H' D1 ]3 c8 G% _0 @8 i, m
      </div>';% F8 r" M9 w% m. ]% R& _/ l
: d$ K$ ^& X* |! v
      // 处理表单数据3 {& c5 g. a7 ]4 _. c- a" o0 U! `
      if (isset($_POST['submit'])) {$ T2 ^- _8 t  d( e; ?! u& W
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));" _( U8 }( t9 V* T, Q- j
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));7 L( v) v; \4 J# `  |# f5 Q
      }1 \* `1 q, ^& I: N3 L5 q: F8 U
   }% D( U4 [2 M: \5 N
   ```
8 E1 T  M+ n5 N. ~: y9 x* _6 b* l. q' ]+ Z7 O6 D: B: _
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
& R; l- o* ^" u* I5 v' E/ t" [4 H# |' j2 B' ^, l
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:& j% K0 H/ T7 _" ^: U
  {5 ^% e( D2 l$ R
   ```1 f1 B$ B: D4 H  X, @/ \
   <?php( W& K; L8 i2 N0 F
   $site_wide_notice_title = get_option('site_wide_notice_title');, G) z5 @3 d$ o/ d3 T; Q
   $site_wide_notice_content = get_option('site_wide_notice_content');& a7 K# J) M' X: [' d9 E
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
% @) i* U2 u" J. d& J' ]       echo '<div class="site-wide-notice">';$ n7 ^. o. @, p& V3 @
       if (!empty($site_wide_notice_title)) {
" u" a2 ^' v; t: q  u7 [. n4 D2 Z           echo '<h3>'.$site_wide_notice_title.'</h3>';* m$ }, b) s1 n+ j
       }4 o" Y  g6 k# g7 |
       if (!empty($site_wide_notice_content)) {
# Z% y; u0 \( Y; I/ O$ Q" }' M           echo '<p>'.$site_wide_notice_content.'</p>';
7 q$ n# a/ E3 k1 j5 V/ k" ?6 A       }' C! `  b4 I$ h9 ^! S1 p
       echo '</div>';
4 |9 N4 r$ g: g  w8 q. t   }
  z9 W( J7 n! @! W$ _! a   ?>
  |& \; u  Y  Z. @   ```. j. d; \8 Q' i& k* J- E- e9 Z

+ J4 @$ e/ _2 {  W: k   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
! N# V% J$ R, A- ^! {1 d! B1 o) I- S7 H9 I& v
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?6 o2 h+ X4 i1 A9 K% D6 \* M# Z

" o3 N0 W; |& q% P2 A  P) B您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:7 Q* L- g2 ?8 a& u0 O

  H  A3 `7 ]/ D5 C1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
' v3 S5 [/ [7 v6 F: J3 P4 e
/ y2 T  [# P/ r  a3 |, m```# E! G$ t( q  K$ _  N7 ?
function create_custom_post_type() {0 t3 J; C- W. k) k
    $args = array(# {- t: n6 e& w5 Q# t% Q6 [+ G4 s
        'labels' => array(! |9 w8 f) E5 r+ C, ?7 l8 e
            'name' => '公告',
8 Z. L! ?& T; H* u            'singular_name' => '公告'0 n6 j  x! E6 Z/ U; F& S* ^0 P
        ),
: C) A/ @( e  P- s' E! ?4 z        'public' => true,; X, ?5 I; w5 g2 g
        'has_archive' => true,* ?; b. H# c* n% }3 f2 p6 d. {
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
% D2 s6 r/ Z# N. @9 a& r        'taxonomies' => array('category', 'post_tag'),! E7 j# k2 X8 m; S& C0 n
        'menu_icon' => 'dashicons-megaphone',
$ m9 g! y+ i' d4 T0 ?        'menu_position' => 5,
" V! U0 f0 J  I, d" o# k        'rewrite' => array('slug' => 'site-wide-notices')3 Y, O; o! K9 G; J
    );
1 Z# H0 J  g) H    register_post_type('site-wide-notices', $args);  J- O* E0 k; I. U5 S1 t8 ]
}
$ ?  U6 y) ^, c' _' badd_action('init', 'create_custom_post_type');+ A' B3 U7 t: M) a7 w# u: W
```
' o. N' g1 k' }# o* p! N
. ]8 A. Y! C* @  Q在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。- L0 t, M  v2 d+ m
% Y7 Y6 w2 t6 \, J! T7 q
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
3 s) w' E2 g& ~% J
- t" L% X" b9 \3 ?; d5 j: Q3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
! o2 D5 n8 Z9 C; G2 z' L6 P# }! U0 |2 x; ]
```% d& t$ \3 H  \! T! Q; V- a
$args = array(' }8 u2 Y$ p7 V. {/ X1 h
    'posts_per_page' => 3, // 显示的公告数量
+ Y5 N- v# }0 C; T9 k    'post_type' => 'site-wide-notices', // 公告文章类型
6 }4 F3 d3 V  L/ S6 z    'post_status' => 'publish', // 公告状态
$ ~" x1 f9 k9 @( U+ c6 m" k" N, }    'order' => 'DESC' // 排序方式
2 }6 @/ D+ b; s8 }7 D);
! @$ H4 C; b2 y$ i9 H& E
. b  q: m. T4 }( b# w9 e$notices = new WP_Query($args);
, e) ^9 R; e" ]4 x+ }# M5 k5 O- Dif ($notices->have_posts()) :
8 u4 L. n# p% |5 O6 L* I' [, }    while ($notices->have_posts()) : $notices->the_post(); ?>4 T7 F8 [8 m9 s0 o$ Z7 C3 O$ W
        <div class="notice">
# d3 W9 j  n& P3 f3 @, r6 a            <h3><?php the_title(); ?></h3>
5 I% ~( z% c' }5 W! D3 }            <div class="notice-content"><?php the_content(); ?></div>) A1 x( ^* H) R2 t4 [
        </div>1 ^( ?. X6 `& G/ s4 E" `
    <?php endwhile;
2 }6 h5 g% Z' G2 eelse :5 a* A/ E: N4 z( h7 h  p. Z5 `% v; t
    echo "暂无公告";, c$ h3 N! R" m
endif;. g& r- {. f. a8 g4 L& r# G
wp_reset_query();
! O$ X4 |1 ]4 n0 d```
; A) n, F6 G, k# {9 m+ s+ X2 O1 S1 ^+ m4 l6 Q5 Y+ x4 y" U
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。! G  w* z5 S, ~+ ?; B% J- _8 n
; d9 u0 q0 M/ ^" ]- Y1 }1 K* i
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?- ^3 k& s/ S+ T  i, [8 p- L
9 l1 U! I; z% V
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。: ?9 G% a" N( U7 r6 T# c  Y  H

: ?% K' Y. w# W& ^) L以下是创建自定义插件的步骤:
2 l# F, n; N! |/ W
/ G' P" \* d2 a6 @% Y# Z: K  |1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:, [% U1 f, @6 Z. X; ]  N; i5 C8 M

( o& d) `. d: B8 _6 L   ```
' c! N) R% u4 T+ C   <?php& a) I+ s( C% h( m, x3 u/ {! H' [
   /*
" t- ?% n$ x) ^3 n7 {   Plugin Name: Site Wide Notices Plugin
5 J$ `0 ^8 R" ^5 E9 Z   Description: Adds a new custom post type for site-wide notices.
# u2 _4 _. }8 O' O( i& g) W   Version: 1.0+ }) M* r9 B! g
   Author: Your Name  P3 G3 f; ~1 `: P. w
   Author URI: http://example.com
4 X1 C7 T4 _0 ^& `+ _  N   */' S9 O- C" |7 }- ~9 K4 B
% J/ [  L6 ^+ ?1 E& @" ~, G9 l; x
   // Add plugin code here...
' I+ o2 i5 @- M' q2 h2 q  B0 r   ```
+ o2 J( O. R, i. U
& I2 q( G- E. P: H+ M& |   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
2 i4 n. h: U% f# m& b$ d# ^# U3 t$ g: l1 l' n
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
7 s! X2 Q1 a- [$ [8 ^* D3 t% M+ y. {
   ```
4 {% u' m! F' T6 V5 K8 B' q   add_action('init', 'create_custom_post_type');
+ u( Z# b6 ]/ G8 R9 O# r   function create_custom_post_type() {. \0 H+ ?/ m) N& ~: b2 h3 M$ g, i+ y
      $labels = array(" _  C" ]* ]5 w" l1 ^
          'name' => 'Site Wide Notices',
2 P0 a" i- X* l) d: @          'singular_name' => 'Site Wide Notice',
6 S4 y& S6 v0 j# K( k& H# `4 z! s          'add_new' => 'Add New',
9 N! x; a4 W9 }% j1 v9 e          'add_new_item' => 'Add New Site Wide Notice',1 _* L( U3 x  w( U; f
          'edit_item' => 'Edit Site Wide Notice',6 m& U4 d: M  u# P9 \+ @2 X
          'new_item' => 'New Site Wide Notice',
* `8 d! D( |) F: S- l          'view_item' => 'View Site Wide Notice',; q0 b1 T  T9 q+ R$ b+ l7 _9 R
          'search_items' => 'Search Site Wide Notices',
2 L3 m$ O' [5 I! i4 S          'not_found' => 'No site-wide notices found',
% ?) V* x4 `2 g& ?7 s. I% w          'not_found_in_trash' => 'No site-wide notices found in trash'
4 t" V  B+ w7 W  K      );
- s2 J6 K) P' |2 @. U7 N2 ^; |
# d. n9 X# Y- }      $args = array(; `7 p; V* t8 N9 d
          'labels' => $labels,3 r% l! t9 q' z  O6 }
          'public' => true,
8 I. E! ], E3 |6 w          'has_archive' => true,6 e0 y6 z5 l' p' T# X5 Z
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
) ]4 S0 ?9 s8 Q6 r          'taxonomies' => array('category', 'post_tag'),
/ v- ^3 ]- T; M3 k          'menu_icon' => 'dashicons-megaphone'," T' s8 m& H% f% \# V9 e6 y' r
          'menu_position' => 5,
* o: ]0 e4 U0 c          'rewrite' => array('slug' => 'site-wide-notices')
2 C/ L. h: |; L8 p" K" ^# n      );# D' Z) D" O. C1 `  @

" p  K0 X' N1 |+ A% Y      register_post_type('site-wide-notices', $args);
0 u/ m6 [! F. x  [" o5 o; Y   }# x* J* G% M6 }7 v0 q' h% l* C
   ```
+ Z4 G0 i& I% M2 a$ T# P( f# y+ I# J: Z- @9 k1 ], K
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。9 t* l1 i: f- O
( m9 q3 [: x$ {: ?7 c9 j9 s
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:0 D1 ?% t2 ^% r8 N9 j: y' I! _
$ B: w9 e3 q3 ~. F0 I3 N
   ```& e9 s; n1 r* w9 H& n1 \8 \" v
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');( H2 r8 b- B. O1 }# C) o2 l
   function add_site_wide_notices_boxes() {) t9 {6 \# M5 n* i6 t* h- k& K3 G
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
: d1 m) J. ]5 r* L# u   }/ J. b* u3 o4 X: l  q
# |5 d9 @! K0 E/ x3 j
   function notice_details_meta_box($post) {$ O/ `4 }6 r5 Z7 n* q
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
8 @; c2 T3 b, d; b- o1 I      $notice_title = get_post_meta($post->ID, 'notice_title', true);7 f( X: e2 {7 P
      $notice_content = get_post_meta($post->ID, 'notice_content', true);0 l9 Q. R+ h: W$ M
      ?>
8 N0 y( A6 x2 ~1 z      <p>
2 j+ u% p+ ^2 X5 u" \- [6 t          <label for="notice-title">Notice Title</label><br>
2 A9 W( g! _! S# J. a          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
: m3 x0 h# A& Y; ~6 y+ [      </p>% {) u7 d- u8 _2 `9 W" \9 |7 W
      <p>9 ?: H4 C# m. Y/ _4 {; j& [- _! g
          <label for="notice-content">Notice Content</label><br>5 T( v, f, a0 r0 N1 {
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
9 R* `+ P4 j& l+ \9 @1 G      </p>5 g. z6 L4 j7 |/ F! z) n/ n
      <?php( ?* E/ @: \+ e, }; B
   }  ?% m# x6 ]3 C# b: a

- \7 C+ l& y" }7 Q( X4 k   add_action('save_post', 'save_site_wide_notice_meta_box');& h) X/ N" B9 J
   function save_site_wide_notice_meta_box($post_id) {1 Q3 |6 j; b& C+ G
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))- a( }! S# Z. @# _5 V' w7 \, u
         return;* H/ V. @: m5 G! [: l& R! v
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
6 C( U$ A2 X- F         return;1 K( W: \* R8 g0 k/ x  o4 }

1 w6 Y; O* x* M0 B2 p      if (isset($_POST['notice_title'])) {
& _  a/ N2 F9 s8 h) C& X% E$ A          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));( p7 ~# A3 `! B$ X7 G. }" p$ s  a
      }
6 _( u1 M8 }& k  T! L      if (isset($_POST['notice_content'])) {+ i1 U4 q% _6 u: j/ V
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));, O- Z8 ]: Q) x$ i
      }1 H( l5 o" U% B  q: G$ w, W
   }
+ v4 k" G8 Z$ }; k) K' {, \) L   ```. _# q% E  z" h
8 r7 p2 R5 Q  r( f9 R9 `
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。2 ~6 I; A6 z" v

  J1 O# q' n1 R1 N4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:+ p9 w- {- t0 d, W% O, }! N
+ h! }8 U( a! S' j: C7 r* ?
   ```
7 P9 p0 N; Q) u" \4 r2 d) [3 ]  w; i   $args = array(
5 u7 O! e6 e; C5 x      'post_type' => 'site-wide-notices',9 F* V& M. w& x$ Z
      'posts_per_page' => 3,
/ @. i9 f- T' \% Y9 U& D7 H6 Q      'order' => 'DESC',6 F! V9 ^: `. ~5 V% A
      'orderby' => 'date'
- A! F1 R" H  ^4 ~  ?$ Q& |% J   );
& e2 R. q: Q6 V: I! A+ V4 r: L: _  Z   $query = new WP_Query($args);0 p: [' n4 R7 y" I- Y* ]0 B6 A7 u
   if ($query->have_posts()) :
3 V2 D! L) T0 e- @      while ($query->have_posts()) : $query->the_post(); ?>3 O1 B4 a3 G) G+ `3 N8 Q  K
          <div class="notice">
; }, U6 _) g( s' O              <h3><?php the_title(); ?></h3>
/ \: R, V, e; d7 V1 c% [              <div class="notice-content"><?php the_content(); ?></div>( i" Q- Y% F& [5 p/ N5 t* I) o
          </div>
3 ~! B4 i3 o" C  h      <?php endwhile;: G% s( A1 E& s# j  J
      wp_reset_postdata();
$ M8 C1 |, |" _   endif;
6 @% V5 H% c8 _5 p. {   ```
3 A+ {; C: M7 K- n& A3 a) z' R1 n- w7 [! ]* h; r( _6 ?7 ~# E* d
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-23 08:12 , Processed in 0.013386 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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