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

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

[复制链接]

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
. c& X$ h8 N  E0 |* Y" h) J" u2 K" ~1 j. L. i) }% ?
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。& `+ C1 I0 ]: U# b  F8 n$ J

5 R6 ^* V+ {: E2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。5 U+ W9 t/ n/ n/ w% q

* O$ o* d0 G; ~9 i2 b3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。1 X7 p5 p2 b3 A  v" t+ u' ~4 T- Z, w+ R
4 p, ~# b( t- d# g
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
( x! f* W+ B: K3 R# L
9 ^- b, G2 v* M0 X注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?- h, u7 e) v5 h9 X( f7 \/ m

# n) a; c) |7 Z2 |! v( L. {如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:: o3 {7 D# C8 L: v

% U8 H/ L  n; {" u+ Q7 ^+ B# u: s1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
& Z6 [8 k# I6 y5 R1 v9 b' v
, U. f# Q8 i! M% _0 W  l" [) y7 h   ```
" a# a2 f' q0 }7 [  s   add_menu_page(8 y0 k9 f+ }7 s! t5 `6 b6 h
       '全站公告',, H3 r3 y) Y9 `3 d7 ~5 B
       '全站公告',
  m4 A. Q$ `- I# B& S1 U% p$ L* J       'manage_options', //需要的用户权限
7 o2 p8 K6 |8 r3 I       'site-wide-notice', //后台页面的 slug
) v( r8 [5 \5 {! y' w/ |, w       'render_site_wide_notice_page', //用于渲染后台页面内容的函数- T$ I) Q/ r: [/ N$ g
       'dashicons-megaphone', //用于显示在菜单中的图标
* P5 i/ ]4 I% r: ?1 s       30 //菜单项的位置
) R2 c5 e9 q+ U& i/ @% E   );  Z9 {: ~8 Q6 P+ s9 d0 x; G) s
   ```) f7 t/ G) d; _% f  }
( Q* d# l% C( L' C0 [/ R* @; C
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
( W, J% _9 G" R/ D+ N- h
: h1 r# F: F& `; d' h2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:: M+ N4 L4 c. o% {3 x/ f* c0 R

" U4 v* p4 _: ]! \" O- ~   ```  y% w/ T4 o. B( O
   function render_site_wide_notice_page() {
/ ]8 b6 k' r2 K9 ?7 W; a      // 渲染后台页面内容
5 }: u# ]8 v. O' P      echo '<div class="wrap">
' \. b2 i4 J; A8 Q3 X. s          <h2>全站公告</h2>
, D. A. B7 z6 ]$ Q, w* n$ r          <form method="post" action="">* c3 w1 k4 V5 I. b% W
              <label for="title">公告标题:</label>
