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

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

[复制链接]

331

主题

511

回帖

3359

积分

管理员

积分
3359
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
( K$ o4 M% x! C, v; }" G: A
; u, ]' f" y! G( v1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
% b! R3 O: p; s; ?# T. [0 q4 w6 G: s; O( L, p
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
; j/ e' X4 U3 @- A! O) W  c/ M# R6 x# H% ^% z4 I( \* F5 r
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。4 b( c4 l+ x6 n# W% Q! v
& h; M0 m. U1 N0 k1 m: V6 S# w
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
: [; P0 q" i. z( G: Q/ K* ^8 B1 g  |* o8 G
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

331

主题

511

回帖

3359

积分

管理员

积分
3359
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?4 a& z9 L" L% V- u) M* H, E; c
/ T4 C* U# Q4 I1 w' y$ ?. J
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
, M; |$ M1 A0 N+ h9 O4 c, w8 Z$ ]/ H
8 S1 [$ m. A! q8 ~$ P+ q1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
! B4 v& f  z7 `+ ?
0 ~* N7 @9 r9 v5 I* `1 ^   ```& c+ p6 A4 F5 I  N% ~& {- v* ^
   add_menu_page(! M; h1 c0 c: n1 X9 e7 E% c
       '全站公告',
! q2 `& z! Z5 P, c/ R: d0 Y, H8 f& E       '全站公告'," N. k; H0 B( N- X" ?" f. R; k
       'manage_options', //需要的用户权限1 m/ Q* c8 d  {" z
       'site-wide-notice', //后台页面的 slug
4 v3 k+ ~$ D& T. k       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
. g+ H; L" V% i! M) w       'dashicons-megaphone', //用于显示在菜单中的图标
$ E  ]6 A& J, ~( _       30 //菜单项的位置
% g7 e3 |% [3 e' ^1 U   );* E' ~! O6 p7 m1 K7 u
   ```
* h; }" u1 `6 h) G- Q& x+ ^6 x& e: T1 S/ i& r9 {; m# x
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。# Y9 q: h( ^! {

# L: j' E- H: h& I: I2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:) M3 m% ?. E- L# G5 L1 ^8 z+ b
7 ~- y9 l( R. ]/ C7 u) W* o
   ```" U# \( @" n- Q$ X
   function render_site_wide_notice_page() {
# p: v& U# x8 g0 b9 z9 h! u, r$ R) C      // 渲染后台页面内容  T' d  {% `: c2 l$ e1 I
      echo '<div class="wrap">
% _% o% `- I3 M          <h2>全站公告</h2>$ ]: e1 c" N+ E
          <form method="post" action="">
1 f/ m  [* ^; I1 N              <label for="title">公告标题:</label>9 U5 m! J7 u2 N# w/ b5 ]' E
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
* a# l6 u2 F  J* |* O2 Y. v              <label for="content">公告内容:</label>) b5 w: t! X' x7 j5 z9 N$ K; O
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
5 c% Z0 o: b  D6 T  g              <input type="submit" name="submit" value="保存设置">8 U+ c0 u" u+ D
          </form>7 U" f+ W% F0 A+ z" F
      </div>';' E# m+ Z4 X8 `& @

) r/ J0 Q2 V# d+ m# k6 z5 X( @      // 处理表单数据+ h- E- {- ?4 k% M# ?5 p" H& ]
      if (isset($_POST['submit'])) {
$ X" M; A: f' ^6 `5 \          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
/ X2 h& m: @8 n2 D2 _          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
6 a8 {- G! b8 Z      }1 Y" C. G4 C7 k) a
   }
, a2 v7 Q0 U+ P! i/ J, q% h   ```
) j/ W  q; \1 x" B; h9 b
( V* N8 p. ~5 g% F/ J% N- ~+ t   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
, e) t& E' B8 R0 Q/ O2 H0 v5 `& k5 y2 l. W/ S
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:% e7 {, I3 ?$ e! _
) R: z1 L- r: q: c; @/ N: c' z1 P3 p
   ```
# c- l2 W6 _& r' s   <?php3 Z; Y! q, `' ^7 \$ c
   $site_wide_notice_title = get_option('site_wide_notice_title');
9 q4 f1 |5 p* c   $site_wide_notice_content = get_option('site_wide_notice_content');4 x% V) ?$ Q2 P# m+ T6 ]! C4 M4 \
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
7 W3 e- [& _' t" l% f) u6 V       echo '<div class="site-wide-notice">';
' a9 p4 Q+ v+ P8 A       if (!empty($site_wide_notice_title)) {
. w9 r, n7 c* N0 k2 |! R  w1 R           echo '<h3>'.$site_wide_notice_title.'</h3>';
$ r3 b' e3 X+ {7 e; o- N       }
5 [! s+ O6 h4 O% [3 z" N       if (!empty($site_wide_notice_content)) {
; m4 G. B/ x2 q  I0 J           echo '<p>'.$site_wide_notice_content.'</p>';
2 H& N- M1 G/ C( w- @. U! Y$ N- S8 b3 f       }; @6 P. k$ R7 g, }% ^) T* D* K/ j
       echo '</div>';* i; r3 u1 ^- M/ S, }- J. ]  f/ F1 M
   }9 e/ O* g2 A5 Z" C+ G, z  \- z
   ?>
