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

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

[复制链接]

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:! U% T; |% ?. [

6 Y% Z1 @. v0 \' S# G% O; O1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。/ g6 X% g' C6 Q2 B3 c$ u6 ~: ]( ]
! U* Y, B; I. g; a, u  z$ ~+ W
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。; V4 J3 R; W, x5 H+ w+ w
" f  x7 {* C$ Q% b+ b3 w
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。; P) R9 y# W0 R, R' q
7 p! @+ J9 n7 n: f( Q
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。* b8 W9 J2 Z7 e, L

  I! u  ]6 n, Z注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
6 N, i0 ~) R+ c7 b/ Y# M: m! B- {/ L/ k3 {% ]- i2 M5 b
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
! {; w8 N3 S) T2 v; V. t5 C
3 q# B+ W$ F1 `; h+ E0 s: P1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:7 R( h, Q1 I2 n# D- {$ }! j4 B

5 _( Y" c$ I+ e0 n* A4 y- z+ T% L   ```2 |5 F5 J/ \  Q
   add_menu_page(
' V$ V9 t* Y: B  I8 w" j% a       '全站公告',
% }6 y" ^2 \, e       '全站公告',
  A) n. n$ p% x: A/ G       'manage_options', //需要的用户权限2 F5 [( M, {$ P
       'site-wide-notice', //后台页面的 slug
$ ~( k3 B- t, X. s; T       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
( S2 N" J2 ~1 W% ?       'dashicons-megaphone', //用于显示在菜单中的图标
" C$ y' d8 u$ q' z$ v9 q7 U' w+ [       30 //菜单项的位置. w  s; q3 {, h! Z
   );# A$ a$ _) H% D, C
   ```
2 _9 t- I" W1 O  Y
9 L: j4 g8 o3 k( X( l   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
) {! J+ F: S5 O3 p5 M2 t6 o/ t) {8 S2 B3 U( Z
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
/ e+ k% E, \, ?/ W& R
- J% I, W4 K" s/ c( S- U) T6 ]9 P   ```
; l4 W2 {( i' ]2 m   function render_site_wide_notice_page() {1 j5 d6 I7 |4 g9 y, D
      // 渲染后台页面内容
! S4 J  k2 B/ d3 B% j- _      echo '<div class="wrap">
" e# G8 C1 s8 l, z" C# m          <h2>全站公告</h2>
& ]  X2 _! L) m$ v$ v9 R          <form method="post" action="">
) S- J) Z1 A% x+ K# B              <label for="title">公告标题:</label>2 \9 \  I$ A4 D/ Y; w1 u/ H$ b
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>
0 z) `" ]$ F/ B# e# d6 {! R$ }/ L              <label for="content">公告内容:</label>
% t9 x; ^5 r: a' ?              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>+ `- [$ f2 e4 b/ ~) d
              <input type="submit" name="submit" value="保存设置">. X0 F1 z  l% c) U
          </form>
9 b, V# g" \' V) ~% m8 v* \( I      </div>';
8 i3 X; x8 c6 d( O1 I7 s/ n3 f* o# o9 T( H! E6 L$ R# c' e
      // 处理表单数据
5 y' a4 |9 z# b7 ]' P' c' u      if (isset($_POST['submit'])) {
* T( Q) Z- i9 y% ]2 X) }2 F) s: N          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
6 A: h- {+ q2 ~          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
7 V- }7 _. Y+ ^' p, v% g( f      }
( _6 P+ l+ ]$ W7 [1 e/ b   }; H! E1 F/ w6 t% K- d% e) K$ c
   ```
- I0 ~, m6 t6 Y+ R; T
* [& O* i& _! l8 t6 d1 ~   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。4 z- R- n8 \" n7 R5 ~/ p
9 e( X# W% U5 W$ E5 o& D2 i1 w
3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:
% c- d) E6 X/ K: [
; n& ^" T4 n( ~) b/ @( Q   ```
8 a0 n6 l3 F+ D: d1 u   <?php
& _9 {2 L, L4 K) t6 o: Q   $site_wide_notice_title = get_option('site_wide_notice_title');
$ I! W+ g6 J: r9 p! o+ T/ _0 f   $site_wide_notice_content = get_option('site_wide_notice_content');+ ^$ m7 t; v8 X9 F5 R: I
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
5 m5 W3 C' f2 g: r7 G; v. R       echo '<div class="site-wide-notice">';
/ R  s; t/ h  t3 B" Y       if (!empty($site_wide_notice_title)) {
; L8 `. Z; L* {' Y, S0 T; e           echo '<h3>'.$site_wide_notice_title.'</h3>';
' @5 M2 B3 J) d       }
0 Q  u! a2 P% k, e/ P$ Y) G5 A0 x       if (!empty($site_wide_notice_content)) {+ b3 b, B2 F9 \5 n  c7 i7 S- L. m4 Z
           echo '<p>'.$site_wide_notice_content.'</p>';' t$ @: R1 l7 P7 F" s) O& b- s( B
       }  m% b( ]" u6 R8 p
       echo '</div>';  B5 j% h8 v% O: z% Z. m
   }
4 J, T- K+ y. L3 s  _   ?>
4 r5 m9 X6 ]! O  G3 v9 I# Y: x& _   ```
4 d! J' M7 X+ D/ D+ ^+ z
$ Y7 w9 f* ]$ v: @   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
. ~! e* S; z" H+ Q8 l+ k* m) v) w
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?: ?9 q5 v& ]3 B& M- f

