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

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

[复制链接]

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
0 V( j! j$ l9 i$ @* D2 ]2 P
- [. U( o) O' i) h1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。; k6 X5 O3 B/ f
2 j. Q( V( z/ t. T# r5 H7 z
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
6 u; I1 f  h! x* l/ ]: C) f8 `6 [. l# {0 L. q) o% f, ~
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
/ y% z# a( \# E- v! v- Q6 f$ D2 _* B: M3 t7 K
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
9 t; @9 p) ?# V/ R' o; ~9 p  g* L9 A2 w
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?6 j; y. K& e$ m$ x2 {% n, C
; L/ Y3 ]9 I& Z9 T2 ]" K/ E
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:# x- u3 y0 N3 H& p5 Q

: @8 ^( D& ?% C5 m1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:1 S  n5 l8 z4 |' a" K
4 ~0 E- ?. ^$ R6 T% H# N
   ```
0 p/ ?7 S/ c  B: x2 T   add_menu_page(
* g. z1 J' V) u9 _3 x/ ~       '全站公告',
: L# \: L* M4 r! k       '全站公告',/ A8 p! u1 ~3 n4 v; \& C9 n
       'manage_options', //需要的用户权限
" h* v/ L3 k4 A% D( N3 ^       'site-wide-notice', //后台页面的 slug
4 o& C1 x% u$ h. m       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
& a7 d3 `! f. s& ]4 ~( I0 M       'dashicons-megaphone', //用于显示在菜单中的图标
) K6 Q* {; `2 Z9 k+ r: x0 ^       30 //菜单项的位置
& g& B, ]& L8 m: {   );
/ e9 m# I6 E- t$ J! `   ```7 L% q8 E4 v: w! W
) o" }, X: v( ?' g& Z
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。3 r" \" F3 d+ O  E/ r0 Y

: U; X  \# ^# d' ?& E# M- H6 A& S- r2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
$ i& M) [5 }% ~* }3 h$ S/ G' u, w4 c% g/ S) s
   ```
0 w6 ]2 L; k  k: H   function render_site_wide_notice_page() {
* w5 d: @1 V5 Q2 |# ]8 }& ^" B      // 渲染后台页面内容
! Y6 F- D( ?0 \) l; A      echo '<div class="wrap">
& g1 C7 O; E- ~5 i" }          <h2>全站公告</h2>6 n0 D1 b! S9 r8 w$ Y9 r$ E
          <form method="post" action="">: @7 |9 s$ c1 n8 m$ ^! L
              <label for="title">公告标题:</label>
; x: z9 m3 p+ r+ N              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>- u2 ~7 c# L9 m4 u+ g# D5 o" {
              <label for="content">公告内容:</label>; Q$ O9 c$ N7 w5 |
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
9 c8 N, W& j6 e+ J, j; C              <input type="submit" name="submit" value="保存设置">- m" A8 F1 G% O5 o5 {
          </form>
2 y: v" D3 h0 t! [- Y      </div>';) T! ]; g! }" c

! C3 L9 Z' v6 ?$ A. k, \+ V$ z) S      // 处理表单数据9 Q/ l& f/ s) M1 T2 Y  J; J+ k
      if (isset($_POST['submit'])) {
3 e2 ^# B& |" S! `8 I/ w* E          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));* q5 ~" {& l/ G& M6 \
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
* D8 X! {( O( k* s      }
6 b* `. A- K0 `2 z/ ~+ s   }  U8 Q5 f' J  H6 ?/ l. c2 b
   ```! p6 O+ ^, u* y% |$ Q8 i
/ l. f: }; v" A3 x9 B* w
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
5 `, D( ]% v- J0 P; V( ^) Q2 t3 T8 P& {1 K: T+ u2 `  ?8 ^
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
) `4 q6 U. w5 \  @3 Q: O3 S2 Z, z2 H8 j2 N
   ```
" u9 a: v# q3 P   <?php& Q7 [% h4 p4 x6 a" S. H# T! S2 H
   $site_wide_notice_title = get_option('site_wide_notice_title');
4 O+ Y8 N' l- q% ~8 l   $site_wide_notice_content = get_option('site_wide_notice_content');
7 y; K7 x" F, a/ X. b/ m   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
3 G% y2 B/ W" s* c/ p       echo '<div class="site-wide-notice">';
+ J1 i7 }: U$ r; H: R       if (!empty($site_wide_notice_title)) {
# a& E1 f6 g2 v* @. ^           echo '<h3>'.$site_wide_notice_title.'</h3>';+ e1 y- I3 p/ c( h9 @, C3 k
       }
' T9 N( n* |- a1 u5 D: i& G       if (!empty($site_wide_notice_content)) {
6 E% m; L+ }1 K1 e           echo '<p>'.$site_wide_notice_content.'</p>';$ L8 [6 D. ~- {; Y
       }
) V( k- |# Q9 _8 }+ J# ^, G: g3 Y       echo '</div>';, _: ], Z% R, \5 J$ r4 ]
   }
! l% y3 @4 ]7 h   ?>+ o: X/ N/ z. _) }3 A
   ```0 x: u4 z, S& f3 T5 h2 C/ G2 c
% U  W5 U. P: y5 S3 X
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。) L0 t; T( \# i- e2 Y/ X

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

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?1 b7 q; t2 S& r* I, o5 t5 p

. @5 E  d% d1 j4 t+ \您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
) @" s3 T- y" _3 A9 y' S
: R. o" g" v. f1 D. }1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:- d: S6 |" z* S' y3 T
1 v+ [/ B, [7 S) g% }4 i
```# U9 u; A* b7 C% S7 l) D+ G; A' e
function create_custom_post_type() {6 |6 D+ o2 M8 z& u$ d
    $args = array(3 d$ t2 c+ i) q6 ^& S) _* d( O
        'labels' => array(/ q$ R3 l6 o  G  h% ?* O) ~- [0 Z
            'name' => '公告',2 q, e: Q/ j6 q# e; L" M
            'singular_name' => '公告'3 Y1 U" h7 A. R& i5 a; b
        ),$ S. D! L3 i% D' Y# _4 h8 c. ]8 ?9 w
        'public' => true,* z2 q5 r& \7 C( m6 |4 \: o
        'has_archive' => true,8 E0 \, `/ U* w1 a' [  H% G$ L
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),) g  p+ B5 r( o5 E6 ?  y" _3 D
        'taxonomies' => array('category', 'post_tag'),
/ R" M0 P- z& H; [! V& u, p6 V        'menu_icon' => 'dashicons-megaphone',
, y3 K- |3 R$ h6 m% `        'menu_position' => 5,
7 a3 ~- Y& K: s- }3 l" d; `* ^        'rewrite' => array('slug' => 'site-wide-notices')
) e3 w: p7 f" a7 O) {    );
, A, z, i- o: \    register_post_type('site-wide-notices', $args);$ i" F) m- {7 Z& _8 ~8 ?  ^) f
}
8 `6 z. D- M6 m  d' b; tadd_action('init', 'create_custom_post_type');" M8 Z( T; k2 [+ W- e
```
6 C  z  Q% Y8 W' c
. P" ^" c5 M5 X- T  A在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。! n6 |$ f' u2 U3 \% k6 W7 I- \

