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

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

[复制链接]

340

主题

522

回帖

3494

积分

管理员

积分
3494
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:8 s: ?3 {1 H1 T. ~2 P
  ^" v: t" }, }# a( r
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
& |; I7 l1 W* g, d* q: \
5 w& C) N1 g# U3 `8 U2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。, q3 ~8 ^7 H4 J- ^

5 O2 A5 |9 t. |/ l. x8 }2 |* V! {" B0 L3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。/ z  E. e4 w5 B
# j" j# K) Z% g4 v
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。4 b3 J2 `: o7 q) [2 g) K6 f

* v5 N6 `% a8 I" Y. ~2 e注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

340

主题

522

回帖

3494

积分

管理员

积分
3494
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?" l$ K* w7 @: e) R* i/ Z

2 G- V4 p$ M, O7 B( X7 I如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
+ c1 [' a5 ?0 a3 K; h# h1 l9 R- D2 \
) {5 Y. I0 Z. R5 \3 I( n4 s1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
( ?5 U3 P' ?+ d; J& @' D! ?; p
# j3 k* J* }% Q8 B# g1 o   ```
8 t- i0 x6 G& r; Q! o0 P   add_menu_page(8 u' Q5 h; D: \3 e' x# g0 s
       '全站公告',
" x; U! G2 e* ~; ]2 M       '全站公告',
: A5 `9 P7 l3 s2 E1 \7 H; V/ x" ?2 r$ W       'manage_options', //需要的用户权限
# L% ~' E" G$ ~       'site-wide-notice', //后台页面的 slug( ^* B9 M  C* M! M" I9 F: ?! \
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数
- [+ t+ N& c) w       'dashicons-megaphone', //用于显示在菜单中的图标
4 Z3 }( k# K) g4 n2 U$ b1 D       30 //菜单项的位置+ P. u/ Q5 d4 `8 _5 ^) A* l
   );
* J$ @; y/ |1 o* |, R   ```( W& S* U. g+ B- @7 e
* D6 F6 r, t, F( n: U/ ~
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。: J/ Q3 r; I5 k+ [. M3 t3 r
/ K; ^5 z) d7 L
2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:0 K3 Z$ F# N  P+ u+ d) e$ \% d/ B

5 q) @: w! O2 X- j' C6 R   ```
7 r( N! q( V7 m! L' T   function render_site_wide_notice_page() {% ~, D+ U( z6 O+ ^
      // 渲染后台页面内容/ {1 O; q* K/ i8 w. f
      echo '<div class="wrap">5 w) x4 g+ p, U
          <h2>全站公告</h2>) ^( d3 J: |" L5 h4 g
          <form method="post" action="">9 @, r& Z; j& [1 J; Q% C8 o- k; o
              <label for="title">公告标题:</label>
& G! W6 W& C1 t! h2 i+ `% m              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>0 B: @- u1 F/ x5 s5 t- S+ B; W; Z
              <label for="content">公告内容:</label>
$ @; z: }6 l2 D              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>! N" x! Z: A" P% ]; E8 L. F
              <input type="submit" name="submit" value="保存设置">0 l& W2 r7 Q5 Y0 G' w& h! G" J
          </form>
7 s1 f* r3 M, i# F. D7 F4 k; L$ }      </div>';
9 z- o( d3 Y+ T
9 o' J! d5 b( y6 `6 c# O      // 处理表单数据$ v, z! P* E# Q) e
      if (isset($_POST['submit'])) {; _2 v  L% ~% k8 Q# W& g4 t4 X- B
          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
+ k" E, S/ a1 T9 X' i: T& b8 w          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
" s9 Z# I: v, I2 ~* @' ^) H7 d      }9 x3 y7 |6 U9 \3 X% h
   }
3 n# d5 V- S3 u' p3 {2 v# \   ```
' q5 R1 }9 R8 k' t( s1 _: Q2 Y' n1 b  E# M" y" `
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。
; y4 U% s/ u# [
. g) T* d5 L; s+ \6 f. \3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:8 u5 F5 ^, u7 d0 P

; X: s" ~/ I4 i, Q   ```/ h( n3 y1 V$ V& L0 x2 I4 [) Q- l
   <?php  U. _, m* J7 b# G
   $site_wide_notice_title = get_option('site_wide_notice_title');1 `! i+ l; {* A4 y! i' ?
   $site_wide_notice_content = get_option('site_wide_notice_content');
7 P8 R1 Q* @; Y' {" G   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {3 X5 g) |( o0 d' ]
       echo '<div class="site-wide-notice">';
* [; S4 \4 Y! m7 i! h5 o       if (!empty($site_wide_notice_title)) {/ @$ C8 F; Q% y; P: R
           echo '<h3>'.$site_wide_notice_title.'</h3>';& j# ~+ A. w; b. {- `. m
       }
& w# b$ g; U3 p       if (!empty($site_wide_notice_content)) {9 O/ N; v9 n$ j; `' {9 O
           echo '<p>'.$site_wide_notice_content.'</p>';
0 }1 W3 Q$ t7 ]" n+ Y       }
% \' b  p, u8 x       echo '</div>';
2 A# k1 M, B5 G- v9 F  P! s0 ~   }9 Z& D6 t4 ~5 p  A) _1 J$ l
   ?>
9 }+ T8 @+ R5 a! s& ]# K2 o   ```$ I0 r4 U7 G: L1 o8 P. I' {
% n: i$ I/ s, I' E/ ], ]
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
6 e: {7 U9 ?* P% `) B6 g' h1 Q5 i$ j8 f* H8 G
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

340

主题

522

回帖

3494

积分

管理员

积分
3494
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?* Z5 s, m3 ]4 Z0 }# I6 j! F
/ T# X$ U( \5 i3 \$ g" {
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:. ?8 `9 \% h* m5 Q4 Y& |9 a

+ v3 S' O5 i' f& C+ l1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
) l8 d1 @$ U0 Q/ T
1 d7 r& @; Q$ f# l3 f```% T) J" b: t9 }+ J5 m2 Z
function create_custom_post_type() {
% ?$ m$ y( H3 {1 k- _    $args = array(
' e! ^# a9 j8 y: K0 P1 |        'labels' => array(
( s1 c+ Y8 o' w8 i  E! s% v            'name' => '公告',2 @8 D9 f0 q1 m4 `( a5 R
            'singular_name' => '公告'' e0 }& W  `) v8 g6 d0 |# `
        ),
& G- C& X5 Q' X6 G4 j        'public' => true,
7 \0 J" L  e. K& T: i1 ?        'has_archive' => true,- o' C+ S& M1 L" T. L' I
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),: A" N, _( e: Z
        'taxonomies' => array('category', 'post_tag'),1 F! b: U7 Z# F' ~  o2 O& j
        'menu_icon' => 'dashicons-megaphone',* j2 k7 R. K  i; K# f
        'menu_position' => 5,) a# f- C- O7 h# i
        'rewrite' => array('slug' => 'site-wide-notices')% N' _" ^1 Y) l+ D5 z* d  P  B* z
    );7 o0 U9 n! M4 E
    register_post_type('site-wide-notices', $args);
1 X7 s7 u/ V" B# u% t' @% {8 ]}
4 |2 N( _7 m" Z9 e$ ^& I" {( Madd_action('init', 'create_custom_post_type');. G) k( J8 W) X3 S% {
```' x# \9 S! \* k! Y

+ \! o; C$ U2 y8 o  v在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。$ M4 C6 N; t8 I* V) Y% H+ }
" ^. A8 u1 }$ X( n) `  \% t6 t
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。1 n$ Y9 i: p# _! ^* m+ ~
* Q# V( b& D2 D) u
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
8 W$ p# h! Z% j* L' F! o: Z* {' I9 X$ v) X; L( G$ a
```9 c) I1 z; M" ~! {$ S+ \% G
$args = array(# k/ ^! }" I9 f7 q, Y* m
    'posts_per_page' => 3, // 显示的公告数量
, [+ R* w# s7 V+ V6 w    'post_type' => 'site-wide-notices', // 公告文章类型+ f3 D2 i# G5 a9 I0 ]% H' t
    'post_status' => 'publish', // 公告状态8 l. S  {0 f9 J! t7 k
    'order' => 'DESC' // 排序方式
& A8 R, z6 p% H) A' j4 f);
5 Y# H" t* K7 _/ s0 q
; K& W+ B. G( ~9 i& Y4 ?$notices = new WP_Query($args);
' C! ]8 ]* O. R* {if ($notices->have_posts()) :
4 X( i5 G( C1 L: J    while ($notices->have_posts()) : $notices->the_post(); ?>+ U2 @6 W. `; s$ T2 D4 r
        <div class="notice">
1 T9 o! S* @1 Z% a1 |& i0 a            <h3><?php the_title(); ?></h3>
5 s* \4 X* @8 I, P( y            <div class="notice-content"><?php the_content(); ?></div>' ^  N( i: m" a$ P! h7 h1 M
        </div>4 [9 Z% s6 ~+ l& N# O+ l
    <?php endwhile;
9 O6 c7 k! @5 h% k; T# `else :3 v7 K4 p& B0 b: ^) V+ Q
    echo "暂无公告";
2 w# C0 a0 B5 w- z! p7 n3 U5 ^) gendif;
+ h8 q4 y: a& }" B$ r! b' A9 K5 z+ Hwp_reset_query();9 V% h' H/ m# M5 A8 l& c
```% F5 m2 Q! J4 k5 a% _7 d( o, h+ j* ]3 ^
4 t9 t1 ]& B8 L
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。: Z2 t* W( _" j) `
, P" F8 {+ R. r& R5 _4 ]
以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

340

主题

522

回帖

3494

积分

管理员

积分
3494
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?
" w) |, g) [2 C. s& v, K
6 T  s; d) ]! d如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
3 w4 X6 P" a7 y3 x
6 i8 E, {+ P/ V4 L9 w" d! I  W以下是创建自定义插件的步骤:% K1 j& ]# k1 @. O% L* }5 b0 \& `

/ c+ j( E# C# p+ F1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
; m: S: M( n* N; p- }0 \) `& H$ G3 U8 b+ g" [- \/ O9 q( Z: Y
   ```
8 P- v5 [" F* M: k. Q   <?php( o2 N3 `) t! b$ v7 y; Q. r5 b' A
   /*# b6 v2 H* \/ ?7 p: S$ A3 P
   Plugin Name: Site Wide Notices Plugin. b) ^* @. k' q2 C7 t
   Description: Adds a new custom post type for site-wide notices.
9 s7 e& C4 `# g" C  G. \) L   Version: 1.0
! Y8 _3 r0 F1 W  _( X$ D   Author: Your Name
3 w8 f1 k4 \) g   Author URI: http://example.com
) O2 C9 g3 E2 ^   */1 o$ K- d) K0 B% Y4 x

$ S& U0 }( x7 F6 p   // Add plugin code here...: o% y/ N# g, I1 p( \
   ```0 M3 c) q- C- O+ B& L" g$ N# D& s
" r* v! ]5 d- i& \: u
   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
( b* U8 k5 L0 F; r7 i$ `/ p0 o- H) b" i: R" j, ?8 j+ C
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
" a7 b/ E5 e" T' _) F) a
: F/ x, y+ T, H0 H8 y4 {5 O+ s   ```
0 w7 E7 \; K% F1 _; W   add_action('init', 'create_custom_post_type');
! v3 A; a3 Z) x   function create_custom_post_type() {% M3 |: i2 r# L. t# A- J( y, V! b
      $labels = array(, x6 `2 n* M0 N
          'name' => 'Site Wide Notices',
6 o( O; ^& K. [$ G2 v( z          'singular_name' => 'Site Wide Notice',
! V) a9 m4 H$ O2 |+ P          'add_new' => 'Add New',
& ]2 K: G( u9 _# T. I          'add_new_item' => 'Add New Site Wide Notice',) }$ w' d8 r8 o; _' z
          'edit_item' => 'Edit Site Wide Notice',
  i# e2 p$ w5 M/ w: ^, f          'new_item' => 'New Site Wide Notice',* u# T2 Z/ Y& t
          'view_item' => 'View Site Wide Notice',3 J- t9 }; e0 r2 q
          'search_items' => 'Search Site Wide Notices',
# D- E' H* R7 N; _          'not_found' => 'No site-wide notices found',. f' y3 c7 m8 V0 t$ V! M: G
          'not_found_in_trash' => 'No site-wide notices found in trash'' p2 `" w& b" Q9 g
      );
2 T/ D3 [# F3 ]; G  j# H. u# P) Q% T: `: }) T1 z4 F6 v* [3 O) k
      $args = array(( J8 h" z% c$ V
          'labels' => $labels,  R& l6 C, M9 x. m' j/ b
          'public' => true,+ v8 K% N/ V; F5 P/ D5 E
          'has_archive' => true,
0 H+ J( Y; w) t$ y8 ^3 N" g9 ?7 `          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),. p) @+ d6 v6 u. H1 D  Z8 A1 L( f
          'taxonomies' => array('category', 'post_tag'),
, I$ o7 v7 u7 M5 {          'menu_icon' => 'dashicons-megaphone',- g, O9 d+ |; r% H) r+ S7 [
          'menu_position' => 5,* ]' v) |) [5 E
          'rewrite' => array('slug' => 'site-wide-notices')
- w; N% F! |) u" z! `- }      );
0 G! J$ S! i5 C* S2 q$ I
; }' J7 r4 c. H4 S* E      register_post_type('site-wide-notices', $args);
+ n& B- I7 ^1 M0 x   }
8 U# b% \' ~0 C' T$ r; w$ E   ```  f4 ?5 R4 z4 d' Y+ e9 l
/ \9 G5 l+ N, s- \: V$ @  v6 H
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。! E0 k$ `* v& Q' B) D

  A, v* U0 w2 i1 G9 [3 A- p3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:9 q" l6 g4 h% h2 l% v
$ {4 a* A/ }- M, {# s  l
   ```; Q4 C+ P4 ^& t0 L- L1 _+ N4 ?
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');
6 g1 T7 l8 Q2 t5 z( L  ^   function add_site_wide_notices_boxes() {, I" H9 F' t! v
      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');7 O( o3 y+ p% E# {
   }
6 |/ _9 |( ], h: |+ F% C6 Z
+ G% R3 u4 ]/ j% m   function notice_details_meta_box($post) {0 ~5 {" i7 w8 r/ N: |
      wp_nonce_field(basename(__FILE__), 'notices_nonce');& Q% s  F0 k2 n( L
      $notice_title = get_post_meta($post->ID, 'notice_title', true);
; F0 D" V5 F- N! V      $notice_content = get_post_meta($post->ID, 'notice_content', true);. t7 X( t5 W# @0 d8 M7 V1 {% x
      ?>  Q9 z- t8 ^( c. L
      <p>5 S; [2 f6 K/ l: b  v
          <label for="notice-title">Notice Title</label><br>
$ w4 v  M. K. E! v% D3 V; u2 f' ]8 G          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">  m4 N0 S/ m' P# G* F/ V; I- q
      </p>
6 z7 o. m1 V( [) Q* `      <p>7 H* k6 I5 _" {) @. M  }
          <label for="notice-content">Notice Content</label><br>
) v. l8 Z& Y. U# }6 O$ _- Z7 u- `4 D          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>. @$ f9 j% v9 Z! E# B/ m
      </p>
' L6 P- z$ B4 `# @/ Y. B      <?php
! D3 _' A' d6 n2 d   }
- P! r. ]( D# F' t) m- h: k
- K7 p# e* y! E   add_action('save_post', 'save_site_wide_notice_meta_box');9 J% K! }; W7 x5 K: d  x
   function save_site_wide_notice_meta_box($post_id) {
* G6 u  F3 y5 j' b- X* {% K      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
9 P: S9 ~  a. O( @' J1 n0 n9 X4 B% I         return;
1 X7 ]( Y& M8 A" E4 z3 q      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
7 N0 D& o1 y% |0 r         return;
. B) W6 R& d4 m8 u6 w- g3 f7 i
  d' j5 \  Z4 d! R3 w" b  t3 f" W- q) ?      if (isset($_POST['notice_title'])) {# I+ b- J7 k. D! ?
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));: j$ I1 O; W/ e+ g) i7 c
      }% i% w) c! f# j
      if (isset($_POST['notice_content'])) {
* P  n- |; \' ~4 ~" n6 y% [          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
, q! R; R) K- e      }
" O/ [! p$ e: C/ ?: G7 w5 r   }
0 p- d2 k4 @4 z6 J9 r5 y+ Y   ```! _8 k" @( _/ l- a( T' q

! o8 f" q* K: u  A   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
0 |1 K. |2 m7 M5 m6 k1 B5 I; l- t: r6 E) T: b; j8 o* G) W/ L% t
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:. [' I, y: T7 G
7 S2 T# S$ V$ _; g4 P2 V# l/ d
   ```
4 x; f; i1 s  J$ `   $args = array(
! K6 _; k1 d+ v; Z$ l) R5 x2 Y0 }& f      'post_type' => 'site-wide-notices',
- ^6 e+ {1 b& \/ p7 O      'posts_per_page' => 3,
4 Y% v2 R3 u6 }      'order' => 'DESC',& `# i! ^& a' F5 ~- E% H; F  u
      'orderby' => 'date'% x& h& H( h" W+ V4 @0 N
   );
: d* ^( z- k3 {+ G0 E5 b   $query = new WP_Query($args);
8 G' Y, i) K1 _   if ($query->have_posts()) :2 ^: T' I( ^+ U9 [
      while ($query->have_posts()) : $query->the_post(); ?>! I. U  k# r8 Z+ I
          <div class="notice">9 U* l' o# W( q( _" g4 s
              <h3><?php the_title(); ?></h3>1 i) F) ~8 c* [4 e0 Y2 F' I
              <div class="notice-content"><?php the_content(); ?></div>
, t9 `3 c7 t+ ]5 z- R/ |, k          </div>
4 p* P2 X. B% M% X) M! ?      <?php endwhile;
# r: p, x. N( [' j6 t      wp_reset_postdata();$ y5 W' |2 Q1 \& g8 a3 v$ R; }
   endif;
( Y8 S" S: j8 c7 k   ```# X3 X% p, C4 S/ @2 U5 |9 K

+ }1 {! ]  \3 S7 R   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 09:17 , Processed in 0.020480 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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