# N% j0 |9 k+ R7 f              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>( _0 r$ |: I/ _
              <label for="content">公告内容:</label>+ h- u+ o, B' q
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>$ v* R/ e$ J( h
              <input type="submit" name="submit" value="保存设置">
7 T5 v' f1 O7 N2 X: G          </form>3 U7 m) k' f, B9 g, e4 `
      </div>';
. M+ D- u" c* x, U) B9 ^: P! |# Z: g3 x
      // 处理表单数据$ V/ f, g4 a, c- S4 k5 e0 N1 g( X
      if (isset($_POST['submit'])) {
) d3 Q, z$ X2 Z: v# i! z          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
0 ~- f7 d( M' C0 h- i" K6 v          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));" r8 R, J6 l; }' O, y
      }
6 F+ n& S+ u+ D   }& O" `. D: Y0 L7 s1 {
   ```# s0 A+ r& [( Q' _4 U! B7 O

+ r5 h2 @6 Z! S1 q0 Q& G   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
: e, B) p' \* B+ \/ k0 |6 u% h$ m/ H; g$ ?; l3 R9 C
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
) v+ y* I. A% t' D' M1 t5 S/ x* j  E2 s6 J2 i# T% h  s
   ```
% H! X* I. p! Q' h" t' Q3 K   <?php
# ]: c& _1 `4 I" M   $site_wide_notice_title = get_option('site_wide_notice_title');; x, V0 x' b* l" e9 i
   $site_wide_notice_content = get_option('site_wide_notice_content');
2 r  h9 b" T/ Q9 p% I   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {) ^, E  q: Q+ j9 t, h* T
       echo '<div class="site-wide-notice">';1 g- z, c4 b/ o0 K+ m2 J. M* d: n
       if (!empty($site_wide_notice_title)) {: {: w: g9 a: \
           echo '<h3>'.$site_wide_notice_title.'</h3>';2 Y9 R* B7 H8 ?8 J9 I- ~
       }
" ?0 d0 Q, F6 a- f# ?- T) G       if (!empty($site_wide_notice_content)) {
/ `& y" g  }) R; G6 r! _; p7 k" \           echo '<p>'.$site_wide_notice_content.'</p>';; h6 A& x$ u, P
       }  |/ {$ X  C- @  u+ P
       echo '</div>';
8 y( S6 g( O4 x2 `1 I" T6 m   }9 Y! j# N5 y0 `3 f2 W  o; Z' s
   ?>
) `6 \; z: k2 P* C: D   ```
! \" l+ _8 C$ P1 D* V/ i& G) ]' e  R
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。: R/ R/ H+ W/ O' E$ N' j

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

使用道具 举报

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?) \% T9 z- a+ s. m: m

& s/ I, s% y, Y# j( p1 E" [您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
! D9 M2 _* X: Q( Z
$ v8 {) e/ [* `4 d. y1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
7 Z$ Z, \0 U$ d8 O3 S- M
% s: F1 ^% y( b6 V```6 W& Q5 K# ]( I3 m4 C  S/ j
function create_custom_post_type() {
8 z9 P4 z. J4 g2 G/ g2 w  q    $args = array(! B" A" V( M! A& u+ P- V% t+ y( a
        'labels' => array(% F2 l3 H: C! M, X3 U0 n& q
            'name' => '公告',
1 Q9 o& I. [# v1 m( L            'singular_name' => '公告'
& }6 q' s0 x- O! t& p' S; J        ),
) E7 b7 ?* u/ Z        'public' => true,
$ {, {! ~0 f' Q5 S" z$ Z1 l        'has_archive' => true,
, z/ [6 C1 B/ i        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
. I; O. z- Q) w& b) r        'taxonomies' => array('category', 'post_tag'),
3 O" @' P0 O" X, u- \0 \* I/ n  E        'menu_icon' => 'dashicons-megaphone',4 v; e9 S6 z' k8 C6 E# l& w0 Z
        'menu_position' => 5,; b' ~) k$ \' i6 H' l6 }3 Q9 F
        'rewrite' => array('slug' => 'site-wide-notices')7 q5 [( I* n! [0 p3 Q. t
    );
  `$ @2 U+ r5 F) {5 K1 u8 e& Q5 j    register_post_type('site-wide-notices', $args);5 w: P& F8 F7 E3 k* S; u) W  ]
}
* c& T5 }' U( Q4 |0 Madd_action('init', 'create_custom_post_type');7 Q  n! j4 m8 h
```
9 i" `5 S8 D; t( c5 @# ?0 z+ a0 U& f! a1 {+ Y
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。9 e, U, z: ]$ M0 F4 ]
( n3 k# L6 b) V* @1 v8 ~0 a: T4 f
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
- r9 G; Y! G; H8 u/ C
3 y- i& O1 o) R' y- N0 }; k3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
9 p$ b% o) o) c$ A6 I
' i" j* Z0 S4 C, ^! B5 P```+ Q  l; O( o4 R9 H" o
$args = array(
3 x. I/ C) g: S, m$ ]    'posts_per_page' => 3, // 显示的公告数量
6 C" y) e! |! T8 E& f( h    'post_type' => 'site-wide-notices', // 公告文章类型
/ M, z8 m5 n7 ?7 r    'post_status' => 'publish', // 公告状态
# d7 {! i# q! _* n5 @, y    'order' => 'DESC' // 排序方式
$ }# A- V$ q# h* Q7 |$ R);
1 t' f# k5 p* d+ W1 g
2 I4 L8 \' ]4 b2 B  I$notices = new WP_Query($args);
; r. m' D6 b8 d, Fif ($notices->have_posts()) :
4 p" K# R# H4 R' s& L1 l7 m3 z3 Q    while ($notices->have_posts()) : $notices->the_post(); ?>
8 l* Z7 `. q3 h( e        <div class="notice">* S! q- H0 n$ {% P/ Y
            <h3><?php the_title(); ?></h3>
. \2 e4 c' W* `; ?            <div class="notice-content"><?php the_content(); ?></div>
( A! b; _7 O! R  V  T2 `# p" Y+ ]        </div>6 w* @8 r: `& Z6 O; X
    <?php endwhile;# M2 r* N8 D8 R" ]+ {0 G2 O
else :
& c7 x. b$ g% s( D) ^    echo "暂无公告";
. e! k* E; k- P. C* }. O+ mendif;3 x' P: P' V1 ^
wp_reset_query();
: }$ w: C7 A0 m5 e" v4 d$ F* n. W```* F: M  x3 f6 q, ^

; s& I- ~# H6 J8 }* U& R) y这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
3 ?' [4 l7 n0 N7 w# ]& V
/ z1 k* u# O2 E- k以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

332

主题

513

回帖

3368

积分

管理员

积分
3368
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
7 O% d% s- h8 {% g1 q6 C+ F! D/ N% O% [1 }) G/ x
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。, r5 ]$ L2 M6 L& `% \
' |! ^$ r1 B- Q( P6 H4 F7 @. T2 P
以下是创建自定义插件的步骤:
6 `) E4 j' c  x3 L4 W, g1 n5 a# s9 g; ~/ c- l" d' [
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:1 x1 H! }" {1 S7 b
! Y# t6 f% X  F' J  r) |
   ```
2 G7 X$ L0 @' N4 w, o! l   <?php
) p: T3 k# d0 Y; `   /*
/ T7 O* z+ w2 i; x/ D! u: y   Plugin Name: Site Wide Notices Plugin
# M# s- Z6 N1 V; O; p; @! \8 t   Description: Adds a new custom post type for site-wide notices.: `' t8 W4 B9 q" b) Z# k
   Version: 1.0
( P" C, P! _+ n4 L   Author: Your Name
6 B2 \6 |, y! W. d7 s   Author URI: http://example.com& s: m- g+ f" [  X" r. Z; Y$ V
   */