5 E8 M. `6 a& Z5 x+ N# G   ```9 h! j$ K  y4 z2 R! Q
% {! ?/ n: {7 ~8 p) U* O% u2 A: q
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。# y2 @! f8 \- D" E/ C6 Q( Z3 A
$ R" J( s3 L: {5 p% r0 D7 C9 |
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

331

主题

511

回帖

3359

积分

管理员

积分
3359
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?! p/ w* [7 U5 k# U( D
( n4 |& K/ H  u: T/ U/ i2 P# j; {4 E
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:4 N8 j- T: Y+ c9 F* y

; U0 ~% ]) v% X9 M1 @/ B, L1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:+ g* V5 r! \* Q3 j  U' R/ r, N# j

. q2 n% j3 a0 P* Y* P% k```
7 {+ z& F7 c; y3 \& e: ~, @function create_custom_post_type() {, p" G4 \: Z% K9 a- ~
    $args = array(
8 y( w) j6 c/ [$ y6 O/ W' ]        'labels' => array(
% ]: d3 v: Q2 m* Y4 d            'name' => '公告',5 |- n5 D: U8 o4 z( \0 r1 X
            'singular_name' => '公告'
: u9 j5 V0 l6 D0 u! b. ]        ),
; @0 o1 e- I2 W' e0 y        'public' => true,+ Z0 u7 b! h" ?% d1 {
        'has_archive' => true,/ H3 b+ V+ v$ A7 l) `
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
, M* |4 B; m7 o. d/ w        'taxonomies' => array('category', 'post_tag'),
" p! H& E# I8 O9 q" i/ f        'menu_icon' => 'dashicons-megaphone',& C2 ?* W0 K. A1 Y: m
        'menu_position' => 5,$ V5 z' P0 {; a  \! g! n  {2 N4 ^
        'rewrite' => array('slug' => 'site-wide-notices')1 _: }8 Z3 u3 {
    );/ {( k/ f$ I; y
    register_post_type('site-wide-notices', $args);. X: M/ H% a* _# s( G, a
}
1 o1 b% E$ ?+ B# padd_action('init', 'create_custom_post_type');$ t4 b2 }( `5 A) \' W  v) E
```  Q0 t/ Z3 v9 |' i$ l8 a
& t) [0 ^6 N# |! I, n/ S
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
  f2 F: j1 V+ W- S- T4 c
1 n# s* }* ?5 u! ?2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。9 S/ H* O6 f% c; G
% X8 T  C1 D. [& X* r
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
7 u5 I  f& y  M8 o8 a( F8 a8 d# `' C
```
% j" Z6 G. Q2 n; q5 S5 s* L0 X$args = array(' s* R$ @; D+ ?7 O: v/ \9 N; E
    'posts_per_page' => 3, // 显示的公告数量* j; `% |: I. h: |
    'post_type' => 'site-wide-notices', // 公告文章类型
6 }9 h+ v* Z+ j3 V    'post_status' => 'publish', // 公告状态
5 m( t; |7 T" W; I% x    'order' => 'DESC' // 排序方式" S* a% M- w1 j, J2 e6 r
);* M0 r3 l- {+ G1 Y
$ C7 ?  d0 R2 x$ Y/ p9 f" L6 N) I
$notices = new WP_Query($args);* h7 E' F" m2 P4 U/ {) l$ S
if ($notices->have_posts()) :
* ?- t) f/ r0 K% f) Z$ ]$ I    while ($notices->have_posts()) : $notices->the_post(); ?>. E; i' C8 Y9 m: K# |5 P5 q" |
        <div class="notice">
9 i1 j( O) F& w            <h3><?php the_title(); ?></h3>
4 e& W: D4 \+ W6 `8 ^1 V5 ?            <div class="notice-content"><?php the_content(); ?></div>
$ G" R7 J" _3 f7 {8 ~. y" N2 G2 O5 j+ G        </div>6 ?. ~0 t0 D. @' \" a- {
    <?php endwhile;6 `7 ^* b& y, c$ I: \$ y
else :0 e/ D/ v; H% j5 ~9 R
    echo "暂无公告";
