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

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

[复制链接]

338

主题

520

回帖

3458

积分

管理员

积分
3458
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:% p& g9 F/ y9 N; j

$ ^% C; b9 z) m( L7 C' p+ n& E6 X1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。0 q( P0 F7 M  V' o+ s% y

% h$ w; z3 E# M2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
1 J7 G0 A- r. P* ?7 W6 s1 p- B% {% Y" S& p2 s& i) X9 A
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。6 X, p& L; z+ H) q- M* V9 R4 b
/ b0 y+ f$ H8 \' i
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。3 j0 w! P7 ^* {6 z5 r1 C( D9 s
0 X) s, L0 a% Y: z
注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

520

回帖

3458

积分

管理员

积分
3458
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?1 n( [( Z, b) x% j. z* w3 L

& y  K. b; s5 z; n5 J7 @- c如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:0 a1 e  b! X8 S/ e2 t- m+ n

- X- R& U$ F6 ]. t0 S! s0 h0 B  f+ ?9 K1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
; V  n- E" t) a& b9 y- @) I4 C" G( W+ M4 c$ u* Z, M6 ~! p
   ```' F% }, `8 r& Z: C
   add_menu_page(; r7 h' X4 s' [7 h
       '全站公告',4 X8 ~: Q5 }, ^$ e! b; z/ S2 N# \
       '全站公告',0 E5 q/ `) u0 n. Y4 D) G' _
       'manage_options', //需要的用户权限
7 z/ Z% D3 N& q$ y       'site-wide-notice', //后台页面的 slug
* v# D- a( s: L3 |4 }       'render_site_wide_notice_page', //用于渲染后台页面内容的函数/ E; z. T' A* i4 O* W
       'dashicons-megaphone', //用于显示在菜单中的图标
' u0 U" j( }" y; N; e       30 //菜单项的位置
2 P- H7 m2 D5 N1 j& a   );
6 w# L! `9 w, h3 \3 f+ N8 z0 f   ```5 u8 w8 s- A$ s& m1 @8 j) R
! K' R! C! r0 q1 y; d- B' S
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
6 q, p6 s, F' G& @7 Y4 }: b( q: r7 ?' `* Z, Y% u: l# q, S
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:( a: Q$ Z5 c0 [# S. G  x! r

* d$ v* H, o  g5 j   ```& B2 V& a9 R; {' p6 Y2 X
   function render_site_wide_notice_page() {  O5 D- j5 C' m' u: _/ U5 g
      // 渲染后台页面内容
) O4 T/ C) q3 k, G7 o/ X5 x/ q  |      echo '<div class="wrap">
1 Q6 |, ^# \- l0 d0 C* j          <h2>全站公告</h2>
+ Y- F5 P4 U. H3 ^/ ]7 S          <form method="post" action="">
0 _0 y  {( q3 y              <label for="title">公告标题:</label>2 o& F1 i5 Q/ s/ y$ f2 Y
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>( B5 L8 U) b% \
              <label for="content">公告内容:</label>
0 [# p$ O7 M8 \( ^& [  j: @1 {' c              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>
8 x3 z9 p. Q  y, K; @) Q              <input type="submit" name="submit" value="保存设置">  Q5 U$ U+ b1 z3 P8 M' j
          </form>
( a6 [+ h& B( b0 U: w/ B      </div>';- k; V, Q; _& M4 ?( v

0 o, Q0 \5 q, T  I) K      // 处理表单数据
5 _+ T1 x  C" B( u2 W8 ?+ u      if (isset($_POST['submit'])) {! g. P/ u; h. E5 V+ n
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
0 i& C( R3 h! `- a# W# B          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));5 h& `( @) ~0 \6 b0 Z0 X
      }
: ]- i. I$ X# H; E: d   }
1 d  k/ X( U- @9 r) G% O, b   ```
) R: a  q8 z' }* _7 [. ^8 T; c% Y" e1 O% W; D# i+ v
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
( _1 P% n2 y) _* c& O: t4 V, ~2 K8 g% E" j! h. l
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
# r0 d2 y/ F1 C  ?9 t3 H5 L; F" Z7 q, J, V0 ~: t
   ```
8 Q" s" `+ @. [& D' C, ?   <?php2 n& f' V4 c% U, l0 C8 E: p
   $site_wide_notice_title = get_option('site_wide_notice_title');+ d% `0 I. i: X1 `5 b% j+ M3 D5 Y
   $site_wide_notice_content = get_option('site_wide_notice_content');/ O( M1 t- U8 l9 [7 V5 f& ~! D' d
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
- d; L3 N$ p6 {/ s3 w/ f0 H% L       echo '<div class="site-wide-notice">';
  r5 U$ V1 F6 m/ u9 W8 |# y2 G- O       if (!empty($site_wide_notice_title)) {+ v" }0 C, I7 C1 {3 D2 i" A- B# o
           echo '<h3>'.$site_wide_notice_title.'</h3>';
" Y3 G. n- Q4 A+ n& z- z       }! N% N  x# F4 [" W" y
       if (!empty($site_wide_notice_content)) {& N6 q* G5 L1 ~4 l, @5 V* u6 c5 s
           echo '<p>'.$site_wide_notice_content.'</p>';( Q: G! U+ a% g( {5 i% F
       }
: x  d  L% V8 U' ?       echo '</div>';# H* V' Z+ V" X) S! j+ [4 l2 p
   }
4 F1 o% C) P2 ?   ?>$ V* w7 T$ x  y) W/ b
   ```
, E0 ^, I* L1 v* O! L
" o% |5 k. O9 W8 T$ J1 m   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
# I; q) k6 [# b
/ U/ F  q0 ~, q$ ]" e请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

520

回帖

3458

积分

管理员

积分
3458
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
, \# X8 d! ?' H/ _2 X' q7 |3 ]6 b# q" e: }
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
! j6 O5 h9 X4 J
$ c+ m  e4 R/ D( n; d1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
$ t! }- g9 A5 c6 |9 c0 Z$ \9 n, d' F
0 `& q+ {# }& W3 X% _```
& D; u; g. a) A9 d7 z7 q- x( Nfunction create_custom_post_type() {
7 X  `+ Z3 i) v3 F* K    $args = array(
2 V/ {1 |5 q  s$ l        'labels' => array(1 a  f) `4 `0 ?) L
            'name' => '公告',
: t* M* J4 ]( }9 P% @( V8 A9 t            'singular_name' => '公告'
. ]/ f2 y. b" }- ?8 t        ),8 G# C2 A9 c5 m) z+ K4 f. g0 \, `/ d, `
        'public' => true,4 h! o/ B' I9 ?' Q+ I! ?
        'has_archive' => true,
! W/ B, P* B: \* ]: N& ^        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),2 {0 c( z9 C& H+ D9 a/ }# D5 P' r
        'taxonomies' => array('category', 'post_tag'),* [7 i1 I- |! `. k" U9 Z; W5 t
        'menu_icon' => 'dashicons-megaphone',% h: q. X9 C7 u2 [
        'menu_position' => 5,
# r! }$ V% G/ G0 }' L) @' q: g: O        'rewrite' => array('slug' => 'site-wide-notices')# Q7 r/ A5 _/ N  r" M
    );, x( M  O; n4 F* w+ `4 o
    register_post_type('site-wide-notices', $args);
9 b( P+ a" X, s  |+ \1 {4 C; ~1 u}  Y; S6 ^. O; J% I. d, o0 G, V! H+ ?
add_action('init', 'create_custom_post_type');) ]3 q& x# W: }0 x& ^
```1 c9 \' l8 T* |# G% ?& B; K- W
  G; r- N; B. F2 e. F0 B; k3 W7 w
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。' j/ E. V& E; m) U
& [) Y5 u$ d, n. X: S3 X; d
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。& s. p" S. `4 Z9 S/ G1 L3 D, L/ B
# ]  K% P3 J2 |% i1 ]
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
3 N* P4 B" v/ [- k
0 f1 c+ ]' P1 l+ s```
. f2 K' U$ t/ H4 d6 X$args = array(9 o$ C9 e' i( z% I# Y* U
    'posts_per_page' => 3, // 显示的公告数量/ H- a) d; {) g* j( r" E
    'post_type' => 'site-wide-notices', // 公告文章类型8 E& ^! \8 D: H
    'post_status' => 'publish', // 公告状态0 M) l. s, C/ R2 J+ O4 }
    'order' => 'DESC' // 排序方式
$ ?9 V2 o# a1 a( p6 Q& k; n);1 l( U3 \2 c1 x. w" n: d0 o; I
: a' ]+ o, _/ h  U
$notices = new WP_Query($args);
6 g: t7 K, c( }& h; n- pif ($notices->have_posts()) :9 a* p/ M* x7 I5 S* I' v
    while ($notices->have_posts()) : $notices->the_post(); ?>1 S9 Y7 r% t& V# P' v2 b& h8 `
        <div class="notice">! ~$ ~; S. H8 q& c% w; _9 s6 q3 H
            <h3><?php the_title(); ?></h3>
, ~3 I8 P/ a) A0 z* K& a            <div class="notice-content"><?php the_content(); ?></div>) ?4 [0 [5 T& U' J$ b
        </div>5 r: K: H+ H! ~; K' Z
    <?php endwhile;
2 |" O6 U, h& Q- ]7 u8 b" celse :$ O9 c3 W/ V6 ~! j" z$ V
    echo "暂无公告";! a1 O; [. u8 r' k- B9 N
endif;
0 y& J. _/ a$ ]7 jwp_reset_query();3 Z* c7 \5 S3 I3 Z7 q! x- }2 b( b
```1 e$ x" ^' m- ]% E
1 w/ T1 Y( k+ P6 }! O
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
$ C' v6 H8 k/ L- r
: |7 j( k6 c8 X5 }4 r# G以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

520

回帖

3458

积分

管理员

积分
3458
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
1 ?  e) _" N2 F% m# C* W7 p2 [6 j- s' l
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。( Z8 g7 f2 e* I5 g
/ Y% |  R# J; n: Y# q
以下是创建自定义插件的步骤:
* l0 ?  t! a+ F0 t* U+ |/ u9 E7 Y$ c% ?! ]$ E5 m4 t7 K6 o2 L
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:1 \7 k9 M) o$ W. R4 p
: I1 O( u7 D( r/ K
   ```% [, `- z- r7 n& @6 [! u
   <?php
2 b- v9 P  ?/ b3 c: j   /*
! O: O8 P! q5 ^% {/ x! N/ K   Plugin Name: Site Wide Notices Plugin# r5 l) X( k. h' U
   Description: Adds a new custom post type for site-wide notices.
7 n  O/ ]- j+ @/ J% ~. m, \0 x   Version: 1.0
+ h1 |9 j; F/ z2 I+ M   Author: Your Name
3 R% V) S( E  z+ @4 r& q& a; j( N0 F$ Y   Author URI: http://example.com2 U; h% B5 a4 F+ e; l& A* r) I
   */6 R9 a: ?, Z0 A

7 N. _$ y9 Y/ [9 A5 M6 Y   // Add plugin code here...$ L" l, X5 h1 A1 C. o% E
   ```& o% w4 X8 T/ L$ X. Z+ X

/ R* G% k$ g* o1 H" T   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。$ p. ^0 c, l* i. F5 U* c- Z

8 ]9 |) G( Y$ _8 c& C2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
: n+ G6 z: r" ~  K  Q- e# C/ f( F7 d9 z- e) ?: _
   ```6 o: w& T' v8 F5 ]3 [7 u* x# v
   add_action('init', 'create_custom_post_type');6 D- q" P- m1 j& H2 Y* V. C4 ?
   function create_custom_post_type() {6 i" C9 O  Y+ K* H8 {4 l
      $labels = array(
3 b. K3 T: \# m# m# b          'name' => 'Site Wide Notices',1 h; w8 X" ^( e
          'singular_name' => 'Site Wide Notice',
1 E6 s! [3 p" \! w; m2 \          'add_new' => 'Add New',
& W9 q* y- Q7 P4 m& W0 I$ q6 A& J          'add_new_item' => 'Add New Site Wide Notice',
* s7 g6 o% q1 o1 ~. ~          'edit_item' => 'Edit Site Wide Notice',
; x6 J' T. m, |6 P/ p5 b          'new_item' => 'New Site Wide Notice',
0 q5 Y6 E$ v& V* W          'view_item' => 'View Site Wide Notice',! _5 |( |! |! S6 }; I3 [
          'search_items' => 'Search Site Wide Notices',
, D* t6 Y& N8 s          'not_found' => 'No site-wide notices found',
& [0 P& J/ K# r( U+ l. ~          'not_found_in_trash' => 'No site-wide notices found in trash'
! T" }8 y  f6 W  F: [5 Y      );
; [; m) {& l: c; j- a; {0 |
& H/ O$ e1 J5 `4 `      $args = array(# O/ o4 v- u& h
          'labels' => $labels,
7 {; P! f0 ?+ g; E! A, R- d! O! u          'public' => true,( o7 l, [& p! I' x' f& {( z+ V- E
          'has_archive' => true,2 B; L1 p* _% M2 |
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
; O# X! {4 f) C" k9 w' A& [3 g+ Z          'taxonomies' => array('category', 'post_tag'),# P4 \) f! q$ M7 [0 Y3 u
          'menu_icon' => 'dashicons-megaphone',
# a$ R, o, _% f% f$ \- k          'menu_position' => 5,
/ h1 x3 p3 B, K8 N  u          'rewrite' => array('slug' => 'site-wide-notices')2 a0 m8 q' ^$ K; W4 _! i% s+ x
      );! v" H. e+ s% X
3 K2 K1 U3 s" u; \: o
      register_post_type('site-wide-notices', $args);
, w$ C3 q: y' P+ r+ d9 Q   }
- s) t* o1 ?3 k& f1 q   ```
- _- u' d/ L+ e9 ]% \4 ~9 H3 k9 h: U! i/ `% k: v& g1 f* y! u& k
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。  H+ b4 ^" w+ q  R
& E$ y' r& c! ~8 E/ B1 ?" [
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:3 }& m7 a4 a) g" v* j

1 D6 h8 X* h9 U' ~  \3 l   ```/ Y0 c# @. v# q. N9 @$ O
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');  [+ n* L% H$ Q
   function add_site_wide_notices_boxes() {+ H4 I! S* _" Y7 \' i
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');& C3 L' Q; G4 d9 K1 W& i# v
   }5 o9 N! n: e% ~9 }0 D. X# }

! G) o' P6 x% c) j: z   function notice_details_meta_box($post) {0 P0 l2 I& [- G; A
      wp_nonce_field(basename(__FILE__), 'notices_nonce');) n: S# G6 [$ j( S
      $notice_title = get_post_meta($post->ID, 'notice_title', true);6 E' y- d% z* M: k
      $notice_content = get_post_meta($post->ID, 'notice_content', true);
, G$ J% \) @8 d' P( x- ~! \" [# p& _      ?>
$ V' L/ Q4 l) I      <p>
3 m, {2 u  b* a2 C          <label for="notice-title">Notice Title</label><br>
+ `, B, [; @" c0 i, I  s  y; ~          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">
" x9 [4 R. B* w4 S- A      </p>$ I' `' m$ ~* @- a" B" U1 Y4 b
      <p>$ |$ O1 G) t  v+ Z% b
          <label for="notice-content">Notice Content</label><br>