9 Y' N# @7 R. z9 {. S1 O. z: W  ]7 R/ W9 e. C5 }4 P3 |
   // Add plugin code here...) n' n9 ^" E* f9 F6 A: S8 p5 d: O
   ```( t  d% K" ?2 T

9 ]/ j6 z' N/ U7 m  A- T( j! ]   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。1 M1 q$ E6 c' ^3 |

( F' l5 v  z8 x, [& `7 }  E2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:& z7 o5 y& ^0 B: |
/ }% {- u% c' d$ K( l
   ```
5 C9 G' v7 U+ I6 W$ b) i% z   add_action('init', 'create_custom_post_type');) g, m% }& H& g7 s* I. ]
   function create_custom_post_type() {7 E0 b7 V( C1 X( p! E4 ]" W* f
      $labels = array(
1 e6 {1 V) W# L+ D7 U! X' K9 }          'name' => 'Site Wide Notices',5 ~( m9 f! H* q6 g$ V: z4 u
          'singular_name' => 'Site Wide Notice',
4 E& B, o6 \7 O4 O          'add_new' => 'Add New',
6 O1 g) i7 I0 \8 |" y' r          'add_new_item' => 'Add New Site Wide Notice',1 Y, ]6 O! ]4 V9 N9 Z& }$ l4 G
          'edit_item' => 'Edit Site Wide Notice',
( L" @2 {4 I: `& Q; ^          'new_item' => 'New Site Wide Notice',
3 U! p3 G9 x5 ?, s$ A          'view_item' => 'View Site Wide Notice',6 \  D$ R% S. ~2 N8 r  p' c
          'search_items' => 'Search Site Wide Notices',, x6 T/ l8 d' n! j- L0 l! `5 U( _8 g% E
          'not_found' => 'No site-wide notices found',
' i* t- z/ X! X' ]          'not_found_in_trash' => 'No site-wide notices found in trash'1 j$ R0 A7 ^4 v$ |* B6 {
      );
9 [5 w6 `6 W" x0 Z4 U1 ?/ I& j2 t, K0 y! s1 t5 j3 S
      $args = array(
" d* @) F, \+ v2 e  ?. F          'labels' => $labels,
5 \8 M0 H: }3 T/ z. ?  }          'public' => true,; B+ h! W6 s# Y, J( \
          'has_archive' => true,& F$ S, g3 S5 P0 J
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),6 f  L7 T$ ~5 Z/ b2 z8 v! b5 [
          'taxonomies' => array('category', 'post_tag'),
/ F% R; \- s) {3 h* g          'menu_icon' => 'dashicons-megaphone'," j6 B3 l$ t/ F' _
          'menu_position' => 5,7 F8 T* Q# e0 J/ d! v
          'rewrite' => array('slug' => 'site-wide-notices')
7 H; y+ _) Q* H# M" }3 `      );
3 ~! R" [4 \7 |- @, g* I0 U  K- m$ q' Q5 X! n0 c7 M
      register_post_type('site-wide-notices', $args);1 R' ~6 [. w6 a
   }9 H$ t/ K/ N! l; c4 g% e( v3 k
   ```
5 ~  A! V& ^: T' ^9 \0 t4 Z: y" W" ?0 p% V: U! S3 _
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。" |8 y* }0 E" d7 U3 ]9 y8 p

2 D5 u9 B9 w  I8 W; R3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:0 i7 }8 J/ v5 ]5 e2 @
! n/ ^8 d, g4 s: P0 x/ o, ^
   ```
$ ]% J! ?2 B& I. p1 ^8 m9 c   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');9 O; o" b$ y6 h5 x. I! n% X
   function add_site_wide_notices_boxes() {% a) C4 j( A, b& ~
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');/ P+ N$ ?% ]" _% t/ ^0 n5 u
   }
