You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WordPress后台布局,移除指定标签并默认打开WooCommerce订单页

原代码失效原因
  • 条件逻辑完全写反:!is_admin() 代表仅在非后台页面执行代码,而修改后台菜单的逻辑需要在后台场景下才触发,该条件直接导致代码完全不会在后台运行
  • 语法错误:代码中使用了中文弯引号‘’,PHP 仅识别英文半角引号'',会直接触发解析错误,代码无法运行
  • 菜单参数错误:
    • WordPress 后台仪表盘的菜单slug是index.php,不是你写的dashboard.php,还存在拼写错误dashbourd
    • remove_submenu_page 要求必须传入2个参数:父菜单slug、子菜单slug,你的调用参数不完整
  • 缺少角色过滤:没有添加管理员排除逻辑,不符合「仅非管理员用户生效」的需求
  • 缺少跳转逻辑:原代码完全没有实现登录后默认跳转到WooCommerce订单页的功能
完整实现方案

将以下代码添加到当前使用主题的functions.php文件末尾,或者自定义功能插件中即可生效:

// 移除非管理员用户的仪表盘、个人资料菜单
add_action('admin_menu', 'remove_unnecessary_menu_for_non_admin', 999);
function remove_unnecessary_menu_for_non_admin() {
    // 管理员保留所有菜单,直接返回
    if (current_user_can('manage_options')) {
        return;
    }
    // 移除仪表盘菜单
    remove_menu_page('index.php');
    // 移除个人资料菜单
    remove_menu_page('profile.php');
    remove_submenu_page('users.php', 'profile.php');
}

// 非管理员用户登录后默认跳转到WooCommerce订单页
add_filter('login_redirect', 'redirect_non_admin_to_woocommerce_orders', 10, 3);
function redirect_non_admin_to_woocommerce_orders($redirect_to, $request, $user) {
    // 仅对非管理员的已登录用户生效
    if (isset($user->roles) && is_array($user->roles) && !in_array('administrator', $user->roles)) {
        // WooCommerce订单页后台路径,有自定义后缀可以自行修改
        return admin_url('edit.php?post_type=shop_order');
    }
    return $redirect_to;
}
注意事项
  • 修改代码前请先备份对应文件,避免语法错误导致网站无法访问
  • 如果需要针对指定角色生效(比如仅店铺客服、运营角色),可以修改权限判断条件,替换为对应角色的slug即可
  • 如果你的WooCommerce订单页路径有自定义修改,调整admin_url内的路径参数即可

内容的提问来源于stack exchange,提问作者Freddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:15:03