在WordPress后台隐藏“活动”和“动态”(通常指“WordPress新闻”或“概览”中的动态模块)可以通过代码实现。这不仅能净化后台界面,还能稍微提升加载速度(因为不再请求外部RSS源)。- D2 J0 Q; W! P g2 g
% z. @" g: R( g0 ]" K
以下是几种方法,推荐方法一,因为它最干净且无需插件。
$ m- \3 g# l: u) H9 l6 t9 g) @" u! f
方法一:使用代码移除(推荐)
; C ]9 c7 `4 v5 |将以下代码添加到你的主题 functions.php 文件或自定义插件中。这段代码会针对非管理员用户隐藏这些模块,如果你希望所有用户(包括管理员)都隐藏,可以去掉权限判断。
/ `5 s, N T1 I$ p3 I
9 S* p( a& l* w( Dphp; b9 B; O7 S6 z: c9 h r
/**5 g o* A S$ J$ A
* 隐藏后台仪表盘中的特定模块
M. j/ s5 o, E */) R/ l4 b" W" A6 O8 R4 k
add_action('wp_dashboard_setup', 'remove_unnecessary_dashboard_widgets');
/ [- k9 o0 C1 g( n
: s7 o( w: S0 J' w* i& ?/ ?$ hfunction remove_unnecessary_dashboard_widgets() {
" E$ v( a3 s, z& s global $wp_meta_boxes;
5 [$ ]# t) ^& V; R& Y1 W4 `- a7 B4 l0 ^6 R3 @
// 1. 隐藏“活动”模块 (Activity)
8 r. ]- o& k) S) N8 d // 注意:在较新版本WP中,活动模块可能合并到了“概览”中,或者ID为 'dashboard_activity'
+ m+ A% M+ z3 C; y( B/ H unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);6 M$ s5 s* g6 R7 p9 t" r& I+ _
, z/ R" m3 g4 h& {
// 2. 隐藏“WordPress新闻”模块 (WordPress News / Dynamic)
8 p3 F9 D9 F+ d! t! C% s unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
2 h5 b5 u0 I+ p) B; B4 n
2 L* ~: C3 X" q Q // 3. (可选) 隐藏“概览”中的快速草稿等,只保留核心状态
* E( k% G+ r; L$ O# x g1 k- _ // unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
# T) ? N8 c# K: l / }+ }, ~' y# m* \9 ]4 a5 H5 Z3 x
// 4. (可选) 隐藏“站点健康状态”
3 k; v- J; x% q; h' b // unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_site_health']);
! `3 e: s# |! u1 R& D* ~}2 M& k+ ~% f. e) r$ }
方法二:仅对非管理员隐藏(更人性化)
+ y& k2 j' L, k( r如果你希望管理员仍然能看到这些信息以便监控网站状态,但普通作者/编辑看不到,可以使用以下代码:
: t5 B7 [8 M2 |' @( q" c0 a; q) {' b
6 E) J! ]+ @) z6 n- wphp
' F2 B; ]# ~' d( U% S; Y0 }add_action('wp_dashboard_setup', 'remove_dashboard_widgets_for_non_admins'); |" |- A% r' L" O! F: ?% z
9 M0 A9 d6 b4 {7 ~3 q* ]' J
function remove_dashboard_widgets_for_non_admins() {
, ], B1 i2 m+ V o( f0 R // 如果是管理员,则不执行隐藏操作
5 Q) {" ~# m! P9 f% j if (current_user_can('administrator')) {
+ s& B' d2 K% N- Y return;
# s. s5 C0 l* ?& H6 c1 U g) K, B }
7 R$ A- ]' U* M
4 W7 j+ t* L% [% W ~- i: I global $wp_meta_boxes;
8 d6 }1 h& y* n3 e! m( Z$ j
! j" Y) h& ^* d5 J( |) s3 Y // 隐藏活动* h4 g0 F( a* U& d
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);) s; s4 m' f6 O T# R
2 `3 g$ z; w7 w. c) z3 G P$ B
// 隐藏WordPress新闻/动态1 R& K1 x- z5 S, z) c
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
& f5 \) U" O% @9 a% f4 r " R4 b; k! g2 ~! a& F
// 隐藏“快速草稿”
, t/ {$ A- X, E, x- \0 M$ z' { unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);& ^# I* n5 A% l( h; H, `3 }* h8 O
1 R7 q7 ] y8 }
// 隐藏“引入链接”
- n" d8 R! v1 p, v3 \2 e2 n) p& s unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);1 p0 b: v: e/ G" w6 o! E
}) v4 ?4 V8 R. w* Q
方法三:使用CSS隐藏(简单粗暴,但不推荐)
3 q9 n* w( j" r. V6 Z- i如果你不想修改PHP文件,可以通过后台的“自定义CSS”或插件注入CSS来隐藏。但这只是视觉隐藏,后台仍然会加载数据。
! t5 z& h9 }; B, l6 i9 M, e! e* G. Y) A6 g+ y5 S
css
4 K* b$ S/ {( R/* 隐藏活动模块 */
4 k7 W$ X& Z5 S( G, N4 X7 x5 p$ d# E4 M#dashboard_activity {5 ?$ r$ k- h( G5 ]) c, X; p
display: none !important;5 p, A3 i/ Z0 O1 H, P
}
! J# z* }; d1 k, n8 B
3 m- S0 G6 X% ^. U' Q/ K; c) G z/* 隐藏WordPress新闻模块 */2 Z/ ] y' k/ S% [: K K
#dashboard_primary {8 U$ P/ k% F d
display: none !important;# `2 J( B, S' G" U6 e
}0 g9 Q( _/ k7 A# b0 Y
常见模块ID对照表
8 E5 B( B/ F3 N" h3 }. u6 r0 ?% `如果你想隐藏其他模块,可以参考以下ID:
) V+ j" [" z l. S( V9 Z3 F* V& {8 ^7 N: M8 E
表格7 E- ~; a- ]+ d% ^% I# E2 s, u
模块名称 模块ID (用于 unset) 位置
' a* y+ U8 L; N+ ?: N+ \5 W3 G. G' r活动 (Activity) dashboard_activity normal/core
6 h( |7 g6 C* a! J4 KWordPress新闻 (News) dashboard_primary side/core4 x4 Q/ |, w0 c2 d' i
概览 (At a Glance) dashboard_right_now normal/core" P& g7 r* ?5 X0 T/ ~- `0 K1 Q l
快速草稿 (Quick Draft) dashboard_quick_press side/core
, M, ?7 J8 N) a V) D( C站点健康 (Site Health) dashboard_site_health normal/core' E: }0 z! q" s" h
欢迎面板 (Welcome) dashboard_welcome_panel (特殊处理)
; W: [1 N2 _) U' m补充:如何彻底禁用“WordPress新闻”的外部请求?
: U, m( k$ I# c$ r除了隐藏模块,WordPress默认还会在后台尝试连接 wordpress.org 获取新闻。如果你希望彻底禁止这个外部请求以提升后台速度,可以在 wp-config.php 中添加:
" x- }8 m! E# i: A1 V- X
" F: X' F! n& g6 U8 j: jphp
: X/ m* @8 c' b# }8 l- [6 Rdefine('WP_DISABLE_NEWS_WIDGET', true);
! a) B7 u2 ]* ^$ l+ B* Y2 m(注:此常量在某些旧版本WP中可能无效,主要依靠上面的 unset 方法)
$ m7 m4 _9 E5 K3 u$ ?" W* S
: Q o/ m( @: U/ j' h X建议8 E* U' w& y8 U. j$ x
对于你的溯源插件场景,建议使用方法二。因为普通用户(商家/作者)不需要关心WordPress官方的动态和活动,他们只需要关注自己的溯源服务状态(你之前添加的面板)。这样可以让他们的后台更专注、更清爽。
( ?9 n5 O/ y4 x6 b' H
4 f& d% q$ L7 b Y0 ^" v9 _参考 |