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

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

[复制链接]

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
3 E+ L, ?$ f7 L8 f( u% p2 N2 w2 q+ O7 t
1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。7 B3 K+ S4 f* d# J) }$ F* f; u/ z
+ u4 s) M" v) h4 q
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。
$ Z; H$ d  J  }+ [) `1 m; S& R0 p$ R% a0 p3 J/ V+ ^
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
+ l1 ?5 M! [' O0 W# Y" W$ N3 A$ Q1 v% L1 T. S) c
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
4 m. R7 K+ q- G2 e- t/ M
4 }% u5 B, \0 O2 X6 M# O# ~注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?
& ^* g7 E! h6 J$ F; o
7 x4 ]) r0 B9 m5 u* }" y如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:
* M5 g; N! h- i6 \! Q/ a$ T! m* U* T( s! f/ m8 m3 `
1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
% W* _3 p4 @( n/ _9 U: L" |
2 B! T, P- W, O  p   ```
2 G  e. t8 C3 [( Z: v2 F   add_menu_page(
: u" p* |1 x* q# B: k6 T; m       '全站公告',8 f) ?  P; p  i+ i0 P
       '全站公告',# S! e! x2 f: m$ I. `4 |3 z
       'manage_options', //需要的用户权限
" h; g2 s( _/ G( ~: r& b9 e$ C       'site-wide-notice', //后台页面的 slug/ F2 E: N5 J8 v* `! I- ]$ X% `
       'render_site_wide_notice_page', //用于渲染后台页面内容的函数$ @; c$ K3 P! A; g1 |
       'dashicons-megaphone', //用于显示在菜单中的图标' x  c4 Z* }+ D. ?6 t) b. z
       30 //菜单项的位置
0 J* C# G0 @* ]( w" V   );
' k0 k/ u2 h! s$ ]   ```. }6 j: p6 E6 {. m4 n; }0 X

0 j0 s0 U$ @3 Y8 `1 v; ^   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
# K. m" a- b- q- J( ]4 n
$ H0 t9 i; [5 Q+ C. h- Q+ U2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:
6 p) Y( B# b; O6 `2 {- K9 {# i- U, G4 {- t9 {4 p3 w! T1 m) p1 W
   ```$ U7 T8 f  I0 F3 O( q
   function render_site_wide_notice_page() {" Z- z, B, H0 v! C3 t% A0 a
      // 渲染后台页面内容# K# K5 S3 H2 i8 v4 z3 F4 f( ]  z' |
      echo '<div class="wrap">
8 T5 C. S  N) e: s1 S, y! L          <h2>全站公告</h2>: a( r% F3 b/ i' g& f# V' A7 p
          <form method="post" action="">
  u; g  a7 C8 z' X+ @) L7 t7 e              <label for="title">公告标题:</label>  {7 P0 e7 D9 ^$ o# [
              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>" V, |5 b2 _' j; g. R2 ]7 U) D0 Z
              <label for="content">公告内容:</label>5 @. C( E/ a0 d+ Z# Q2 p
              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>' b. h3 \! |' M3 f3 g( r/ X
              <input type="submit" name="submit" value="保存设置">) D/ w! e9 |/ i! `
          </form>' C, q) \7 z# i( U$ L; X9 F0 H
      </div>';
9 O6 j1 F6 ], U0 f9 {& ?2 S- i" g, J0 ^. t
      // 处理表单数据/ w% J& J/ H& w
      if (isset($_POST['submit'])) {
( _8 `3 z  c) t1 G1 H; `- ]          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));
- X. n* @0 E' H% ^! p) H# T$ U          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));
/ |5 C, k4 e4 P" \      }
. z) v7 {: j' U. z  @! v   }
- {" M7 k4 F6 j! H   ```
9 x9 n# j" Z. T7 Z1 C  J; p9 l; _1 L3 u% }
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。% ^" A; I+ i: I4 |* q6 ^

7 j' {! B3 d$ t$ H* v( d$ L/ j# X2 f; n3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:9 X% w5 L' f+ Y8 I, d) m2 s
; `4 a' e  x; r' I% ~& Z7 S( g
   ```' J' ~4 v* `$ f' L; G% R
   <?php- @, D* K+ ~+ k+ f; z3 {
   $site_wide_notice_title = get_option('site_wide_notice_title');
% }! D) S  |# @9 M$ b; ~+ E   $site_wide_notice_content = get_option('site_wide_notice_content');
. u9 T5 T  f! n2 L. M" w   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
% o. {& J) W8 @* v. g; F" d       echo '<div class="site-wide-notice">';
" K6 Q' w: |# z2 z       if (!empty($site_wide_notice_title)) {% c; t& a6 B& L; p0 }3 V+ o* t6 `
           echo '<h3>'.$site_wide_notice_title.'</h3>';' I/ I; ]$ a' Z
       }
2 w( Y- e% v  j) v+ B4 b' ~       if (!empty($site_wide_notice_content)) {
% \0 f: A. L# M1 X           echo '<p>'.$site_wide_notice_content.'</p>';
6 m5 c! R2 Y# j* a4 ]       }
2 {2 N! ^. I/ O! y1 A9 Q       echo '</div>';
2 ]. o" B5 a2 A" _, E   }3 L4 q: z  V# M6 z# s
   ?>