1 s8 ~' |5 m9 H; {: {您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
1 ~5 p0 ?) u) m; t0 z0 V' c
: S  M1 g9 M% N" x1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:4 N% A8 B4 l% `  h# T5 d1 j6 G

( d4 ~/ ~+ H- a```2 J$ F! O8 L) y* @/ a
function create_custom_post_type() {
2 P% U0 F  g# R    $args = array(* `0 i4 G3 u3 N, n+ j9 i/ o
        'labels' => array(
: G0 B( I& p, U- l( Q- u            'name' => '公告',
- O  U! }1 E  L5 c( [) ^9 N            'singular_name' => '公告'
# ^8 J; P, f. e# \        ),: e* c1 z- F. M, A7 b8 L
        'public' => true,
3 \, S# A2 f$ h  \. |; e        'has_archive' => true,
* }* D1 T8 v& p3 z        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),4 K* O4 K, P  w% F- p3 S) R5 e9 C
        'taxonomies' => array('category', 'post_tag'),) B1 X: y+ C( k7 L# U
        'menu_icon' => 'dashicons-megaphone',
9 `5 ]9 c8 H3 B! b6 `        'menu_position' => 5,
+ {4 l4 g2 M/ I        'rewrite' => array('slug' => 'site-wide-notices')$ K+ H. z4 x/ d% K
    );% T7 W# z  ~! D$ O9 D- _
    register_post_type('site-wide-notices', $args);8 a8 y4 @# v; H) C6 c8 C$ H( v
}" U! z$ k' Z4 ]8 a( D
add_action('init', 'create_custom_post_type');
: |; O  v7 W7 {) b```# j- q, _/ l' U/ m# b9 X" p' r
& m% W+ `- k: p- l7 e# c
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。4 F; c$ ?  |- P0 A8 h( f) z- Q1 W6 h! i
3 z" h, L- G8 M3 A/ N
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
# c+ s, C& W8 O0 b) m
- X( x! J/ N& B3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:/ J) ?: G5 Q+ a$ o7 @, d8 V( L( G* N: [
9 E7 B) q7 ?2 ~$ \( z
```1 V. ^1 }& F$ a( b- E
$args = array(9 I. t# @0 U5 A+ f& q
    'posts_per_page' => 3, // 显示的公告数量
( A. T: J4 ?+ @# D/ }# S    'post_type' => 'site-wide-notices', // 公告文章类型% H" d7 O" U" Z5 I# W
    'post_status' => 'publish', // 公告状态' A6 b8 t3 N4 P/ v% S  Z$ |
    'order' => 'DESC' // 排序方式
1 H3 g) o( ]- D2 y0 B);
' t3 `/ i3 s5 v- i+ ~" O+ j( O5 b! Y0 Y7 w$ C9 n& y
$notices = new WP_Query($args);3 z- r; G/ v$ S3 B, y
if ($notices->have_posts()) :
/ s9 H% X- o% X, z; [    while ($notices->have_posts()) : $notices->the_post(); ?>
1 |* e" G2 C) H! K7 D5 A% C        <div class="notice">
/ R- t* |9 T- @3 o0 F            <h3><?php the_title(); ?></h3>
; y) d6 k+ U! ]# J& i; w( {            <div class="notice-content"><?php the_content(); ?></div>
7 }7 m  D0 z$ ?7 @9 ~1 n4 M        </div>9 U9 F  p/ q9 Y: X' F6 Q" t- ]) c
    <?php endwhile;2 E; p3 e* b- `$ A0 L! D
else :
, f5 p( E# d) v6 A. ~    echo "暂无公告";
; F0 d: ?1 R% }; jendif;4 k4 `% w3 e* Q1 v& E
wp_reset_query();3 J4 B: K% X; U* G- F4 x
```3 P  Q( P/ y. q
6 }- G  k1 Q4 C/ \$ L
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。# F9 Y0 z: s! \3 |

4 K, @* x% t6 H# l& o) g/ w0 Z5 u/ `以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

332

主题

513

回帖

3372

积分

管理员

积分
3372
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?/ U  y1 \3 f" c' _: U/ C" `; E; t

; J8 \0 ?9 M# {如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。; T: y. y/ m5 ?- R

' ]# }, }2 P+ `: w9 U8 q2 W/ \以下是创建自定义插件的步骤:
9 N6 N) l$ ^+ D9 C$ u; Z8 V/ A1 [8 }- s) ]7 `  B: ^/ k
1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:* y! k& H. W  }: x! g6 ?

* j5 l% X( W; C- n. R0 X   ```
1 s7 M/ f4 V) E4 n   <?php
0 ^7 [& T, X, ~" G& s   /*( d( O; b2 b$ ]: `! c! P
   Plugin Name: Site Wide Notices Plugin' L! d/ m! g( ^! X  \" t$ p
   Description: Adds a new custom post type for site-wide notices.
8 N2 G, V+ ~0 y4 ^9 K   Version: 1.0/ ~' i% L( o! ^8 ]& Q/ }
   Author: Your Name5 V$ T7 U1 ?7 O
   Author URI: http://example.com4 z% w0 V1 q  _, g' I% B: e4 S  J0 ~
   */
5 X* f- v0 e6 c" b# v1 H$ N: m% J! e: X8 @: V* s7 S0 C/ A
   // Add plugin code here...
$ x( F' V9 |1 l7 \. y/ Y, P7 _   ```
, y  o! Q' e2 a( H& V3 s/ k" `. N2 ?5 A0 _7 P' |* R) n
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
: C, g  r; I) N
% @8 w" L3 p2 O( j+ C& `# s0 @2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
; H+ n& u+ N- z4 p4 A4 a
( h4 A/ {. \# ?" ^3 t6 s  H( N   ```
8 u2 }) y# k0 J   add_action('init', 'create_custom_post_type');' n. v9 l# }: e( a
   function create_custom_post_type() {6 p6 y- x, d# _- z7 l- g: u$ [
      $labels = array(
, h/ B3 i9 a* Y+ v$ d) \) @# w1 M          'name' => 'Site Wide Notices',5 U0 J. ^5 J6 r
          'singular_name' => 'Site Wide Notice',
