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

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

[复制链接]

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
( t/ A6 P0 v3 P& p: L
: O! M  `" z  d% S( E6 R) e& q& Z1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。" u) ^& \8 t4 V1 o

" V% M% b$ d1 y1 L7 b4 \2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。3 S/ |) o4 N! R- I% i

/ E" B: ?5 F$ r: g3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。$ x( |0 F1 Q) n& P/ Q7 `
; N8 a' J+ f# S) A+ Z  F$ [. T
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。3 T% \2 _7 t# C

0 }  V4 p. a% N/ l4 G' i- h) l注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
* S4 q" X, Q8 e2 M- ?7 w5 E, E2 R  D" Y5 j
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:4 K( z. G8 I  J+ Q- _
- g: C  N* H& U
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:1 ~8 {+ s! V7 G' p
; h$ a8 z( Y  b5 e/ [4 K' N4 L/ L1 Z8 d
   ```1 J( z' ?* v5 ^
   add_menu_page(
, A: T0 u  |/ @/ v* O, j( o! l       '全站公告',4 W/ `. e5 ?! N% |* C/ p# H& p
       '全站公告',
! [. {0 n$ G' p( x       'manage_options', //需要的用户权限& B" C) s2 t7 [4 H  @
       'site-wide-notice', //后台页面的 slug
, _2 L% J" C1 b  a+ P' `2 Q       'render_site_wide_notice_page', //用于渲染后台页面内容的函数) x/ `" {' B0 w& Y5 {. a
       'dashicons-megaphone', //用于显示在菜单中的图标, U# `( t4 y6 R+ m: }% K: U! _
       30 //菜单项的位置7 F1 M; {- v0 _, ?
   );& x+ o) m! ]/ ^9 z# Y+ a: {# \
   ```
! W" q0 F0 d) A+ F) B7 }* p/ k5 \  c; x5 x2 j8 a
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。1 W0 n% I5 a* [+ U, m  s+ i

: e" `; {9 q2 L2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:" A. L* D5 z' J8 d5 D7 j
' g. O; e  h' F+ d9 b% t" M( Z
   ```
$ F; z2 ]: U- o   function render_site_wide_notice_page() {
- a1 V+ U  D6 F5 \0 r      // 渲染后台页面内容
0 }1 |) g0 b4 |( c      echo '<div class="wrap">
8 ~: q6 P+ ~8 `          <h2>全站公告</h2>/ P1 v5 p& Z5 [' ?$ N0 {  K
          <form method="post" action="">  E! s- ~) Q0 Q0 o! P0 N
              <label for="title">公告标题:</label>+ `: h$ v+ f  k' ^+ Y
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
4 f8 l/ f, I4 o+ J6 ~! H              <label for="content">公告内容:</label>
$ `& L& x$ Z5 ], g* |  q- w              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>, ?: F4 P6 A. y, c9 l- F% e
              <input type="submit" name="submit" value="保存设置">
( K' p7 a! |$ C          </form>
4 F, m& {4 Q: a3 t      </div>';
" S( d6 h5 ~; @9 n0 q! a: U! R2 |0 l- ~' g/ }
      // 处理表单数据: e5 P3 a! e. u6 j+ E
      if (isset($_POST['submit'])) {& j( ?$ P& V6 R' ^" D" d3 ?$ u( P. i
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));: g; M; R$ G4 ^& d
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
3 q' `, z$ N: S- w1 l0 }! Z8 Q) `) i      }/ }  k$ B9 N0 O- A! y1 X$ N0 W0 G* o% J
   }3 j1 y5 w+ H" }5 h9 ~+ n
   ```/ f& F1 Q: l8 l9 B. `$ p8 v
0 K9 ~' a- J; L" [: M+ J- {
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。: r$ j5 i, |- {5 k3 o' t" L: }7 }

  @/ w% m. v8 Q4 A3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:0 j+ U* b9 g! a1 P5 e/ o2 x

  l1 K& V( e9 a3 t) z5 Q- k6 y   ```
9 {7 L7 v+ V" J; o" s, }* E- b   <?php
  c* z  T4 I% x! j* p8 I   $site_wide_notice_title = get_option('site_wide_notice_title');; b! {4 T+ i3 f5 b; Z/ d
   $site_wide_notice_content = get_option('site_wide_notice_content');
' \# y- @# \6 ?/ E7 Z. L   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {& n: j5 l) H  J
       echo '<div class="site-wide-notice">';
9 ]  I0 ?7 D- P9 d; h) P       if (!empty($site_wide_notice_title)) {  L6 X  `2 Y( ^% B+ E1 U
           echo '<h3>'.$site_wide_notice_title.'</h3>';
- O6 O# v/ w/ w' l8 o       }
( A. q, z. L* h( k4 U; D       if (!empty($site_wide_notice_content)) {0 e5 r, K: }! f) C, y; u
           echo '<p>'.$site_wide_notice_content.'</p>';
  [' a' S& }% B% @       }
2 v6 o: j- q, D& j       echo '</div>';
; V2 K- |  b" a$ S5 J$ b. [   }- |5 O/ C# x7 L# A
   ?>
- ~# D( a( |- ?6 {0 E; p* u   ```5 ]- S% b. z% `7 F) c) C
" C- ]+ f7 ?" j- e9 J/ u
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
1 x) L7 j. H/ g& K
2 q  s. ~3 b0 [2 D- D1 [: Z请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?* T* p# w5 q1 c7 T/ W, v5 g; v
, D3 B9 I2 h+ z8 e6 D
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
/ {4 w  i- v0 K4 c0 s% U. L: s6 f# @7 W: X) |/ Z, y- _' h
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:) ^0 H% B% n" `* |  o3 C- Q. T* L* F% ^
+ E8 t6 s7 \. R+ K% m& _' T
```
% ]$ B! p( |" |/ ?; @/ \6 L; kfunction create_custom_post_type() {
) _3 K' G* [* C8 _$ @4 T7 @0 f. v    $args = array(
  c2 d7 c2 Y0 Q" N# z        'labels' => array(
2 u4 h" z  F5 S' p  i# P2 K            'name' => '公告',
/ y8 h$ j! z/ O& N( S) v            'singular_name' => '公告'
: u3 E0 i* s# A$ G. W2 k+ _* `        ),
! [0 P( x& I0 t2 r5 y. n. \        'public' => true,
+ t( c% G: ~4 D4 L) ]        'has_archive' => true,, a' x( {0 p4 \
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),& @& K0 N0 z- h. k
        'taxonomies' => array('category', 'post_tag'),2 g( L2 w( p, _4 Q, v- W* R7 a
        'menu_icon' => 'dashicons-megaphone',0 w/ X- A6 Q# h2 m  h6 h' @
        'menu_position' => 5,! z) I9 q% c4 x7 t2 X  a6 L
        'rewrite' => array('slug' => 'site-wide-notices')
. T3 O* W% f" K3 ~/ I    );  h! D; o' x' V" c  t. u
    register_post_type('site-wide-notices', $args);
, s5 h8 ]& T" _4 c) o: E* O}
) J+ m  p/ a( Ladd_action('init', 'create_custom_post_type');
' Z4 F1 E9 R; M2 ^' t$ P```+ J2 {2 X  R$ {" [( F$ F2 g
* R' G+ ]1 O7 c) B5 B% j! z! [
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
0 ]6 }3 \, C* Z+ {! `6 `" I; a
4 h! Q  g( f: M  k$ Z+ O% j! U! k2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。: }9 E; s. ~  `+ `- ]
5 Z  c0 e/ D+ O2 e* Z5 A& ?  h
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:+ d: t; g7 ~' m3 b! Y4 c: g# M
& Q  Q6 I+ J6 q- f' a  e
```
$ X# M4 k  \  T! _3 v5 Y+ k$args = array(; s" j; ]. q# [& N0 z
    'posts_per_page' => 3, // 显示的公告数量0 n* u  C, F/ X; N/ M
    'post_type' => 'site-wide-notices', // 公告文章类型" U! ]9 _' V# \8 U: l- |
    'post_status' => 'publish', // 公告状态
! m9 [$ y( b' u0 w    'order' => 'DESC' // 排序方式0 o0 ^. L  F- d; R
);
1 O6 {) ^# T5 ~% ~/ W0 S$ W8 }! v* y+ S4 K3 |( X! i8 D7 d
$notices = new WP_Query($args);
  S$ M- i3 A- v! Q$ yif ($notices->have_posts()) :- w* p$ ~6 n/ q8 W. @
    while ($notices->have_posts()) : $notices->the_post(); ?>- S- f( ^  Z* s, ~
        <div class="notice">
- Z- R2 a+ x( a            <h3><?php the_title(); ?></h3>* e& R6 O9 Q4 C; O5 Q  ~
            <div class="notice-content"><?php the_content(); ?></div>1 o! r0 H, n$ ^: e& N/ x! ^! b
        </div># L% _* m, T% n! c) p' [
    <?php endwhile;/ @# h  N( ^9 K+ \. B' v
else :1 W* e& |  Z5 I" b
    echo "暂无公告";: p+ |" j2 E( O, g5 t7 e0 S: W- u: D$ p
endif;) v  c5 O# w* v0 v$ N3 K
wp_reset_query();
2 U4 [! E5 p% x6 ?( }5 T```
. P* }) q) A% l( l
, C% N6 @- b& n* `7 r1 U这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
* _5 i7 k( U+ j, s$ R# D+ @# y; f
) @& W( N3 r# t" W/ I以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

522

回帖

3502

积分

管理员

积分
3502
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?7 y6 s6 Y" i' T3 E3 J* p0 ]
8 e" c/ o: ]& V/ k( ]) ?
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。; \6 K5 H, G6 Z! U  P5 Y3 S0 P/ O
. x( u2 j' Z( k- N# ~& D8 w
以下是创建自定义插件的步骤:7 i( P7 u. R; u# |7 @
$ ^( U+ z" _6 e6 `% A: L
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:$ \) d7 q* U' d2 V2 f: S5 m" z- W
+ \3 j% _; m% S1 v% a. [
   ```3 X3 b; E# l* t4 K, W/ c
   <?php
) \7 ?4 K% l' K4 d* z  G5 J   /*
- E& }/ q. a# }. K1 ]* b. b7 z   Plugin Name: Site Wide Notices Plugin
- K2 e/ X& w6 e% k   Description: Adds a new custom post type for site-wide notices.
& T7 p' d9 P* Y" W   Version: 1.06 D* ?2 R% k7 Z
   Author: Your Name8 \5 r3 [  z' K' h
   Author URI: http://example.com- R1 [5 [) E8 y" h
   */
* i/ {* M4 E( Y  l# y! o
' A. f! ~+ Q, z! M% y& x/ K   // Add plugin code here...
$ N$ C0 j- r/ H, e# y   ```
) H1 ?8 l2 ?2 m/ X' N8 y
, c) E# h, g" ~   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。/ @) W2 @5 W. y) C% Z

& `: j( F0 {* F: H- v, ~, p% A2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:2 Z! q4 Z% G. H; H0 V2 J+ z) h8 S
; k! k0 P' t' g! D- {  F) t
   ```
- ^" g9 k' f" g% h, t$ {" ^/ X% y" Q   add_action('init', 'create_custom_post_type');
# D8 @4 H2 O3 F* K/ I$ T, j2 s/ A+ R   function create_custom_post_type() {% A4 f( b# s& W; R; o" H3 A
      $labels = array(, ?3 X/ ]/ Q9 T, @
          'name' => 'Site Wide Notices',
: P" ~5 b  k7 m% y  @6 p3 @3 [          'singular_name' => 'Site Wide Notice'," ]5 U0 h. Z6 |! V7 ]
          'add_new' => 'Add New'," @$ w1 k9 K5 C2 e9 q
          'add_new_item' => 'Add New Site Wide Notice',
+ w6 v$ e6 m! s) Y          'edit_item' => 'Edit Site Wide Notice',
: C# y. C5 l3 u) ]3 K% p" m          'new_item' => 'New Site Wide Notice'," p! m& \; r9 q" v) K! d8 }$ g- G+ B
          'view_item' => 'View Site Wide Notice',0 z$ G- b& m" O* {9 r
          'search_items' => 'Search Site Wide Notices',  y8 y* L" D# K* U/ @' Y5 S* E
          'not_found' => 'No site-wide notices found',
4 j) l* u) X/ q! o7 _          'not_found_in_trash' => 'No site-wide notices found in trash'
" o- }! _# P  g4 Z      );* e: A" \; K9 ]# I! B
5 u6 h5 r" C* ?
      $args = array(
) O6 R5 I1 u4 s0 F; U- u6 i          'labels' => $labels,5 X. h2 y! E$ |/ b9 N# U
          'public' => true,9 |% N" k- ]+ R* T. W2 f
          'has_archive' => true,% W! C6 a0 p$ ?7 B% V0 E7 B( j$ g
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),3 x* ?) f9 r9 f; u: ?
          'taxonomies' => array('category', 'post_tag'),2 A" W0 v" X/ r3 b& v: L) a8 x, j8 V. P/ P
          'menu_icon' => 'dashicons-megaphone',
0 q# V* h1 W( N  Q* G1 g( [' Z# p6 u          'menu_position' => 5,/ W8 C  y7 M! X: S
          'rewrite' => array('slug' => 'site-wide-notices'), }* u) |( W- j+ I
      );
9 X6 r/ Q" s; s- R+ p6 ^; Y& r* C5 l
! l' W2 e& D* `7 j. ?8 i5 c      register_post_type('site-wide-notices', $args);8 a3 |3 y" M. m  S: e, @8 y
   }
2 }. i) J& d- V2 A   ```
9 k/ {+ ~6 T! u" j* Q5 ?2 Q. }% S% ^" a9 w/ J" v1 i& @& F( p
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
/ l# Q' H3 Q/ _% t
* d# P! W/ a, c3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
  u2 i6 `6 B( Q" s9 W+ F# z; M9 W2 B2 Y; w/ ?' S; u. w/ T
   ```
, M, j& L1 I3 \, Z% [4 v   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');3 q  @4 r: x; x& `4 a
   function add_site_wide_notices_boxes() {* o/ f7 |4 o& b% M1 j6 T5 _
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
3 B( c7 W* `' |# a& r; y: S   }
, ?! j( O% w* x/ |
# f& [8 k1 N- T2 B0 U4 Y% _   function notice_details_meta_box($post) {
, U8 f7 `* H4 Y( l9 i$ V3 M8 j      wp_nonce_field(basename(__FILE__), 'notices_nonce');
' B3 R7 ?: m+ `      $notice_title = get_post_meta($post->ID, 'notice_title', true);
9 d+ i; c! b, D$ {      $notice_content = get_post_meta($post->ID, 'notice_content', true);% K* A3 r( R5 M/ U9 A! h
      ?>
- \3 b; j; u& E      <p>
3 ^# B4 [1 Q3 Y+ H          <label for="notice-title">Notice Title</label><br>
/ j% T+ N- C5 Q- o$ }. }( E          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
) }) Q2 ?2 h/ t2 v1 _      </p>4 E3 {0 u1 ?/ s8 f, t
      <p>
1 L" ]5 l: b2 \          <label for="notice-content">Notice Content</label><br>: E) S' L, b, Q1 E; i$ D; m
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
$ c2 u0 y: e8 Q* H7 a) m      </p>
6 J* @1 u- Y6 E7 [, t9 [  W      <?php  k5 E4 T5 u2 G. L) a5 w. B
   }
& B4 m: P& ?* M& D0 O; X5 }( p- `1 U/ b  N) U" s* g. e/ ~
   add_action('save_post', 'save_site_wide_notice_meta_box');
/ B1 ]. A5 H; B, `/ Y   function save_site_wide_notice_meta_box($post_id) {  w! h1 R' f4 B2 Y/ @$ k- S
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))2 Y+ v6 x/ z: G
         return;' J5 \6 p3 |5 h7 \! t) b' }  n3 |
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)- {: v: t' P6 n+ F3 o
         return;
0 L5 `/ C4 b' k: g; o0 r, W  ~1 x2 }, w  o, m& b( A& ~1 P; _
      if (isset($_POST['notice_title'])) {" P9 P/ ?7 a; r; u9 T+ l
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));7 x7 E! f5 w! C" i
      }, j- }" |' i; X0 r8 o, L$ H
      if (isset($_POST['notice_content'])) {
* W- u9 E4 E+ I) q: i5 d          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
/ `  u3 f+ `, X* X, [6 o      }
6 t2 v8 e- W9 W& H3 z   }2 D, [$ F$ F  ~- N1 O/ c
   ```) M. B6 n, c- `$ j

& X# X) [) Q9 C6 E4 P* Q   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。- F2 O/ K) h2 n

4 _) F/ K( [; r  L$ C) k) }0 W4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
$ U7 [7 B. v9 l+ }& _5 S/ P4 O/ |6 K. c$ N
   ```: B- G7 [2 m/ F+ v+ H6 P6 h
   $args = array(
( Q# T6 r4 q) o      'post_type' => 'site-wide-notices',
8 s2 v; M$ p+ X" M5 ~6 s/ ~$ q      'posts_per_page' => 3,
+ Q% z) x3 p3 q) }$ P7 }; a4 t2 ?      'order' => 'DESC'," \; }. g; z% L7 K
      'orderby' => 'date'
$ G0 s$ m: y: s( i. U7 c   );
" w1 J2 e0 r0 d( e5 A7 M4 B   $query = new WP_Query($args);5 Z8 J- o9 P3 G  V1 p+ f
   if ($query->have_posts()) :# `, i# |: l. @& c1 {4 F0 D' e
      while ($query->have_posts()) : $query->the_post(); ?>. g4 N# A8 d/ m! k. Y* K
          <div class="notice">
: n3 m5 ?: t; T5 U# u5 O, y9 e              <h3><?php the_title(); ?></h3>
/ e- t2 Y" m% t! [0 w1 l1 ]4 \* n              <div class="notice-content"><?php the_content(); ?></div>
: r# U) h7 p/ ]6 m% ^          </div>
5 e6 I/ h2 V' h7 k  j( r1 s: I; y      <?php endwhile;! d' V8 r; z4 h, p
      wp_reset_postdata();
+ s2 h8 _( f  T: K   endif;8 c; z& Z( Z1 N# ]8 j
   ```
, n3 o/ [1 d3 R0 D" I8 Z# `. W+ R( g" B. P
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-13 23:25 , Processed in 0.012273 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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