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

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

[复制链接]

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
. l/ N- x$ }$ X2 I! R! ]/ s9 v5 }7 }2 o/ t* A1 F
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
8 h; X/ R, s7 b& l% q  `% X* d# _; ^7 |5 D9 |* Q$ T
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。! r# `" U+ e& k; S; L' a; e# \
' b1 R( p& n! L3 A8 S/ V
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
1 y7 ^3 \9 |; i! k/ C8 [$ t2 P" ?8 [; Z& {; Y; b
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
, n4 l# W8 ^: ^; D' Y  K1 p
' T3 r( {  O6 ?7 H6 z" Y: X) S注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?& n! h9 i0 F: R# @8 k* K! V& G. i

9 ]4 ?% C9 k2 l8 n: |5 X/ |2 y如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:4 Q! A/ U* n1 z! c' U! ?. q- Y% e+ f: q

) b: F& m% \" i* l+ W1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:! s7 w6 Y$ `+ _: l' U% U, z3 h) ?
4 G7 R% @( j$ W; l
   ```
1 j7 Z0 W& t5 E9 q   add_menu_page(
0 }2 t; z1 Y# s3 B4 Q3 U       '全站公告',9 `; ]9 j% K) }: \6 D6 K9 h
       '全站公告',( c" x5 p+ G+ I# X, Z
       'manage_options', //需要的用户权限1 H2 t) Z* X1 Z" }
       'site-wide-notice', //后台页面的 slug
. j/ A) C" y: z; T2 E& _  _" t       'render_site_wide_notice_page', //用于渲染后台页面内容的函数3 H1 k0 K& p% a; t) c6 o
       'dashicons-megaphone', //用于显示在菜单中的图标2 o2 m. G* |' T9 N
       30 //菜单项的位置
( X% O5 u: [: \) G" R   );
: C4 E( Y& A3 D1 y  q   ```% u" r4 p6 r9 C) y

6 _: F9 D( D  V* i! ]   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
) v( \8 ^3 {9 c0 s
- o0 Y; h% z6 e2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
+ s9 J# |7 Y; B# w/ M( y
# b) E6 E5 b% b3 R0 B& |" y- ~   ```; H* {  k2 o9 J  z5 l! J" y
   function render_site_wide_notice_page() {' F' c  B# G3 }, Y# F
      // 渲染后台页面内容
: J8 o# [2 t, z. I      echo '<div class="wrap">
+ u5 o4 f4 g: F, F8 ?7 X          <h2>全站公告</h2>
5 d% K/ M' B4 k& g( J8 \% ?7 O          <form method="post" action="">) l, ?. A3 t5 {# n6 n
              <label for="title">公告标题:</label>+ e# m: a( s4 ~
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
3 p- a8 i; F3 E( B6 l! X              <label for="content">公告内容:</label>
+ s8 Y$ I8 ~2 a1 n6 Q" Y              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
$ M) s8 V6 {# u* G! Y              <input type="submit" name="submit" value="保存设置">; K" b& g5 O2 N( `" Y2 b+ g
          </form>
/ B+ K& b# H, d. k; A  W      </div>';
) V: }% {) }  X0 \2 Q3 g
) d4 S8 W1 [2 D+ M0 S' u, W. B, e      // 处理表单数据2 m8 h8 m8 I4 g: k0 G4 o
      if (isset($_POST['submit'])) {$ s3 G! E# l3 V! d0 {& L
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));" x* }. u% V5 H1 S
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));& e) r% L8 L7 W$ v% d# F
      }
; q' Q' l! j- ^/ B8 a2 E   }3 m0 n$ m) v1 h1 k8 b
   ```. u- H4 f/ d& D2 h. E
1 C5 c3 D( x( [  n& N; Q: a5 }, S( D
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。: z# @$ m& _: @1 b9 ^5 n+ W

3 j% v, ]) O7 o, h% C' E. o8 B3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
# T, B8 g4 @: Z& |+ C3 e7 g/ b  Q+ s5 r! x8 S3 o0 G
   ```
3 h2 U5 a" Q/ N& @- @5 R/ o- |4 n   <?php( {7 ^8 @. ]& t: F9 J
   $site_wide_notice_title = get_option('site_wide_notice_title');
