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

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

[复制链接]

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
发表于 2023-5-18 08:34:20 来自手机 | 显示全部楼层 |阅读模式
您可以使用以下方法来快速在 WordPress 后台增加一个全站公告的功能:
- j8 E& z) M" ^6 f) E) p
8 M! B+ n8 |7 c- O  I' w1. 在 WordPress 插件库中寻找可用的公告插件,例如 WP Notification Bars、Announcements、SSP Elegant Notification Bar 等。
% S" K: }' p* Z& m' d6 x1 h. _% b7 G: m: ]- x$ |1 Y( S$ ~
2. 安装并激活您选择的插件。您可以在 WordPress 后台的「插件」->「添加新插件」界面中搜索并安装插件,然后在「插件」->「已安装插件」界面中激活它。) s0 k' i7 ~8 ?# v
3 E/ I' T7 I0 Q; |) a5 H
3. 在插件的设置页面中配置您的公告内容和样式。不同插件的设置选项和功能可能会有所不同,但通常都允许您定义公告的文本、链接、颜色、位置等。
0 x0 v5 D( s* E! L1 x+ T& s- I, G2 D" u* |1 s9 S0 C
4. 将公告添加到您的网站上。在插件设置页面中完成公告的设置后,您可以通过编辑 WordPress 主题的代码或使用插件提供的方法将公告添加到您的网站中。不同插件可能使用不同的添加方法,具体请查看详细说明或联系插件作者。
$ @3 g2 O: W8 g7 x1 }- g
9 X" H* `" w  c) ]注意,如果您使用的 WordPress 主题已经包含了公告功能,或使用了其他公告插件,可能会导致冲突或功能重复。如果您遇到了这样的问题,请查看主题文档或联系主题作者以获取解决方案。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 08:34:51 来自手机 | 显示全部楼层
如果是自己开发的话,具体要怎么做?; k1 |  v. P6 W( a; C
+ R9 v* Z* f/ j2 [, |  H
如果您自己开发 WordPress 主题或插件,并且需要在后台中增加一个发布全站公告的功能,可以按照以下步骤操作:5 q! Q5 }; W  F9 T7 q0 |) R

% f) ?, ~7 O/ q6 h, q- i1. 创建一个自定义的 WordPress 后台页面。您可以使用 `add_menu_page()` 或 `add_submenu_page()` 函数来创建一个自定义后台页面,例如:
1 X' V7 R* D* n$ A9 d3 ?) r  G
7 _$ Y- L' g" u   ```; t0 |; G+ A% p
   add_menu_page(
" v' z, A& h0 ?" w) w       '全站公告',0 d: j) n. q  G; c7 N" O
       '全站公告',6 P$ Y9 T( X) s$ n# s- _% _# J; d8 z( P
       'manage_options', //需要的用户权限