0 N- M1 j9 }; s2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
2 P- x  u6 ^1 ^5 `% I1 E7 m) T4 o- {; t2 |) b8 x% \
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
/ i9 x( w4 M0 |# @
5 ^8 _6 V. l+ g```
0 O  H9 |2 G9 `$args = array(
8 g4 ^. a; F: ~7 n, \    'posts_per_page' => 3, // 显示的公告数量  |, K7 a( ^5 \5 Q% q
    'post_type' => 'site-wide-notices', // 公告文章类型
' H6 F/ Q# \. x2 h2 ^# r# a    'post_status' => 'publish', // 公告状态) D3 _+ ]$ `9 V2 N7 L2 E( E
    'order' => 'DESC' // 排序方式* M/ L4 d# Y$ ]/ X/ d
);8 [% v1 f, i+ W2 }! `1 U) v) i0 R
$ w9 w! V+ q; B; W5 e
$notices = new WP_Query($args);
8 Y% _4 K( D7 s1 g+ e% V. Aif ($notices->have_posts()) :& O, f7 f( k! Q0 r1 H8 r9 {
    while ($notices->have_posts()) : $notices->the_post(); ?>
1 r& @4 D$ N6 u( f0 H" [        <div class="notice">9 a) e0 u& u$ t4 C
            <h3><?php the_title(); ?></h3>: w. o. {, k& E7 [; p: L
            <div class="notice-content"><?php the_content(); ?></div>% }% l% h% E( n0 o9 z
        </div># e/ u+ x- B4 w4 w, ]* n+ s$ I
    <?php endwhile;/ h" ?" B: G9 \4 V  f
else :& b+ o- E5 J3 t+ V& n1 y0 X
    echo "暂无公告";
1 V! R5 h/ t( b# Aendif;
% K& D5 [0 Y& I' x2 k% I- p0 Dwp_reset_query();+ T, `; a7 A! P- S
```) y0 \" d0 q6 @* P2 c5 Y

# T0 `, n- T7 w/ L( A这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。3 |% N5 C% c3 I4 ~  b% w" s5 |4 \/ f
. P2 i  o* F2 M  ]5 r& t
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

