在WordPress后台隐藏“活动”和“动态”(通常指“WordPress新闻”或“概览”中的动态模块)可以通过代码实现。这不仅能净化后台界面,还能稍微提升加载速度(因为不再请求外部RSS源)。
* n" r4 \/ ~1 r- L5 N6 v( E0 e% Q5 k* z
以下是几种方法,推荐方法一,因为它最干净且无需插件。, o# C. W$ y5 _) o* Z2 g
! M' `3 H8 ~$ [, f6 j# P: G( _方法一:使用代码移除(推荐)& t, O- B* v/ s$ V) v
将以下代码添加到你的主题 functions.php 文件或自定义插件中。这段代码会针对非管理员用户隐藏这些模块,如果你希望所有用户(包括管理员)都隐藏,可以去掉权限判断。" |3 t) p, Y' p
* d6 h# `$ S: Sphp
) ?& J( s8 v" t' `/**. B1 \# V3 r5 I% a
* 隐藏后台仪表盘中的特定模块
$ Q1 `; A3 T/ _0 [ */
+ H, B( T* j. d3 f2 E) Y" I4 Gadd_action('wp_dashboard_setup', 'remove_unnecessary_dashboard_widgets');/ b: a7 M5 \' V0 }: J- R
/ ]+ U. v `/ V! u7 ~function remove_unnecessary_dashboard_widgets() {
) | F; ]7 s2 d+ ?1 ^/ h global $wp_meta_boxes;
% w8 q8 a5 A& m1 w# k" W1 V# q. O6 l
// 1. 隐藏“活动”模块 (Activity)
1 `8 p$ F! o; O5 z // 注意:在较新版本WP中,活动模块可能合并到了“概览”中,或者ID为 'dashboard_activity'' ?9 r9 m+ N$ H0 r3 |$ O
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);6 z! y2 k" S" g1 u2 [: ~
, }, u+ o) W% H& v // 2. 隐藏“WordPress新闻”模块 (WordPress News / Dynamic)
0 m; z* i. B; L. Q1 Z, y unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);1 Q* L/ _) o2 M; O
( U6 J" h# o9 r/ i, |6 D2 k
// 3. (可选) 隐藏“概览”中的快速草稿等,只保留核心状态. C h C* _7 O4 X
// unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);+ I& }8 d( P# y: H8 g, n
% v( O6 j$ o) K/ \* l // 4. (可选) 隐藏“站点健康状态”
/ G' _% o& l- p // unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_site_health']);) U" B7 ?# X: x' G* B {4 M
}
: y6 c* _& ~. Z6 ~2 m$ L/ P方法二:仅对非管理员隐藏(更人性化)
# N+ |: v6 e3 J* x4 ~如果你希望管理员仍然能看到这些信息以便监控网站状态,但普通作者/编辑看不到,可以使用以下代码:# a+ [4 m5 v& W: P' ]
& o- m4 S: ]9 ~% h7 J/ H
php
6 ` W- N; u& @: D; Z+ h7 Wadd_action('wp_dashboard_setup', 'remove_dashboard_widgets_for_non_admins');
/ ~& @# r9 m1 t4 w" N. w! ^" D5 r' h
- g5 l6 k; E( `. Q# v5 Afunction remove_dashboard_widgets_for_non_admins() {
& F* Q! x# M' |+ A5 v- t6 E // 如果是管理员,则不执行隐藏操作
# f5 F5 A2 K: s% _* C4 @ if (current_user_can('administrator')) {
5 t' R; f4 A& T# v return;/ w) A, d% j8 r9 x5 P# G
}
. A1 e/ z, C5 u$ N& x0 v7 V- m! }' w3 r
global $wp_meta_boxes;6 z) @6 U, }! S% \3 C
3 M6 a* l( N( @+ j
// 隐藏活动
1 H6 T) z6 T2 \; `+ l' N$ c& _ unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
i; V# C* b$ p+ T$ J
" J0 z7 r; w, c; \ // 隐藏WordPress新闻/动态8 u: o* o- }! ~
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
' D/ C2 S6 f2 d9 H# S3 O/ \- n / ^. }7 D: J/ A8 k
// 隐藏“快速草稿”3 L f$ ~2 Q/ U/ M& X
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
# B+ L; Y' Z, ]+ H+ `$ Q/ k
5 }; `6 Z" P2 f2 M. k // 隐藏“引入链接”" M8 K2 ^4 T1 p' e" r4 x! ]; V
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);9 s4 J% D/ L) ^
}
6 j# a' @8 m; B G- V方法三:使用CSS隐藏(简单粗暴,但不推荐)
' M% T0 s8 _0 w1 C T; b如果你不想修改PHP文件,可以通过后台的“自定义CSS”或插件注入CSS来隐藏。但这只是视觉隐藏,后台仍然会加载数据。
& K$ t* ?6 p" b8 j0 x( z# X
( v: |, g( M6 ~6 Icss
' B; [! E, k( g7 K1 J% e/* 隐藏活动模块 */1 ~: ]. u' n9 n; E& G* y# p3 S
#dashboard_activity {, e% o2 d3 ~" v. I# _* h1 M. J, f
display: none !important;
, P" o" z7 v) T' T/ G% Y}
) S8 R6 D2 p0 z: a3 l* ~. R% l/ k8 D, Q' q: k/ D/ z5 z; v! U
/* 隐藏WordPress新闻模块 */: A# z& h; k# z U$ Q, ?, I
#dashboard_primary { S) q. c0 d# e8 b% p
display: none !important;
& P3 s1 y2 d0 e% R* i}
8 }0 t& ]5 R8 `" k/ z+ k常见模块ID对照表
* U% U/ f F* s8 f如果你想隐藏其他模块,可以参考以下ID:
' J8 @; m% I3 U. @
; m8 X G- r+ I6 t& ~8 _表格2 ]. C" W m6 Y6 m6 G/ i
模块名称 模块ID (用于 unset) 位置
; n$ i+ Q" Z$ `1 _, U活动 (Activity) dashboard_activity normal/core
1 }- m% F$ _" d& I, X% `WordPress新闻 (News) dashboard_primary side/core
; {6 l6 U2 {! \& ^# D) t概览 (At a Glance) dashboard_right_now normal/core4 x# z% H& |- _: [+ o! _; F: z
快速草稿 (Quick Draft) dashboard_quick_press side/core+ V, V" ]4 B$ ?! f3 W. q
站点健康 (Site Health) dashboard_site_health normal/core
# g( Q$ T& M0 P. r. a. U欢迎面板 (Welcome) dashboard_welcome_panel (特殊处理)
. P9 l0 }- P$ C6 c, d- a+ ~补充:如何彻底禁用“WordPress新闻”的外部请求?
3 K6 x& s+ e4 A6 |0 m除了隐藏模块,WordPress默认还会在后台尝试连接 wordpress.org 获取新闻。如果你希望彻底禁止这个外部请求以提升后台速度,可以在 wp-config.php 中添加:
/ Q# z; _* f, w! P( E( I( G. F' r7 Z; i
php
9 m( z" b. J p+ g1 }' Cdefine('WP_DISABLE_NEWS_WIDGET', true);- T. ~5 k% O: ]- N5 p
(注:此常量在某些旧版本WP中可能无效,主要依靠上面的 unset 方法)* b( ]& v2 }* C- F; ^3 E% l
" {% S1 v" K7 |. u6 a6 A建议3 a7 }. K5 {; z, r8 x! ^+ f
对于你的溯源插件场景,建议使用方法二。因为普通用户(商家/作者)不需要关心WordPress官方的动态和活动,他们只需要关注自己的溯源服务状态(你之前添加的面板)。这样可以让他们的后台更专注、更清爽。
7 _+ r4 g+ O) ]/ ]. G) Y- s( Z }; ?6 q- T
参考 |