1 A! G* c+ V9 a; U) P: ~   $site_wide_notice_content = get_option('site_wide_notice_content');: l# X! x+ y8 q1 h# x2 T+ E7 l
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
5 N. c8 U( {) j/ b       echo '<div class="site-wide-notice">';
0 u; f8 L) z  |* G' V- q       if (!empty($site_wide_notice_title)) {" }0 S2 L/ J9 X: t9 C' I- X
           echo '<h3>'.$site_wide_notice_title.'</h3>';- I- f* Z( Z: S8 n3 Z2 p
       }- k/ ~6 |7 p' H6 P
       if (!empty($site_wide_notice_content)) {
% f( d+ w9 Y& s           echo '<p>'.$site_wide_notice_content.'</p>';
5 g* |. `9 x  N6 `/ l% y% p       }6 g! z6 `( I: z
       echo '</div>';
' ^. l9 p  {* V" L   }
8 D0 u' F4 x  c$ }1 [   ?>& E! c7 U' l% B3 C+ P/ K9 d
   ```
: {& c- W9 U* f* u2 n1 W5 Z! ^# ~* G  I: Y5 I; r
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。3 h% U. O' Z( M) v/ E) y$ w

% ^8 c- @9 H5 ^请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
) d- E- h/ y% c% l  E' ~
. l( h+ j2 A- S5 G+ X. n# k, G8 j您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
' O, Q; K  T" Z* C% f& b
: q2 L; K) y9 p: H* v; {1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
2 F" A3 b+ s6 U* s1 d0 ^7 w1 R
0 p3 j# `1 T% \6 ~& p```% w* u! `' M" Q: P7 _7 S
function create_custom_post_type() {
' _  O3 {4 [. W7 E; l    $args = array(
- u: R0 }# P  b5 x        'labels' => array(
6 h6 `, p& Z* P9 I0 {& a            'name' => '公告',/ q1 r3 i& E( u. p9 \# n# }
            'singular_name' => '公告'' Z: W+ x. q- u+ }7 z( i$ x
        ),. a# T: U, U4 C- E
        'public' => true,& X  S5 N3 U. w1 k4 q
        'has_archive' => true,
* v: O" L6 K. o        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),6 c. M& p" B9 F* Y8 B4 J
        'taxonomies' => array('category', 'post_tag'),4 E6 g' s" O$ z0 m6 ^
        'menu_icon' => 'dashicons-megaphone',0 h$ X$ h+ p% _; `, `
        'menu_position' => 5,6 W. h7 ?" a, Z7 t& L: K' m
        'rewrite' => array('slug' => 'site-wide-notices'), ^" D7 o' d4 l9 H: \% T: x
    );
. w5 c: T; G0 @1 C6 @$ h2 _1 Q    register_post_type('site-wide-notices', $args);
+ X% O4 q( _, m" O}  ~1 F* _; z! d7 x1 ^& n! t6 E
add_action('init', 'create_custom_post_type');
' b: q8 t( B3 k```/ \* z+ f$ A# Z. ~* F+ @3 r4 @( m
: W, \; P+ |& F# _2 h
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。$ E8 P# O6 i" q9 d9 `0 S! _; l* M
/ M2 Q1 u0 Z7 c; k# I
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
/ _! N  j: b4 }( @2 j  h$ A- [. \+ Q9 I# o- x, Z
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
. u5 F0 C& H2 }3 f; V  f
0 k2 `8 W% [' ]! M- g/ i```
# ^: y2 \! t8 R  e1 j# x( J$args = array(
" l+ I# \; `0 v# F    'posts_per_page' => 3, // 显示的公告数量' D. F" E8 Y5 ?' \
    'post_type' => 'site-wide-notices', // 公告文章类型
4 Q% ^  ~2 a2 ]. u( }0 Y1 c    'post_status' => 'publish', // 公告状态
1 o; }/ y4 L) u" d( z( b" ?    'order' => 'DESC' // 排序方式
. l7 }% z4 \' o4 @);# y1 C  m+ K, X, G- \