7 H! b4 Y0 ?: |1 V! Aendif;
' J& o; Z& G3 \: z- L8 X! Vwp_reset_query();
  S: _! l6 e) P; J! M```
/ ^- `' N& `+ j, A1 N0 [3 b$ a; Y
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。, G  ~) a% f  B7 y+ C. X
! E# \  H( v/ x
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

331

主题

511

回帖

3359

积分

管理员

积分
3359
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
2 C$ i: |8 @% l" ?! K% v2 |6 R1 m) s! K* a. x& c
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。# Q7 `- Y8 l/ t: u$ G- ^
9 V' p  p3 ^- L. o  {' l
以下是创建自定义插件的步骤:
; V+ l6 d8 Q& }/ v. b% Q$ M# }" q
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
$ z6 \& D. j# q4 _% `( z
+ L) S# T* c; U# ~% u2 L2 P; s   ```1 ~& K* H/ t$ N) J
   <?php
# a, |7 b) J% h" Z! u   /*/ K) [3 u6 ~- t' ?1 G
   Plugin Name: Site Wide Notices Plugin
8 d+ d  \/ X& q* Z- z! D  _   Description: Adds a new custom post type for site-wide notices.2 q2 G& {9 ?% t% W
   Version: 1.03 E/ o8 {. M- H6 m- o# A8 X& A, P) U
   Author: Your Name; {9 v5 ]% `: H5 z% ]1 u
   Author URI: http://example.com  c& K* H9 B0 W- I8 o
   */
- D  i) F( R( s' t
, x7 ^' b4 B8 }& U4 Z& Z2 E   // Add plugin code here..., m' Y% y9 `7 P1 d
   ```
8 J% o; W  ]9 W
/ z' i! A0 e% i- R   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
" R8 m9 m  Q+ k% u7 y6 [9 l/ ?# B' l7 m. R0 ~3 Z2 Z# c
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:6 Q, r( v, O* a& D  X( d$ k! U+ j& J5 J
3 ^; V$ X3 ]3 v& B4 k3 a7 n( F
   ```# c4 \9 a- u8 C  g* n
   add_action('init', 'create_custom_post_type');
5 H' {7 F7 u1 S6 R: B   function create_custom_post_type() {; g3 h3 A  c: s" b8 }1 e3 L
      $labels = array(
4 N! @3 U  w' e6 Z          'name' => 'Site Wide Notices',
$ K: }0 Y, t* p2 i, }1 X: A          'singular_name' => 'Site Wide Notice',
, N" o$ _4 I! O+ }& ~0 r          'add_new' => 'Add New'," _# S- ~( L9 ]: x1 g  U9 a# U
          'add_new_item' => 'Add New Site Wide Notice',/ l& l# ~( \2 q
          'edit_item' => 'Edit Site Wide Notice',
, W6 Y& t9 H: _% o( D          'new_item' => 'New Site Wide Notice',3 f) ~; C8 Z3 V1 S1 s. n  ?
          'view_item' => 'View Site Wide Notice',% _  A# l7 C. `# _: d+ X# w( a/ v
          'search_items' => 'Search Site Wide Notices',4 S: m( s. R( E3 _0 O# B2 J
          'not_found' => 'No site-wide notices found',& g5 K, s5 |/ p& Y6 d; [* V7 T. P5 ]
          'not_found_in_trash' => 'No site-wide notices found in trash') h1 l* q& w  z% b" ~! Z' h% u
      );
! x$ W: G5 C6 [6 V# h7 g' T% r8 Y- n) q- S1 ]; V" i2 \; K' ~
      $args = array(
4 a( K  d  |! {- `: X9 [          'labels' => $labels,! r( M$ I4 K$ d" T4 O
          'public' => true,( i: j2 G1 [  Q% |# E  G
          'has_archive' => true,% u% F6 h- u- D
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
6 g* }$ R1 |  e  }2 W          'taxonomies' => array('category', 'post_tag'),: g: h2 B7 F. f- P
          'menu_icon' => 'dashicons-megaphone',; W$ l$ u5 z3 b' U6 s% V) |& X
          'menu_position' => 5,
$ E. g  R3 S* m  M; D0 m" t* ~          'rewrite' => array('slug' => 'site-wide-notices')4 D# i9 T( ^4 c0 D% `0 F
      );* j+ x/ ^7 L- M

& ~6 P. K" \  g0 F, a$ M0 O      register_post_type('site-wide-notices', $args);
8 h5 p3 c7 E1 ~  N) d* b1 X   }
7 N. T( t4 x' w% Z   ```( R) V, |# U. @# A& Q& z2 }

& F1 V7 V2 B' f$ b; s1 c   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。: Q8 k0 B6 B, k" @# h- _5 c3 [
. J# \- s) ]; h0 c; x$ h
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
1 _; n: w6 j1 Q! W, ]2 ?" {. M6 z6 d* M  W9 e1 ~
   ```) S: y% B* ~, ?5 G1 E
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');! B: k9 i+ T' A' n
   function add_site_wide_notices_boxes() {
3 r6 L; R- Z9 X9 R4 F( F: M/ T      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');) @+ W6 Q+ d* N8 M- l( `* a! r" [
   }
+ ~# i/ y/ B) s0 l5 L8 @
7 \" P9 p, R4 ^* U6 f" Y0 ?   function notice_details_meta_box($post) {) Q$ R/ q" E/ U* }6 p3 T  j6 D
      wp_nonce_field(basename(__FILE__), 'notices_nonce');, b- i/ V0 K$ ?4 R
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
- g0 B3 x$ a8 x# h6 w/ L      $notice_content = get_post_meta($post->ID, 'notice_content', true);& e$ Z$ v5 o* F
      ?>4 A/ N0 a1 D8 }9 Q- c, ]9 g
      <p>