, u5 D6 I2 L5 d! E; W" |+ ]: n9 K; v% ~       'site-wide-notice', //后台页面的 slug
; o* _6 c3 x% [0 C/ y4 p  r1 v       'render_site_wide_notice_page', //用于渲染后台页面内容的函数# h1 K- y0 ^6 @! |2 N9 p4 O
       'dashicons-megaphone', //用于显示在菜单中的图标- B- r1 H/ h8 I4 t
       30 //菜单项的位置
6 a( [4 I7 ?4 h/ i   );
. [9 Z2 H3 U& Y0 k" P; K# v   ```; w; y+ r8 p; v+ g
0 @% {( {! u; G9 B+ \
   在该示例中,我们使用 `add_menu_page()` 函数来创建了一个名为“全站公告”的菜单项,并指定需要的用户权限(`manage_options`),在后台页面的 slug 为 `site-wide-notice`,用于渲染后台页面内容的函数为 `render_site_wide_notice_page`,在菜单中显示的图标为 `dashicons-megaphone`,菜单项的位置为 30。
( p; P& f/ t, m1 b
  f* ^' l8 M" W0 I7 d2. 编写用于显示和保存全站公告内容的代码。您可以在自定义后台页面中创建一个表单,让用户输入公告的标题、内容等信息,并将这些信息保存到 WordPress 数据库中的某个表中。例如:6 E9 h( w2 D5 k% V
: V/ n1 @7 ?3 J4 S% E5 o
   ```0 z7 O0 S* j! g' ?! o
   function render_site_wide_notice_page() {/ Z& Z7 }2 L6 M4 g7 h
      // 渲染后台页面内容
) b5 }& r& ?$ b      echo '<div class="wrap">
6 Z2 B& l# b1 a" S          <h2>全站公告</h2>7 Q  [& c. g3 N9 |) X
          <form method="post" action="">, u7 ?" \2 |2 k8 l! R& B) {; h% J
              <label for="title">公告标题:</label>
) ]/ J8 ~; e( L, Y7 t! Z              <input type="text" name="title" value="'.get_option('site_wide_notice_title').'"><br><br>7 l/ T6 j/ l% D. v
              <label for="content">公告内容:</label>
% E! l* C0 y1 ?' Y3 x+ L              <textarea name="content">'.get_option('site_wide_notice_content').'</textarea><br><br>, \6 u& ~7 J6 K, I! L! y
              <input type="submit" name="submit" value="保存设置">
: C" H9 i; P: R7 `4 L7 K" J2 e          </form>
1 y# v& E$ C$ q% l7 t      </div>';
% Q' B4 A5 w7 b  V5 G( r% }2 t% w
# s+ ~! V8 y" u0 R* s1 z/ D      // 处理表单数据
+ m+ z8 C( H* @; {6 L. U      if (isset($_POST['submit'])) {
6 i0 u( q& b" [2 A/ x* g! F2 f          update_option('site_wide_notice_title', sanitize_text_field($_POST['title']));1 [8 M2 g1 }# U- \/ n/ x' V" D
          update_option('site_wide_notice_content', sanitize_text_field($_POST['content']));5 k, [/ p( R1 X5 x' F5 w9 A: ^
      }
8 f4 [9 J, o1 R   }
- u5 |9 S. a: l1 c   ```! `$ f5 [, n" p) e! J( w2 E
) q; Z. t+ p- z
   在该示例中,我们创建了一个表单,让用户输入公告的标题和内容,并使用 `update_option()` 函数将这些数据保存到名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的 WordPress 配置项中。如果用户点击提交按钮,则将表单数据更新到配置项。% b  a" |1 X4 H( Y

- C8 N$ s9 t, q4 ]. }3. 在 WordPress 主题中显示全站公告。您可以通过在 WordPress 主题的 `header.php` 文件中添加代码,将公告内容显示在网站的顶部或其他位置。例如:2 d- U5 l7 l4 r- E' }3 O& H
, F1 v" q/ Y6 d; ]# c5 d
   ```
+ S0 C  \/ H4 Y3 d; {9 @   <?php
+ v% g" v& m& e. x+ T  n   $site_wide_notice_title = get_option('site_wide_notice_title');2 j8 Z$ [: v5 j- h3 w& p3 Q8 P
   $site_wide_notice_content = get_option('site_wide_notice_content');/ Z! y. T6 R4 |! e* E' H1 m  W
   if (!empty($site_wide_notice_title) || !empty($site_wide_notice_content)) {
! d! g1 Z2 H; q( G8 d       echo '<div class="site-wide-notice">';
. E6 Q' E' b. c5 W9 z       if (!empty($site_wide_notice_title)) {
# l. ]( [& b* T! q$ a0 F           echo '<h3>'.$site_wide_notice_title.'</h3>';
8 V* G) D2 r, w6 Q) _; d       }
/ w# ^4 _3 `3 h& g8 ^- d       if (!empty($site_wide_notice_content)) {
; I" A1 _9 C0 z- e( p  x, R           echo '<p>'.$site_wide_notice_content.'</p>';1 }: S( W( y0 U& C/ d- w
       }
7 b0 G6 [0 q  [, I2 _6 m8 y; @) Q       echo '</div>';
/ \2 f& m, X( z1 r8 [( Z" s   }3 R& l  \, Z$ J: D  m
   ?>
! `0 r9 f; c; U$ \   ```. S! a3 f0 `8 v+ }: F  y
4 }  j8 f  ~8 I0 H) U4 q' B( h. f6 G
   在该示例中,我们检查 WordPress 配置项中名为 `site_wide_notice_title` 和 `site_wide_notice_content` 的值是否为空,如果不为空,则在 `header.php` 文件中添加一个名为 `site-wide-notice` 的容器,将公告标题和内容显示在其中。) v% J4 K2 O* W& u/ z+ H+ H% V

$ J" j6 n: ?/ h9 }- i' @& O% l请注意,本示例仅提供了一个框架,具体实现可能会根据您的需求和实际情况有所不同,您需要根据自己的需要进行修改和调整。同时,为了确保安全性,您还会需要对用户输入的数据进行适当的验证和过滤,例如使用 `sanitize_text_field()` 函数来过滤表单数据。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 09:26:50 来自手机 | 显示全部楼层
那如果需要发布多条公告,并进行管理,要如何实现?
5 |! \& M- A& i) `! H' F$ s4 T$ n) e! i# _( o, p9 F, b
您可以创建一个自定义的 WordPress文章类型,例如“公告”,并对其进行自定义化,以实现发布多条公告并进行管理的功能。以下是具体步骤:
% Z" c$ d# K- g& J7 v2 G$ s( x7 I% \9 u" a! A9 i" F9 ]
1. 创建一个自定义的文章类型:在你的主题 `functions.php` 文件中,添加以下代码:" [1 U9 b: I$ B% ~

, h2 p6 |5 I! w- X  {```' A& x. d5 Z( O) u1 N! z4 U( {
function create_custom_post_type() {
: ?6 `( k- T7 ^3 T8 z% L    $args = array(/ Y1 E' ~# F1 O9 M% M
        'labels' => array(
3 r, p8 T$ @3 I9 k3 L" A% [            'name' => '公告',
. D* b2 }5 V1 h9 T# j6 j            'singular_name' => '公告'
) Q3 h1 g: H1 e( E        ),
; [0 r1 {4 s* f+ B  Q        'public' => true,! @9 e3 W; f' [+ d1 s
        'has_archive' => true,
  l, t2 T7 w5 u4 t        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions')," G- e, W8 t* x( K9 h  y& q, B
        'taxonomies' => array('category', 'post_tag'),
0 J1 i; X8 q" x- }0 w        'menu_icon' => 'dashicons-megaphone',, a8 L+ `6 J& Q5 S9 K
        'menu_position' => 5,: e1 I( i9 U; X  ?  L6 b$ a
        'rewrite' => array('slug' => 'site-wide-notices')
, r! H- W; G" `% [4 a    );# E1 W. [) e9 \, Q
    register_post_type('site-wide-notices', $args);0 v# S8 Q/ k$ }! J
}8 Z$ i. t" ], M' {$ S3 ^2 u; \
add_action('init', 'create_custom_post_type');& W& Q* v( }+ L- l+ Z7 R; S1 x4 D
```% C" G( Q8 }# d) |
9 a& J- t* C) o  s7 {" N2 b/ D% ^
在示例中,我们注册了一个名为 "site-wide-notices" 的新的文章类型,并定义了文章类型名称、缩略名、文章类型支持的功能、分类法、管理菜单图标等设置。
& v! U2 v$ S. M, h( L9 g8 J/ V# ^7 z- P4 U: B
2. 在你的 WordPress 后台中创建新文章类型“公告”:现在,你就可以在 WordPress 后台中通过导航到“公告”菜单,来添加、编辑或删除公告了。您可以在编辑公告的页面中添加标题、内容、特色图像或其他自定义的元数据字段。
, r" c& N$ d8 e
3 S( {5 l2 \! o1 X# O. F7 Q3. 在主题中显示公告:在您的 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
/ m2 l! _9 {# |. C* I
5 S5 ~1 y# J; H3 f% ^0 T```5 K- j2 S& a. l
$args = array(
) z) P) d! d" W1 _$ O3 R    'posts_per_page' => 3, // 显示的公告数量
  ]6 I- ?, k- Z" E- H    'post_type' => 'site-wide-notices', // 公告文章类型
! O; \( ~. Z. R% ~' {. w, R, O    'post_status' => 'publish', // 公告状态, X. P1 M' t2 h! f0 |. r
    'order' => 'DESC' // 排序方式2 J# N2 T2 ]/ R6 l/ A, s
);5 N# p7 G9 J) d6 T1 T+ B) W

0 T# h; H5 x# e  n( h$notices = new WP_Query($args);/ p) F+ k: ^5 C# I2 R
if ($notices->have_posts()) :
: b- s7 P1 i' a    while ($notices->have_posts()) : $notices->the_post(); ?>2 r% F1 U) |$ d' x% Q  S% z
        <div class="notice">4 E; Q! i3 S2 T5 J2 P5 V
            <h3><?php the_title(); ?></h3>5 F  [9 V' A$ Y. u1 B0 m7 X* ^7 l
            <div class="notice-content"><?php the_content(); ?></div>) E. A/ H% y5 N/ \
        </div>3 O& m" R" Y2 ^4 \; w2 D4 U
    <?php endwhile;2 t, e1 N2 ]2 {8 R. I" C3 Y' X
else :8 G7 o# l; H3 E+ ^
    echo "暂无公告";
4 Z* o! p2 s* P9 e1 M- o9 c+ k& v1 Kendif;& h" ^% Q8 l5 h7 I! W
wp_reset_query();
8 h& h( f1 P5 w- I& o; b' O# Q% q```; ~4 _/ y+ T" R
# D; w$ M3 s3 s; S+ @- x7 h
这段代码将使用 WordPress 的 `WP_Query` 类从公告文章类型中获取最新发布的 3 条公告,并在前端页面中循环遍历并显示公告标题和内容等信息。, m+ S( f& |0 T+ s

$ S4 M& c- p8 }- h/ I! N9 c以上便是实现 Wordpress 后台发布多条全站公告的基本步骤。需要注意的是,自定义文章类型可对应多篇文章,具体根据您的需求进行调整。
回复

使用道具 举报

338

主题

520

回帖

3462

积分

管理员

积分
3462
QQ
 楼主| 发表于 2023-5-18 09:27:55 来自手机 | 显示全部楼层
如果不想修改functions.php,有其他更好的办法吗?$ B/ s# T' v' p# @+ p- G9 z3 N
  {: k0 Q$ M/ W, v7 g, O
如果您不想修改主题 `functions.php` 文件,也可以创建一个自定义插件来添加新的文章类型。
* n2 Z9 U. g, H7 C0 D5 q; S! k/ P! p% E0 l+ E" k) {
以下是创建自定义插件的步骤:
4 r+ _& d' w, s% ]% q( K+ F
; S: j/ |$ W- F1. 创建新插件:在 WordPress 插件目录中创建一个新的子目录,例如 `site-wide-notices-plugin`,然后在该目录中创建一个新的 PHP 文件,例如 `site-wide-notices-plugin.php`,并在文件头部添加必需的标记,例如:
$ i+ G  R+ Z. m! n7 w( `& t. m/ H+ y
& x& Z# G+ c  Q- z/ I1 A   ```, j1 H1 m2 s5 U: W5 W
   <?php
- a  D: d( q$ w0 m   /*
) A* G( r1 _  C/ f   Plugin Name: Site Wide Notices Plugin
0 B" t  ]* `) P. Y, q   Description: Adds a new custom post type for site-wide notices.; m" j: S8 m) r7 R' n0 j1 n
   Version: 1.0  v- ]/ @  @/ g  ~7 c
   Author: Your Name
; L4 Z  ~4 `8 X+ m, P   Author URI: http://example.com
0 A# `) F& r  i1 V  U6 w7 t   */: M" `; n! U( c" w

/ U6 g/ ^/ O! ~% H   // Add plugin code here..." m+ d  h4 M8 r7 u
   ```3 }9 f) M+ D6 q/ c" \! x# G# ~1 i

' B& z/ f. n( S9 h2 p# _   在示例中,我们创建了一个名为 `Site Wide Notices Plugin` 的新插件,该插件添加了一个新的自定义文章类型,并指定了版本、作者和作者 URI 等元信息。2 k0 v. p' |  h, x+ P
  n# z% M6 ~1 W0 P( C1 e
2. 在插件中注册新的文章类型:在 PHP 文件中添加以下代码,用于注册一个名为“site-wide-notices”的自定义文章类型:
+ r3 j5 I" ~" B- z# _3 ?2 \. ?5 e. M* u
   ```
+ E: N& Z; W$ b4 Y5 B   add_action('init', 'create_custom_post_type');
0 D- ^4 P9 {: y, p# {( L) ~! F   function create_custom_post_type() {) `1 K4 U( v+ c2 k# P
      $labels = array(4 F" a% p+ V0 e
          'name' => 'Site Wide Notices',7 D0 A- v+ S: G# C; }5 s! k2 L
          'singular_name' => 'Site Wide Notice',3 l. b8 M3 f  k6 g% k! l+ [
          'add_new' => 'Add New',/ q3 z, w3 e: J7 N  r; \0 A
          'add_new_item' => 'Add New Site Wide Notice',
, N, w+ k1 J+ h! h0 X          'edit_item' => 'Edit Site Wide Notice',
! ~3 r3 d' d5 d+ d          'new_item' => 'New Site Wide Notice',2 j8 F' ?9 P. G& }7 C; H
          'view_item' => 'View Site Wide Notice',5 a' ]& Z6 ]# ^$ `0 q" c
          'search_items' => 'Search Site Wide Notices',- v) v! _% m  N9 E: O* W
          'not_found' => 'No site-wide notices found',1 F1 \3 p+ f7 n6 A( m0 ?, j. p
          'not_found_in_trash' => 'No site-wide notices found in trash'
& B" I+ H+ q/ Q+ q7 M1 {      );
  D. q' }( ?" p9 c+ Q; i- }6 T& K3 h' m# }. }6 R
      $args = array(1 X$ ^8 M  J3 Y
          'labels' => $labels,8 w- H" e3 O! R
          'public' => true,
# @3 b; K8 k* s2 c" J6 J          'has_archive' => true,; i% V0 K+ g2 e( R# S9 Z  n
          'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revisions'),
0 u7 p* }' o4 l8 ^, ?9 Z. f          'taxonomies' => array('category', 'post_tag'),1 `# O2 }+ i5 D/ c, K) M9 G2 ^( k
          'menu_icon' => 'dashicons-megaphone',
+ v' ~: {# ?& }8 `; l( B          'menu_position' => 5,
, j8 U4 r- G4 d8 c9 ]3 ]( \! q          'rewrite' => array('slug' => 'site-wide-notices')" U+ ^2 ^6 j) [& A" ^( f
      );
& ~/ y5 c2 j- @+ u6 }# f7 d( w$ R$ Y6 {3 Z/ s
      register_post_type('site-wide-notices', $args);
  y; @9 L% N, e# j% k1 ?0 @   }, P# i) Q9 n! F5 C# ~0 s7 k- e
   ```* M( L! x9 b- K) V) B4 t8 Y
8 G9 C- W! D- V. `
   在示例中,我们使用 `register_post_type()` 函数注册一个新的文章类型,并定义了该文章类型的名称、标签和其他设置。
4 l0 V. H7 r+ y; [1 g3 ~/ ^$ k% O8 x: C; ?
3. 在后台中添加公告编辑页面:您可以使用 `add_meta_box()` 函数在后台中添加公告编辑页面,并自定义字段和元数据,例如:
9 W3 _& ?5 L* E+ }
9 O: }# h6 n. i$ C/ W) H5 z+ \* {5 M1 P   ```
% |1 k  j- m9 l& T6 h3 Q7 f" J* b$ W   add_action('add_meta_boxes', 'add_site_wide_notices_boxes');4 H* ^$ l4 y& A7 I
   function add_site_wide_notices_boxes() {
" b- e; [; P, {: W6 H3 c      add_meta_box('notice-details', 'Notice Details', 'notice_details_meta_box', 'site-wide-notices', 'normal', 'high');+ U1 _! v% [1 v+ `2 R6 O5 y
   }3 f5 b3 j1 V' q# m& C) \9 u3 q
8 w! O" q1 T/ V4 w
   function notice_details_meta_box($post) {
; c+ X4 f+ ^- {8 J) m      wp_nonce_field(basename(__FILE__), 'notices_nonce');! q* d3 q. O+ ^" r5 V* s1 ^
      $notice_title = get_post_meta($post->ID, 'notice_title', true);; D; Z+ q+ U6 R1 c2 G8 U
      $notice_content = get_post_meta($post->ID, 'notice_content', true);5 |5 H: p1 \! Z1 z# r% B
      ?>
/ W) N( x7 z/ a/ ?/ t7 v+ Q      <p>0 E+ G. E9 l/ N. i
          <label for="notice-title">Notice Title</label><br>. H9 {9 n' p/ |* R% e8 [
          <input type="text" id="notice-title" name="notice_title" style="width: 100%;" value="<?php echo $notice_title; ?>">2 Y0 Q- l* C8 Y! W
      </p>
9 h4 g. z7 M; ?# ^4 v      <p>" Q# i/ A0 w$ l. T
          <label for="notice-content">Notice Content</label><br>" o& e3 z. N/ F3 r. x. x# x
          <?php wp_editor($notice_content, 'notice-content', array('textarea_rows' => 10)); ?>
- |9 C# z5 Q; ^' S* h+ M7 {' c      </p>
+ {! F% \1 w8 C* s; `) X* V+ s      <?php
, k. D5 u! b# ]1 [   }" B: _  c; B. D* p0 G0 ^4 b
4 C6 y+ l3 H1 v3 M
   add_action('save_post', 'save_site_wide_notice_meta_box');% ]$ W3 a% ?+ \$ q) E
   function save_site_wide_notice_meta_box($post_id) {
! a/ l$ X1 b" o# V7 [      if (!isset($_POST['notices_nonce']) || !wp_verify_nonce($_POST['notices_nonce'], basename(__FILE__))); T1 O+ E- @7 ~) }: n
         return;, U$ t+ _+ y+ N9 |+ a# [2 ~
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)# z" l! O8 o& F: N% t2 q8 e
         return;
/ g, x% ~3 c1 ]
8 p/ ?: A: v3 ~# p: u8 o      if (isset($_POST['notice_title'])) {
' K6 L" c8 O7 ~5 Z* X7 Y$ g9 M( |          update_post_meta($post_id, 'notice_title', sanitize_text_field($_POST['notice_title']));
* J. K+ {* n! t& J4 Q2 A      }, S  @: N, ~- b/ M! N, M1 u- W
      if (isset($_POST['notice_content'])) {8 N% c0 `5 s2 |/ y+ \
          update_post_meta($post_id, 'notice_content', wp_kses_post($_POST['notice_content']));
0 O5 y; }7 [* N' Y, L- [1 \      }; t( r* E1 ]+ z/ r9 Y
   }# M; U- m# `" p5 p) L% F
   ```
# i: g7 M4 Q% D/ X6 K" M1 f: [. V% D7 ]& q/ y4 _1 x, S) S6 d' L
   在示例中,我们使用 `add_meta_box()` 函数添加了一个名为 `notice-details` 的元框,用于在编辑页面上显示自定义字段和元数据。在 `notice-details_meta_box()` 函数中,我们使用 `wp_editor()` 函数添加了一个可视化编辑器,用于编辑公告内容。在 `save_site_wide_notice_meta_box()` 函数中,我们使用 `update_post_meta()` 函数将公告标题和内容保存到 WordPress 数据库中。
1 D( T- a: Z# P9 j/ d5 A" m" ?* n9 e; y# M; w4 g. K" X' D
4. 在前端页面中显示公告:在 WordPress 主题文件中添加以下代码,以在您的网站上显示公告:
% r; O0 |% h8 ~5 @9 O# J& ?- j. m8 @$ Q9 c; B) \
   ```- U8 X+ w" v; d2 g
   $args = array(
6 y7 I- Y. v4 u$ q% `      'post_type' => 'site-wide-notices',
1 I- J) M) Y7 z' y" \/ _! t2 ~      'posts_per_page' => 3,4 J' M6 S0 n, J; y$ E$ W
      'order' => 'DESC',) I; w* l) Y0 I5 n; q  R; J' }* d& F" D8 x
      'orderby' => 'date'
: U. q, u2 j0 r2 n$ x   );  m' V& J; ]) V* L+ d
   $query = new WP_Query($args);( E5 |# f' f) i5 T9 @
   if ($query->have_posts()) :: C/ h) r* g, f+ Q
      while ($query->have_posts()) : $query->the_post(); ?>
) q1 R3 R, N# z$ a          <div class="notice">1 K6 ^7 Y* n' r  F; m
              <h3><?php the_title(); ?></h3>
% P! Q6 R8 Y3 U+ {5 ]) Z. b3 R              <div class="notice-content"><?php the_content(); ?></div>
- q( ^4 ~( _; a4 D  o          </div>* r+ p, J/ C8 Z- M% K
      <?php endwhile;
5 D2 [! d6 j3 i# [, p9 N      wp_reset_postdata();
  ?9 ~( p3 |& n% g  y3 {   endif;- c# k' @# d6 o, p
   ```
+ v& s3 C1 o1 _# z5 c% W$ f9 j4 L' \7 I' I8 M% P% w1 S
   在示例中,我们使用 `WP_Query` 类从 `site-wide-notices` 文章类型中获取最近发布的 3 条公告,并在前端页面中循环遍历并显示标题和内容等信息。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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