2 W8 I; _' |* }7 x8 {          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
0 |5 O2 u% ~3 ?7 o* @# \      </p>) S1 {9 L4 V" v, w1 F* `
      <?php1 x# q0 b% [8 l" i6 ]
   }0 y& F, K4 O5 t" }; F
- ?; I9 }- O( O3 k: C
   add_action('save_post', 'save_site_wide_notice_meta_box');  i7 X0 V. \/ b6 w' Z1 l8 R
   function save_site_wide_notice_meta_box($post_id) {; ?3 ~+ B4 C& D# w7 }9 v4 R; K; u" i
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
' p2 l7 Q" Q9 j, |         return;
( P4 o8 Y3 }. F, W5 E+ y3 m/ {5 _      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)6 }' ?$ R0 X5 X+ C+ v
         return;* g& V" \7 a6 G5 T  p( e4 Y$ [3 d
9 l& e, {* g  Y: k! F; A5 y
      if (isset($_POST['notice_title'])) {
' \, P2 \- _) |+ ^0 Z' A) u          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
4 Y/ a4 ^9 E5 X+ c( V' \+ O      }
/ I5 v' r* w; j& C3 q( t( B8 O      if (isset($_POST['notice_content'])) {/ p! l5 k. z$ r0 @# G( [# f5 u
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
3 C, L% q* o, U8 C4 a. O      }
* x+ s+ U( }( w* ~+ s+ O( [' a   }) H) m" H+ S9 P3 f5 G+ G! i
   ```2 c/ s2 J9 i1 ^+ b. Y
- d/ r- h6 T3 H4 ?4 u: |2 ]
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
: x6 E! G' l4 ^4 E& L
! e( G1 t' p, R( j* Z& x" t4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:( Z0 M7 R$ E6 o8 q

( h( Z7 v+ O7 q( S7 j   ```3 G6 N/ X9 X+ j/ f9 _
   $args = array(
5 I& j7 Z& d( g. D      'post_type' => 'site-wide-notices',
8 ?+ C% }! U) g. N      'posts_per_page' => 3,
; h  }2 y( r' k      'order' => 'DESC',
: X) [2 N" I) u4 w/ O- Q      'orderby' => 'date'  F5 t% i$ T/ E# C4 U3 d
   );
6 A3 N, A% \5 W( w   $query = new WP_Query($args);; W2 J, s6 _9 i! c  K/ a( M
   if ($query->have_posts()) :
5 T9 M0 C8 C& F$ B- s      while ($query->have_posts()) : $query->the_post(); ?>
% a/ n* e. |! j7 A- F& _7 r4 Q          <div class="notice">
- s1 R/ O! R; Q              <h3><?php the_title(); ?></h3>
3 |# k: g" W2 v% s2 p$ N! I              <div class="notice-content"><?php the_content(); ?></div>
" d8 n+ x: a1 ^' |          </div>& w3 E' J3 F* B9 w1 j  ?. M
      <?php endwhile;
: j( S( I: {. b1 z+ c      wp_reset_postdata();& r+ x1 i3 T2 J, \  S; D7 @! ?: V
   endif;6 W0 u" p6 g% p1 i- P
   ```/ L3 |1 ]+ r9 o
' Q0 r/ J' C; d
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 18:37 , Processed in 0.015701 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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