" D, [$ A! B) K  |! N          'add_new' => 'Add New',$ [8 I3 R9 u; k, }6 W+ P; g
          'add_new_item' => 'Add New Site Wide Notice',0 `$ q8 \* A- O8 ?2 h4 G; _
          'edit_item' => 'Edit Site Wide Notice',. t4 M: z  B. k# d5 z( w( a
          'new_item' => 'New Site Wide Notice',- K. |/ b1 D9 g1 f! `
          'view_item' => 'View Site Wide Notice',
: _6 Z; T# |. U) z6 M) u/ K          'search_items' => 'Search Site Wide Notices',
9 x1 b. n1 `8 C* g+ w1 a% I          'not_found' => 'No site-wide notices found',/ k. u, |2 b+ B  `4 {. Y
          'not_found_in_trash' => 'No site-wide notices found in trash'3 E6 p  e1 E7 ~2 \7 k3 p( @. E
      );5 r: v9 G# z6 p/ z; [( y$ m- I$ y

2 @# t$ Y. O  h* H* Z      $args = array(- \% n8 G% k4 e6 v; B
          'labels' => $labels,
3 v+ b% ]1 S& p9 ^7 u          'public' => true,5 Q( t5 V. K* D- b7 m# N
          'has_archive' => true,# H3 h+ l: f& Y) Z, U3 X5 o- Q: H
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),( }( k$ q5 M9 R6 @$ o
          'taxonomies' => array('category', 'post_tag'),1 x: v* n% D+ [8 ?1 {
          'menu_icon' => 'dashicons-megaphone',
4 H; n; V. m; q5 o- R) `- S. T0 Q, c; Y          'menu_position' => 5,! }1 P" J, K5 V4 Z' _7 g0 ]+ J' |. @
          'rewrite' => array('slug' => 'site-wide-notices')
7 A+ B: O+ s! t8 ?5 D: ~      );  C% u9 G( ]5 j; d. w# o

/ q/ V0 L* z2 J$ ]& ?6 V      register_post_type('site-wide-notices', $args);
) o5 m+ J) u6 A   }
' T( l3 W: \4 F   ```( [6 w- F3 c1 i4 l* y# z7 C
/ ~' I: B" p. `: a  l
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。4 V. ?  F$ B4 U5 Q0 w4 O: F9 d

$ B: c4 r, {; J' T9 r- U3 e3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:  z$ _" k( F, S5 O  ~6 e" d6 N
' |7 I, P- ^  T" t' D$ X; h
   ```; @8 `, R7 J  d0 o8 j! T! w
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
- a: |6 R: S3 E   function add_site_wide_notices_boxes() {0 Y9 ~5 N0 q* z* D9 u' l
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');
' u, K* `/ z8 t! `+ h+ e   }
7 l5 y+ g! W6 v
7 o* b! a- S+ p' }  o* Y   function notice_details_meta_box($post) {, m- T. F+ s9 m( d
      wp_nonce_field(basename(__FILE__), 'notices_nonce');
+ P  t+ Q  K  q9 q- h1 L      $notice_title = get_post_meta($post->ID, 'notice_title', true);: ?  y" g5 q7 Z3 r3 J1 ~5 c
      $notice_content = get_post_meta($post->ID, 'notice_content', true);5 ~2 W; ]0 A+ \
      ?>
% k' F* D) F, G' Q4 R      <p>4 K5 ]# Q* [# [1 F! _2 t3 c+ ]
          <label for="notice-title">Notice Title</label><br>
$ s: }$ h8 c$ G# M! H2 w% `          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">6 n4 i- R4 T& R' [) a
      </p>, o" G* L+ V1 ^
      <p>
& n5 N) R" _% k" Q          <label for="notice-content">Notice Content</label><br>5 T3 q5 X1 n- s5 z& r# e! e; E
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>; I2 j. b* r7 [, Y6 W
      </p>2 S: |+ m, R, ~5 L5 ^6 u. s8 d
      <?php
4 R! J' M/ n5 r- d' i. \# {   }) I! @1 ?, P  i4 t6 I7 ^2 h
4 z8 [- W, M& ?) S
   add_action('save_post', 'save_site_wide_notice_meta_box');
4 @4 o2 ~9 ~) a' J   function save_site_wide_notice_meta_box($post_id) {
/ W6 n+ M% V( L! i' q1 r6 K: z$ S      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))3 n. D; W! v3 i: t; V
         return;
% n4 G2 G; W9 i1 ]      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)0 e/ R& ]* t8 x
         return;' G9 O% q- g- ~* ?, Q& u