6 p: e3 g5 L4 K# G+ t% R% p. _   ```
0 y0 D0 x7 _" o7 s( i# d% m7 D7 |- m3 V
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。
3 F8 L' B% g$ p3 |1 x: A" N$ V) F& t% z# t) ^& o
请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?" m7 D" G9 \- l- O) y/ z9 R% E/ o
. d4 z: c7 d& a+ C, W  D
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
0 K& k. F" y; e& E8 G2 y* Q6 r  d# R4 i0 d7 L6 \, h" y7 K! f3 N
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:
. `$ a$ h; e" g7 o# Z9 Y* I# s% U
6 e4 }3 O3 M4 p- ^3 }```
( t* j# G  l* K7 hfunction create_custom_post_type() {- _4 H/ i! d$ y; `6 p- o
    $args = array(
7 p; V2 Z& j4 `        'labels' => array(
7 _) q5 w2 ]- ~1 @1 _, J' y            'name' => '公告',- `; D; G# \3 }3 K. C! g4 z) D+ M2 h
            'singular_name' => '公告'
7 _' y7 a; h2 \4 N5 Z: N        ),$ d' H  x  D4 A' D" y5 f4 P
        'public' => true,. X! F4 t  w' ~* q, Y" d
        'has_archive' => true,
- m/ f& y' H- `  P' O5 n        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
) j+ O5 ?9 y1 }3 }! Q0 `        'taxonomies' => array('category', 'post_tag'),. D3 t; [7 m6 K8 }0 X& ^
        'menu_icon' => 'dashicons-megaphone',& I; v" J' \1 Q  t( G: \
        'menu_position' => 5,
3 R; `- J4 M0 o        'rewrite' => array('slug' => 'site-wide-notices'). |5 T4 A! T9 F% V. h" ]
    );% F/ G8 T3 P! i3 S
    register_post_type('site-wide-notices', $args);2 c0 r1 L. [' r8 V
}/ b" [! i; O! E% ^* A
add_action('init', 'create_custom_post_type');
; ]; h5 A6 q% |0 N6 e# X! o```' k: u- @: \- q+ a8 y
( |2 e  u- m# h8 P- Q4 `. U
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。" T# T- O7 p/ E
; q7 ]; ~, D/ z! A
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
$ o) n% z, v( d" o: |6 X. l  e/ a( c+ ~, G4 R0 w
3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
: E% w( w$ L8 ~6 t. X6 u
8 h6 G7 l, h) z0 [1 d* j$ C9 p; L```
; S( E2 a. }4 j& C5 X$args = array(
: w' z1 s3 j. S7 o5 h7 r  V    'posts_per_page' => 3, // 显示的公告数量
. y) k2 c) u3 ]. W, Z: a- V    'post_type' => 'site-wide-notices', // 公告文章类型
' c0 W+ ~' T6 t8 R) M, z    'post_status' => 'publish', // 公告状态2 Q, r& ~6 p- r% n1 F- ]+ H( G
    'order' => 'DESC' // 排序方式
. P3 r4 j9 P! \) b) O- i);
. [- M4 g6 z& [1 f; L: O$ ^6 F. f. |- h
$notices = new WP_Query($args);
- W: b8 b/ }$ L9 dif ($notices->have_posts()) :  z% n# p: c" I9 q( D. ?; s
    while ($notices->have_posts()) : $notices->the_post(); ?>9 ?& z2 E, g' n7 A* H) p% K; X
        <div class="notice">; P  F3 `1 X9 h) V" c! J7 Y7 q
            <h3><?php the_title(); ?></h3>1 B: [) l1 S- ^3 l8 f# ?; g
            <div class="notice-content"><?php the_content(); ?></div>
' U+ ?. ?  o& D8 p        </div>) b! X8 l' D8 l$ j- _( Z& ^5 ~
    <?php endwhile;0 U: K) [& @" o6 L
else :/ D% ]& r  }( {4 |2 X' c
    echo "暂无公告";. g" A& Q# ~" N9 Q
endif;! V* o6 f+ k- r6 e0 |4 F  h# K; |# o
wp_reset_query();
; \. l2 I2 }, `2 y$ M```
( ~( z" u+ s! w$ J  z
5 S/ a& I- N( ^( G0 s. _( |这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。
0 e. j/ D$ _8 r. N/ M, X. _$ x! A
! n( c9 x" ]" T- v% E1 K以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

332

主题

513

回帖

3376

积分

管理员

积分
3376
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?; d  p- v9 _7 L$ @# z3 k
( }. h8 F" Q; r0 o
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
- f$ C' W6 O! H
) i" n+ n& n5 T/ k3 I. O, p; _以下是创建自定义插件的步骤:
5 z5 ~/ i2 K- w8 L
4 R, v& t+ T* g4 Z; o7 F- F1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
/ h" L& ?1 R* ?% e: x1 F7 P
4 n6 A  Y* T% T8 \/ V# k! ?$ ~   ```% q+ }, C' l6 M( S
   <?php
! ?' z8 W5 R: F* u9 m4 z" j+ e; L   /*' d3 R+ i# `/ G0 i
   Plugin Name: Site Wide Notices Plugin
% C! U* i) i5 X2 D; ?   Description: Adds a new custom post type for site-wide notices.
- x/ S" a' _# Z2 H2 _   Version: 1.0! g* U  @) F* S
   Author: Your Name
1 p: f$ H8 n' I   Author URI: http://example.com
" t, V; `/ U* A5 J   */
8 E8 |$ j: ?1 U# O* V& K+ n, N) q. f' z5 q! K1 }/ L; g% S$ U3 ~- {
   // Add plugin code here...
- ?9 I& S+ ~1 r! ]: z5 k; o   ```1 [6 T; _+ `* z5 P0 i, W1 P+ A2 Y* ]

$ L. O" B5 ^8 o' Z   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。
4 `; C8 Q' T5 Y( Q- v0 j9 j1 d! M: ^: w0 J) S# t. A
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:/ N, U/ z( g! B8 x! J

: }" f! p9 v; R! O9 R   ```# k% T$ U! n% U+ J& V: x
   add_action('init', 'create_custom_post_type');! \: Y, {0 w# {/ M$ Y
   function create_custom_post_type() {) U, Q3 ~) k7 b8 s" Q
      $labels = array(6 _7 t4 I8 [* h  H4 e6 ~
          'name' => 'Site Wide Notices',
. L( n6 I2 {& I; D          'singular_name' => 'Site Wide Notice',
/ l& y" Z' h; C" A6 u7 L5 f3 r& Q: t          'add_new' => 'Add New',3 I: \3 R3 k* z% Y2 ~
          'add_new_item' => 'Add New Site Wide Notice',
8 q: }" l7 d3 B! D. w+ u          'edit_item' => 'Edit Site Wide Notice',
1 u& @3 a; \: S: b1 X" V! z          'new_item' => 'New Site Wide Notice',! Y$ l- _% b, N. Y2 W" o9 W: ]
          'view_item' => 'View Site Wide Notice',
$ Q5 S" I# \# M. R3 A/ V- g  F          'search_items' => 'Search Site Wide Notices',
% J9 Q5 v7 G6 U; \2 [3 c# P          'not_found' => 'No site-wide notices found',
! J- H5 R8 X9 d% ~) Z" N          'not_found_in_trash' => 'No site-wide notices found in trash'3 I( q2 o$ D" f6 C1 z3 F4 O
      );
4 r! z: E/ X- u
4 G5 J( k  I- K9 d6 v      $args = array(  T- S2 z' `$ Y7 d
          'labels' => $labels,
7 Z. V; t* Q3 r7 B$ z' `          'public' => true,
* S# P. k5 ?7 ?( ~9 J' }4 H          'has_archive' => true,* W& T6 A; y8 B* k
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),4 C" ?8 w; Z' f, Y9 g- K0 e  _" ]3 u3 b
          'taxonomies' => array('category', 'post_tag'),/ R. i2 ~2 ^" `
          'menu_icon' => 'dashicons-megaphone',# Y  q, F0 \- L& ]
          'menu_position' => 5,7 ~& l& B9 n4 \
          'rewrite' => array('slug' => 'site-wide-notices')
2 `/ v1 B: e/ S' E* s# @* ~      );
2 X6 y$ i1 i, r: M1 e( y1 W4 w) L# d) T, ~+ Q
      register_post_type('site-wide-notices', $args);5 g; O' o& _+ s. p8 ^( q, R
   }
7 U" S# p  r7 Z, r5 S  p  |+ C0 g   ```
( _+ z( J8 B+ d2 j4 e" Z0 f# S3 {/ T+ ]+ f6 y/ n
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。: Q7 P8 {5 q* \& h" `

" r. f8 s8 y* h3 E3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:5 F5 e/ L- ]/ @) P
% O  j" z0 d2 @
   ```$ Z6 A+ ]5 D% n  s
   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');0 n/ V/ Z7 q) m
   function add_site_wide_notices_boxes() {
6 f5 |3 v4 c; T( N- B      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');  u) `" W/ i/ k; F
   }
" f% N+ K6 }4 ~. p' v, r) g) L! Y, X. v' J. l
   function notice_details_meta_box($post) {
, e# e4 \1 b! J/ S% K" H  h      wp_nonce_field(basename(__FILE__), 'notices_nonce');
& l% }5 w" f, W" V6 K5 P6 g& {      $notice_title = get_post_meta($post->ID, 'notice_title', true);
% u9 H. \" T2 n* A9 d- }      $notice_content = get_post_meta($post->ID, 'notice_content', true);
& j% k+ \! ~. T* @, r" A      ?>
8 M) a/ A) k& P/ c0 [      <p>
5 }; G; B( J! m7 V& I0 d6 o( R) f          <label for="notice-title">Notice Title</label><br>
, @2 d* }" Z- \          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">  u, O# x9 z1 d) g* F' x7 U3 p' L, t
      </p>+ `# u3 l; K' ~- L% a' t+ R
      <p>3 h- ^' Y; y, S
          <label for="notice-content">Notice Content</label><br>
3 z% a- [( ?1 T! X6 p* T. @          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>9 ?& s* O& D; {( z& }
      </p>
9 V6 Z1 ?' C4 P. G' _      <?php
* Y; G5 M$ D. n! I$ W2 [   }) f" ]- c0 c: y
) Z1 o7 x7 k6 Z, h- n
   add_action('save_post', 'save_site_wide_notice_meta_box');
+ k9 a8 ]9 k- N0 y6 L0 e/ N3 x   function save_site_wide_notice_meta_box($post_id) {! q" u% x. K7 O4 f- x  ?0 q; P
      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__)))
& t8 h8 ?/ w+ i* g) @0 k         return;
- ?% n' p6 S7 s% w$ l/ q0 w      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)9 F) h$ R3 X* \# h) W* M& D
         return;1 a+ d  ~" r' j9 t" s4 C- T

# }, s8 \3 k5 c+ B! M% T4 E# U* V      if (isset($_POST['notice_title'])) {! T7 K- v; Q6 X6 f6 Q
          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
2 t# [# ~2 h5 L( |6 p9 D      }
* \) T0 p. U9 h5 u  d      if (isset($_POST['notice_content'])) {
# x/ |& @, n; F' r2 A          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
+ r" X- q2 q  V      }
7 @" o" H! J: p; J6 Q; N8 R   }
, L4 H* ?" q4 S- D0 q4 L# S   ```
  _* O7 P' B! x" h! w- f" d& i4 N" g7 \
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
+ o& c3 r3 G- j0 X( c. t, |: r
: i# _5 U9 V/ c) x9 ^6 ^9 A4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:6 o+ z7 h7 \4 N
6 C% E( l: _' h2 \( M
   ```
/ J/ R8 u2 N, a0 b   $args = array(9 C5 }  Z7 }" r* N/ I
      'post_type' => 'site-wide-notices',
& Q& h; P) ~; u6 m5 ~3 c/ P% {# f7 E      'posts_per_page' => 3,
8 l  s, |" o* R# W      'order' => 'DESC',! M- o7 p: d7 ~
      'orderby' => 'date'
+ H' w. e$ s1 }6 o   );+ M" q7 y$ M1 A; K1 W5 S3 }; ?7 t
   $query = new WP_Query($args);; i5 o. p! t- h% q) x( o6 b% m
   if ($query->have_posts()) :4 @0 [  A+ ?9 l# [7 `; R" Z6 G
      while ($query->have_posts()) : $query->the_post(); ?>
. M/ y1 {& Q8 d# j          <div class="notice">' S" ~3 n& L2 j' h
              <h3><?php the_title(); ?></h3>1 y" s; g+ z+ Z, F9 l" H
              <div class="notice-content"><?php the_content(); ?></div>) g6 h! u5 _2 ~( r# f$ r/ [0 H
          </div>" ]2 n- J/ d) L
      <?php endwhile;
! u3 Y& @* K' e, r* l3 a. o+ n      wp_reset_postdata();
- Q& i7 [9 ~  `# i% x) K& `   endif;. S( n% K0 J0 o  `, T7 U
   ```5 ?) F7 H, L! t2 B6 |* `

/ y1 `! d$ t  @' m- W   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 16:24 , Processed in 0.076878 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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