2 P6 H& O" Q9 b0 Y4 b7 q. ^          <label for="notice-title">Notice Title</label><br>3 `) z8 {+ Q1 S5 @0 a* P# v) h
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
& j  Q8 X4 H+ s4 Z      </p>2 |+ ^0 x9 I2 }0 ^+ d! s$ V4 L
      <p>
: `+ V; E4 W4 `4 R1 R) U          <label for="notice-content">Notice Content</label><br>) d1 T' e1 c) y+ o& W
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
: Q: b" g3 j1 s) T( x: a      </p>
+ X) `$ y* O# T( E      <?php7 G/ F' h  a  U5 }4 ^# k, V' N
   }
! U3 a1 |8 q0 s7 l9 k) U* J# F, u9 t+ d# J. d
   add_action('save_post', 'save_site_wide_notice_meta_box');3 j- ?; `( r8 L; \& s
   function save_site_wide_notice_meta_box($post_id) {9 ^$ F$ O( f, ]4 e+ ]; z
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
3 Z4 ?: x" K2 w9 ?) g4 V" k* [         return;  l! `1 o5 ?7 n' y! g
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
* n8 L; ~7 ~1 p; I8 g. T7 W         return;
: z2 D9 P6 s/ F; T  Y( u$ x0 d# O& }
      if (isset($_POST['notice_title'])) {
, }1 @& I% L) q9 M/ V6 ~5 a          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
8 C6 B0 Q0 s2 p" X      }" ]( J6 o/ o' f- U( \1 k
      if (isset($_POST['notice_content'])) {
  P) p5 Y/ T. Q7 Y9 m; i) }          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));, ~1 B1 n9 ]8 N5 j3 s, J% A9 K  w# x5 [
      }+ H+ I  f- o: |. `
   }- l& j6 M, ^- M; O6 K
   ```# Q" l$ ?( ~6 G
! w, f4 P+ @1 r5 `$ o, z
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。% k8 I7 J- O, _" H+ ~

& \( q$ X0 d: d3 ?5 q4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:+ G" @+ T" Q) J9 \

# g, C: c, ^( z  N. a7 h4 d0 M   ```
: C6 C( Y, G* ~# D4 h- D* w   $args = array(
7 i9 P# ]# B0 F0 V# s* Y1 |' E& R      'post_type' => 'site-wide-notices',
3 d' u" e, I. C4 ]      'posts_per_page' => 3,
! U; l9 _" ]! x7 z% p9 E2 K- N. {      'order' => 'DESC',
0 l5 `+ L4 l6 y8 F; P      'orderby' => 'date', ]( X7 p6 F$ S; |& k1 [
   );
1 A# @! Z' ]9 X   $query = new WP_Query($args);
9 ]0 D) s6 ]: O/ @   if ($query->have_posts()) :
5 z# Z: G  p0 U9 N      while ($query->have_posts()) : $query->the_post(); ?>: G; Q4 }5 D8 g; [
          <div class="notice">/ z& u5 U7 b, ?5 s
              <h3><?php the_title(); ?></h3>
% ~. E" [6 B7 ?. i7 m% |              <div class="notice-content"><?php the_content(); ?></div>
5 T/ q" `7 s" O: Q& W1 C* B2 T6 I          </div>0 ^  L' g% d, ~  U
      <?php endwhile;
. ~$ D0 h3 a4 l7 r: B      wp_reset_postdata();
' D; X* G! g4 I5 I$ i5 n   endif;
% ?- R) j% S: \- [   ```
# ], C! ^+ G% D4 V* V) h+ o' A% P3 x! T& h4 [, r( P, s8 p8 _* Q% n; U) E
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 00:31 , Processed in 0.076376 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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