! J2 K4 |; s: V& |) |
      if (isset($_POST['notice_title'])) {
9 G7 F( p5 O4 m, p. I6 B/ j          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
+ L! o) A2 `0 n! q      }
. {+ s- R# L& J& F: D& B# m$ W; ]      if (isset($_POST['notice_content'])) {( `( B4 U6 L. a
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));8 Z/ }# A6 f% L9 \6 U1 [
      }  Z+ A" Z5 p+ s) W
   }
: a& i3 p1 t0 P   ```
" s5 o- w6 ~: n1 d, J! h
/ a: [9 t* X- o' H   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。- t2 y; \% I3 x: a2 P
4 ?9 a4 [8 e7 D. a7 U) K7 W$ r
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
1 U$ Y  }  T3 [. ^1 {% H
2 {7 W% i) {! Z4 o- v   ```. O: m/ {3 l8 v1 _5 F" l" E
   $args = array(3 N4 ~" n/ Y& @% [  M
      'post_type' => 'site-wide-notices',& l: h" S3 z" w: o( F7 E7 t; i
      'posts_per_page' => 3,9 u: u9 v$ ]: L5 z; h: Y2 A! g
      'order' => 'DESC'," z. R1 N: s# K- r$ z
      'orderby' => 'date'$ V0 t0 i( L+ ?! I7 M( `; |
   );2 A$ }( G7 ?, E" W8 q$ r
   $query = new WP_Query($args);
. b& X& P- F' V   if ($query->have_posts()) :
; I8 L8 U1 R$ |5 F$ H+ q      while ($query->have_posts()) : $query->the_post(); ?>
% E$ l! T+ D. G$ T          <div class="notice">
  o0 k! j$ c6 J; P              <h3><?php the_title(); ?></h3>
2 F! }) U; F! a) k" C( ]              <div class="notice-content"><?php the_content(); ?></div>
$ U* O1 N; w2 H8 r% _% W' L          </div>
6 }5 g1 z# g" B, k0 l: H5 }* N& H      <?php endwhile;& O4 p  M! t* O. K4 O2 l, @
      wp_reset_postdata();8 m" L* U, `, K
   endif;
! y1 B( u7 a$ T& P% c1 T  J   ```
, I6 a9 P) `7 u+ l( T) w2 s
* I/ N( Q- F. h$ P. C   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 08:07 , Processed in 0.076706 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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