定制站可以为编辑精简后台界面,但应按 capability 和具体页面处理。全站隐藏“帮助”“显示选项”会让管理员和支持人员也失去诊断入口,并不能阻止用户直接调用功能。
移除部分顶部工具栏节点
<?php
add_action(
'admin_bar_menu',
function ( WP_Admin_Bar $admin_bar ): void {
if (
current_user_can( 'manage_options' )
) {
return;
}
$admin_bar->remove_node( 'new-content' );
$admin_bar->remove_node( 'comments' );
$admin_bar->remove_node( 'wp-logo' );
},
999
);
节点 ID 比显示文字稳定。管理员保留完整工具栏,普通编辑只看到工作所需入口。
若产品确实要求某些用户不显示前台工具栏,可按 capability 过滤:
<?php
add_filter(
'show_admin_bar',
function ( bool $show ): bool {
return current_user_can( 'edit_theme_options' )
? $show
: false;
}
);
按页面隐藏“显示选项”
<?php
add_filter(
'screen_options_show_screen',
function (
bool $show,
WP_Screen $screen
): bool {
$restricted_screens = array(
'dashboard',
'edit-shop_order',
);
if (
! current_user_can( 'manage_options' ) &&
in_array(
$screen->id,
$restricted_screens,
true
)
) {
return false;
}
return $show;
},
10,
2
);
显示选项本身常用于列显示、分页数量和编辑偏好。隐藏前要确认不会妨碍用户完成任务。
按页面移除帮助标签
<?php
add_action(
'current_screen',
function ( WP_Screen $screen ): void {
if (
current_user_can( 'manage_options' )
) {
return;
}
if ( 'dashboard' === $screen->id ) {
$screen->remove_help_tabs();
}
}
);
如果帮助内容对公司流程有价值,更好的做法可能是替换为内部操作说明,而不是全部删除。
维护原则
- UI 精简只是一层展示策略,服务端能力检查才是授权。
- 不按角色名硬编码;同一用户可能有自定义 capability。
- 插件升级后节点 ID 和 screen ID 可能变化,应在暂存环境检查。
- 给支持人员保留可恢复开关,避免故障时无法进入必要页面。
- 记录为什么隐藏某项,以及哪个团队负责这一约定。
把后台做得简单,目标是减少认知负担,不是让系统状态变得不可见。