347

主题

565

回帖

3689

积分

管理员

积分
3689
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?; L/ P4 T2 z* f/ i2 D- C- w5 t# l
5 Y/ ~5 \" N7 z8 I9 _
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
" _3 T: k0 G2 ~  w/ x, q* }% c& l7 E6 m+ u; m) }! ~4 l
以下是创建自定义插件的步骤:; `* p, W. U( \2 v2 ?
  f# b8 N# K, a8 \+ B
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:  ~' [3 m* |; K8 l4 T
8 B3 S7 E# u+ U+ Y
   ```
7 o+ d  Q- {' A1 a1 j2 y   <?php7 c6 `% k" y2 @; S$ S9 K
   /*
; D: ~& V* @4 v6 O6 q( n9 z   Plugin Name: Site Wide Notices Plugin
( ^; U2 x4 U. G0 v1 S   Description: Adds a new custom post type for site-wide notices." _" n7 M* l1 `" T4 M4 a  B! \9 g
   Version: 1.0
  f, o2 H% d9 A# Y$ M+ j' i( q  B   Author: Your Name
! P% B9 ?6 @/ r4 _+ |, m, ?/ y6 d% ~" a   Author URI: http://example.com1 S5 ?# e& i$ E% A1 v- v. F
   */
2 W$ f( {+ |$ x$ S: y" C- u
/ w: g% R9 |+ j8 [   // Add plugin code here...: _0 I7 D+ \0 i& u
   ```" ^) \& b! w  L/ `
# ?$ a8 H1 F$ l
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。) Z; \2 X4 H9 W. ~" Z/ a

, F$ ]1 B0 f& J2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:: |, M: h. U7 p$ h' r# l

4 @# P9 S5 d6 C2 F& d! a& N   ```
, R8 A1 b7 Y4 y   add_action('init', 'create_custom_post_type');+ d) L$ q( g  @* }' L
   function create_custom_post_type() {
5 R, ~1 F5 ~! w& l      $labels = array(
6 l4 z7 B) j- V6 ~          'name' => 'Site Wide Notices',: ?1 \: C# V+ ^) n( s5 _- i
          'singular_name' => 'Site Wide Notice',
9 F2 z- v. w! e, E7 y: V          'add_new' => 'Add New',
* Q  W. V2 ^7 l+ {4 \0 j5 F          'add_new_item' => 'Add New Site Wide Notice',! q- M/ u. U1 s, H" E$ n& p: p" l% L
          'edit_item' => 'Edit Site Wide Notice',& N0 S9 _$ L+ J" Y
          'new_item' => 'New Site Wide Notice',
# j+ O1 e  \0 _; {# P          'view_item' => 'View Site Wide Notice',- l9 N' R/ @2 }4 z! Y
          'search_items' => 'Search Site Wide Notices',! f8 Z& r+ J+ K+ s3 T) A5 C. E
          'not_found' => 'No site-wide notices found',
7 I* r6 P5 f$ h% n          'not_found_in_trash' => 'No site-wide notices found in trash'
6 R- _5 E5 |. H8 Z; i2 B: [( U. q      );
5 S% [  u0 b1 k! I0 [9 T0 L0 ^9 H/ m7 ?
      $args = array(
9 i! o$ T1 M* S7 [/ x          'labels' => $labels,
7 y0 {' x9 K0 ]  F1 o          'public' => true,
, x+ Q* E+ K/ p0 X          'has_archive' => true,3 U. m- z$ r+ I8 u0 B
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),2 B+ D7 z9 h- z# q) i
          'taxonomies' => array('category', 'post_tag'),
) H9 H- U0 y5 [! h9 {6 K9 x) Z# e          'menu_icon' => 'dashicons-megaphone',
" m$ o, u  {+ x8 q, z  C1 I8 }# y          'menu_position' => 5,
) X5 ~1 `% q# k; c5 |# [! {          'rewrite' => array('slug' => 'site-wide-notices')) |  v! D' e% A" \3 @+ {
      );! |: `* D, z) i" V8 ^9 |/ o
% R; J8 h( E# P4 h5 n, w2 s7 b- L
      register_post_type('site-wide-notices', $args);* P9 V3 {& D, n0 B
   }
* S: ~/ ^7 f, l   ```$ @* r( u4 y0 X, i; h$ u1 c( @
( W6 m- p4 n3 J& K9 P& Y
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
0 b) N8 E( j/ K+ a6 Q% Q2 E5 X9 B' J# h1 C
5 O2 Q. Q) h5 `9 W3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:3 t2 ~3 e& G- T6 p& Q3 ~

/ J; @$ `$ q. P4 ]" n* C   ```' j* M8 D4 E! B) Z
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
. z( W4 z' [/ d5 }! U   function add_site_wide_notices_boxes() {. }% p% f2 E' i& b( C2 J- f# h8 h( Q
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');  C8 O4 t4 ^  V0 W9 }
   }
$ g3 B6 \; [8 @0 D; t. p4 o9 M( [3 b
   function notice_details_meta_box($post) {4 x! p# _# D" C9 r  I! H0 R' }7 j/ R
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
5 P5 f7 X2 V  Y; m      $notice_title = get_post_meta($post->ID, 'notice_title', true);
) A8 ]8 ~  ~! X      $notice_content = get_post_meta($post->ID, 'notice_content', true);' P% n! t  ?9 o# T0 G6 y/ I7 v
      ?>
3 r; P& i7 ?' Q% W; n' p' S% {& |      <p>
1 J+ _% s) O  u) s& V% ~          <label for="notice-title">Notice Title</label><br>
( J' ]' R5 f* o" _5 a, y2 Z          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">* _6 k) v- O% x+ R9 a
      </p>
. Q( g. k6 Y: k      <p>
5 P( D. y1 k1 u! }$ O  C9 F: u          <label for="notice-content">Notice Content</label><br>" A% d& w% J4 o8 y8 G; k
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>7 S4 r- ]! x' }- e3 u: d7 N
      </p>
. c% F8 n& Z8 \: _. W% P4 ]: h      <?php. z1 ]/ \$ @7 L  h) M- |3 R
   }
; ?' s9 m- h$ Q4 B* i: R: \9 k
/ c- D' {0 Q% z8 `+ J5 S! K1 f: a8 s   add_action('save_post', 'save_site_wide_notice_meta_box');/ M- [0 t1 O& }. D) Q% r; b' F
   function save_site_wide_notice_meta_box($post_id) {
! ~( K0 Q# b' e0 M  o      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
. o$ e0 q( ^" b2 o5 Y) c7 S7 g& ]. v8 z         return;
5 z5 a6 r8 R5 t, [- u      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE): p- l) e. U) m! @  \' O
         return;
$ w. g2 E* b4 D5 W2 o
3 m2 u) x# k; @( I- o      if (isset($_POST['notice_title'])) {3 Z) `1 g; ^) h& R5 {/ e! J
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));+ W' [. a6 Y3 t, \  C
      }