; }& P5 q5 J* L/ b6 E5 H$ l( t* c$notices = new WP_Query($args);
: b% `5 P  H- ?! f8 Xif ($notices->have_posts()) :
. }& N9 J9 y  C# P: h! K' N    while ($notices->have_posts()) : $notices->the_post(); ?># Q% I- c4 x; s
        <div class="notice">
" _0 A& }5 ?' h# i2 ~            <h3><?php the_title(); ?></h3>, O0 @9 Q6 L, {6 e' @$ ~4 V3 q
            <div class="notice-content"><?php the_content(); ?></div>
( X4 w, L5 l) _+ b7 c) z: ?& ^1 l        </div>$ V. `5 w+ L. Y4 w! y# T
    <?php endwhile;
; A# A; j0 y/ n5 N- h4 d4 aelse :6 ?3 W( y, r7 G: q3 k# h2 o
    echo "暂无公告";7 u* k6 q8 o9 E4 b5 B  r+ o& O
endif;' A3 T3 \) u+ N" V! X" K7 A
wp_reset_query();
4 l0 g1 O, j2 N" c```. z/ k/ r7 ?0 P" ~/ U  ~
% Z2 ^% ^' ^1 G% E9 [) e
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
. k/ Z( O( i! M" P# P* X
1 m. j3 ]$ p: c' j* }- u以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

341

主题

541

回帖

3571

积分

管理员

积分
3571
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
2 r0 i( b. D4 w; U" e3 f) z1 f8 Q2 Y* H( P% X  H+ s
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。+ h. K/ Z- V  j4 h5 @) `
$ A( }5 S: _. X$ `
以下是创建自定义插件的步骤:
; {- I( ~& }: p& U- M& J; ~9 I5 S3 b' x( o% L
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
. ~1 e: e. b/ f+ |' z' a4 ~
. U5 M# M2 k' l6 P& o+ S- ^   ```
, y1 p$ |' R" _1 h) o   <?php
' u/ [. r8 n: a$ A, L( Q! h& P& M   /*
' E5 S- y! {1 r4 \5 G   Plugin Name: Site Wide Notices Plugin1 T1 s# T! F8 D$ f
   Description: Adds a new custom post type for site-wide notices.
4 G( V  H; p$ T3 \   Version: 1.0
# L6 J! _9 ?$ Q6 i9 s   Author: Your Name
: ~+ ]) e3 _8 o+ e/ m   Author URI: http://example.com
/ k9 P1 F, |" g. Q: a   */
- M- m1 E' z" J) F1 f; c8 K. h0 Y1 s$ G! ?
   // Add plugin code here...
2 f1 H* L% z6 B0 v5 v$ M   ```  E  p( i' C+ F1 R. r* t# o

5 d6 C) d* R2 m  s   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
& R' r, |  D+ k) l7 W! k8 A  E! E. e3 o7 c1 q  V& L/ M
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
  K* m* P* G- N7 k% j& D+ I* v  q2 O
7 b1 _7 ~, n1 Q* X4 O3 V   ```
' a( F/ O" }- W3 c8 @) K3 T) o   add_action('init', 'create_custom_post_type');
' i) N( A0 y* A. U2 G* b   function create_custom_post_type() {
5 R5 G% M4 p. M4 O, e; M      $labels = array(
0 d: y4 Z2 E! V# U9 R/ Y! A          'name' => 'Site Wide Notices',% b5 s3 F: E+ ^  T( N+ G/ C9 _
          'singular_name' => 'Site Wide Notice',7 a4 M  K1 o+ K% m
          'add_new' => 'Add New',
6 j) U% {" P3 c+ P          'add_new_item' => 'Add New Site Wide Notice',
) r7 \5 \& [- d' u8 g: N5 h          'edit_item' => 'Edit Site Wide Notice',
- h: u# u. v( t5 w* x3 L          'new_item' => 'New Site Wide Notice',
! q4 j5 r/ v6 S( d          'view_item' => 'View Site Wide Notice',
! k$ I4 Z# \1 C! t# G          'search_items' => 'Search Site Wide Notices',
6 f8 t% R( t1 ^: y; N* {! t          'not_found' => 'No site-wide notices found',- |- I4 W) k! y5 l9 m: w
          'not_found_in_trash' => 'No site-wide notices found in trash', Y* Y; s0 F6 U2 p$ w$ f1 [
      );" O- ?( N5 N# F7 [, P2 }
  t* b: s% X) }; m% o1 V: [3 L
      $args = array(* U1 s8 G, W5 x; u$ [
          'labels' => $labels,
1 v4 K& N  q  K: Z4 h: o4 a          'public' => true,# G/ [  F5 ]! o1 a8 E) R' T
          'has_archive' => true,+ _& M4 h9 X, [% H4 [6 U+ g5 K
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),/ z# V" R# {# x- _7 x2 g
          'taxonomies' => array('category', 'post_tag'),
4 O4 W5 _# c* {+ j2 \, A- B          'menu_icon' => 'dashicons-megaphone',
- x0 @- v& W/ V  n; c          'menu_position' => 5,
1 j* c0 ~" y2 T0 M) A: m# A          'rewrite' => array('slug' => 'site-wide-notices')/ w6 e8 A2 F+ N3 a
      );( d: V( i: x+ S% Z' X

" [" y& j$ f4 C- M& q# R      register_post_type('site-wide-notices', $args);+ [4 U& t) R& b' Y' ]: I0 I* ^
   }* h9 {3 D/ t2 A- L) U- n
   ```: k# P" j9 ]7 d# X+ J7 V
8 F4 O0 f6 u! [7 Z# e% R5 t3 M/ v
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
& [5 t+ o2 t- a1 @/ T0 Q: V( |6 u2 v. N
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
/ i) z6 ~4 j) g+ s+ u- i# X! ?
3 N# h1 D! r/ P8 w) A. T- m2 U   ```! [7 |9 X1 I( Y! M# c
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');8 g" k( |- Y9 b3 M- G* P  j9 V
   function add_site_wide_notices_boxes() {  `: Y' r, \5 O( X, z
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');9 e  b$ h+ s3 j, m
   }# Z; V) S$ W# O# S

2 C' S( {: M$ ^1 b' x5 m; E   function notice_details_meta_box($post) {5 {( Y8 f$ m# a$ ~9 b
      wp_nonce_field(basename(__FILE__), 'notices_nonce');. U6 G+ _, R. N) Q5 `
      $notice_title = get_post_meta($post->ID, 'notice_title', true);, z! G; ~% G  d8 q% P( z' a! c
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
! R9 i) k. f- p1 C      ?>
& e5 M$ ]! x  P6 W/ J      <p>0 g  }* G. e% ^, k/ l4 ^( ]
          <label for="notice-title">Notice Title</label><br>
" f' G$ r1 l9 R8 g" A. T, a          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
8 W9 o2 d0 n0 r: }' M$ r1 ~      </p>
, P" C+ m1 b! P! {1 j, {      <p>; l: B# ~  S2 G0 A
          <label for="notice-content">Notice Content</label><br>7 q# D3 i  R' x* n# u
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
8 x0 k% o& O! X+ y: I& ]3 b; d8 j      </p>- F$ k* Y- |- U* h
      <?php
$ t7 y5 Z; B, V1 |4 j   }- \1 F' n: W+ P* K# {
  _; `5 b! A* T4 z; ?
   add_action('save_post', 'save_site_wide_notice_meta_box');
$ v5 F/ c8 d8 B9 M  H   function save_site_wide_notice_meta_box($post_id) {) Q# u" w/ e& k
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
% }3 l) J+ o3 w; n, k         return;+ w8 E+ J# n3 Q4 ~; P
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE), @+ T9 m5 D( u7 o* p/ u- d
         return;) Q5 m. q* Y) S( N' ]
/ u, {$ ]5 O6 d( G# [
      if (isset($_POST['notice_title'])) {. X. f; t8 L0 \* V6 L6 O6 F
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));( n/ M' F) J% ^  ?% }( c  `
      }! M. r! w: S1 B  E4 b$ |9 c
      if (isset($_POST['notice_content'])) {& ]8 L6 E! t: ?$ x% Y
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
2 u' ?4 w! B4 W  s6 j" L" c* U      }+ K/ G7 X0 F* C! [6 x' M6 ]
   }3 K. o6 c; y7 \3 D
   ```% m6 g6 i' K7 u
, B/ H% Z, r* f7 A- \  a8 N
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。3 k+ l- P3 J  r3 Y
  X2 Y* S4 k6 {4 g: z/ e% o4 h  n4 J
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
, J# e! F. W" x+ L2 G" d( S) b% `/ \2 {
   ```: u4 P9 U8 T7 Y/ T
   $args = array(% f5 g) ~8 o4 j) T) T; @
      'post_type' => 'site-wide-notices',
, ~: \9 w' n/ ^8 y7 Y4 o" E      'posts_per_page' => 3,4 H) I$ e% o& A4 U% O* d9 U) h* Q  G
      'order' => 'DESC',' c: Y2 L$ N* ?3 d6 ~1 U5 D
      'orderby' => 'date'
! ?/ l; J1 @; O) ~2 y/ I9 {   );, s2 P/ J! v+ W) ^4 y
   $query = new WP_Query($args);9 A1 L. ]2 \0 U. M  I# `1 F
   if ($query->have_posts()) :
% P: N( V6 x  `! y( l      while ($query->have_posts()) : $query->the_post(); ?>
) j" _& }* X2 I$ A- M- P. X' D          <div class="notice">
5 J7 d+ _) h% q/ K              <h3><?php the_title(); ?></h3>4 }; V" U6 W2 n) U
              <div class="notice-content"><?php the_content(); ?></div>
" a3 x" q* ], \0 C: F1 u% h          </div>0 |+ {) y7 Z, G8 E  a, o- m2 c
      <?php endwhile;
3 J  |% d5 O* X. X2 s' ?( O( ^      wp_reset_postdata();: ]$ F1 L, @% O! [5 M( A
   endif;
6 J% p: O( D0 e+ X   ```
) s1 w5 e: }) p
  J% U* Y/ r  |* k3 J0 i   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-24 21:57 , Processed in 0.025393 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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