5 i* W3 G2 z7 P5 n; H
1 I# l0 e4 O% ]   function notice_details_meta_box($post) {
0 u% T; d( O# b. Y' ~  x* x      wp_nonce_field(basename(__FILE__), 'notices_nonce');
$ o# T5 i" Z$ Y. B      $notice_title = get_post_meta($post->ID, 'notice_title', true);5 M. B/ j) i: Z  d+ S
      $notice_content = get_post_meta($post->ID, 'notice_content', true);! L0 j- _8 _. R. W' N
      ?>
  |; Z: K- d2 p6 T. p* o- n      <p>& G5 j8 T$ h: x; C
          <label for="notice-title">Notice Title</label><br>. i$ B9 p8 O/ t
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">: n2 @( h0 t/ E5 s6 n
      </p>
7 n" v: p% P8 H# |5 I      <p>; Q3 s$ z, K, l7 c; z1 F/ f) D
          <label for="notice-content">Notice Content</label><br>) H9 z0 \' x5 ~5 M7 p
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
% h: M" I$ G: G" N4 T: C      </p>
8 O" d' h5 v2 {" O( v      <?php4 b( F* ^2 f" v2 @1 T
   }
% u& E, [. o4 z+ \3 h( W/ _+ ]
3 Z& Q+ D" c4 \& e( `7 X   add_action('save_post', 'save_site_wide_notice_meta_box');
! s6 X- n. T6 p6 D2 r% Y   function save_site_wide_notice_meta_box($post_id) {2 r% W  B) c/ t6 s
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__))). J7 H+ m* Z' t5 J" E
         return;+ ~& U$ ~1 `5 |  J( u4 H
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
, m& t" O; r& E. G7 B9 Z* n( O         return;
3 t# w  }3 y5 z: [- U# Z
: F/ V5 [/ y1 b3 N+ o9 z      if (isset($_POST['notice_title'])) {# T& F& S( E- O! E$ O& w
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
# ]. v( y% Q* R7 S2 A. f  N, S      }! T* F0 `4 Q9 T' {8 \0 O, M& K
      if (isset($_POST['notice_content'])) {$ M& k& S/ }+ D6 t* u
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));8 X3 B( S& O3 w" S  |8 ~2 W- W! M
      }: p: q' K4 B' i2 ?
   }" n: @- |) o, `& l* t
   ```
8 l3 u3 {2 O4 e# E5 q5 S# q) k5 h3 @; w% r7 W+ ~4 i
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。5 C* c) }0 n# T# x

5 N% A2 A0 M: r  R4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:" M6 X& f) r' s- g

- x' S+ n9 u' F* o: w& B4 A   ```4 z! v2 f, }# c; p* L' G' K
   $args = array(6 ?0 ]7 o' j! [" H7 e9 a4 d* Q
      'post_type' => 'site-wide-notices',
8 `& g8 ]& f8 Q      'posts_per_page' => 3,
5 |' j5 A# R& @# [  H7 C0 T* |$ o      'order' => 'DESC',
7 r) Q+ ^3 e+ y, x. _; h! \      'orderby' => 'date'
& B# d6 S/ u/ l2 o   );  T! j2 l( S" x% g
   $query = new WP_Query($args);) e" w4 l* |9 M6 O5 G7 G
   if ($query->have_posts()) :
. j& r3 n# O6 B3 c$ {6 h% p1 _4 Y/ a      while ($query->have_posts()) : $query->the_post(); ?>
8 `2 o' {$ x! q+ ~4 Z' [+ e' r          <div class="notice">
. r$ ?" n5 C, n              <h3><?php the_title(); ?></h3>
+ c  ], P8 k3 u: J, J. s, y              <div class="notice-content"><?php the_content(); ?></div>
$ ?+ p; v$ C3 d3 p7 S          </div>
" ^6 y: h7 y# e" f* h4 L" u      <?php endwhile;
  `! K( f/ B( R& ?7 R1 X      wp_reset_postdata();
; L6 J0 M5 a7 u/ V! B5 r   endif;
3 o7 z8 E( N+ d( L! w/ @* |5 Z# g   ```. W* i: C7 I/ y- o* I0 `0 x; o

- _, o, G/ M8 ^0 @1 e0 @6 X. Y   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|通达产控投资 ( 粤ICP备2023021749号-1|粤公网安备 44030402006137号 )

GMT+8, 2025-11-23 06:49 , Processed in 0.072115 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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