2 Y- L, a: k/ F' y      if (isset($_POST['notice_content'])) {
; @. a  T5 N3 R6 q& x          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
6 p2 s% x8 o0 w! ~      }4 V  M9 I" o: R
   }- A% c* d5 E$ R  F
   ```( i2 K- Q" h5 R8 O# H- \

% Y8 f3 V% {# I# p  P% i" j   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
7 f, x4 O3 R3 q" d5 w; V0 t- p5 o. l  ?2 r' X
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
: E& o. F1 s1 Z1 M; j1 N/ Y5 r/ ?9 `! a6 D
   ```
* A6 j; w, v4 D% z6 b   $args = array(
& Q3 L' W8 _+ [. l      'post_type' => 'site-wide-notices',+ t) U4 W+ `0 Y2 [) q0 o0 W
      'posts_per_page' => 3,6 t9 y- I' {" {; o7 X" [
      'order' => 'DESC',
, K4 t$ e* T6 O& c3 o' n/ c0 c      'orderby' => 'date'
) X2 b* O# j+ B+ ]4 F4 `2 z   );0 r: t& J. t$ T0 B* L' [" z
   $query = new WP_Query($args);4 g) L* ]' X' P% h5 h/ ^1 E2 F7 X8 Q
   if ($query->have_posts()) :
" C" o' e$ \/ b( t$ F      while ($query->have_posts()) : $query->the_post(); ?>1 F! E! f& V7 p. K2 T! h) t
          <div class="notice">, b7 L: x. L/ h2 L7 A
              <h3><?php the_title(); ?></h3>/ _6 |: Z5 B3 n" X, f* a7 l2 K" p$ c
              <div class="notice-content"><?php the_content(); ?></div>
) R, V3 m8 F/ u' C; |0 e+ T: ?% Q. X1 M  H          </div>
+ q5 Q/ {! p9 P8 y      <?php endwhile;
0 k0 }3 O8 z  W7 N/ z9 K3 ^      wp_reset_postdata();5 X6 [8 w( \3 z
   endif;+ M5 E$ Q- c. S2 g4 T* e
   ```3 @6 z% O/ e& J1 U

7 G7 F9 _/ Y6 n% Q1 c  r! S   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 17:54 , Processed in 0.013396 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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