如何在WordPress多站点中移除用户后台的主站点链接
WordPress多站点移除用户管理后台主站点链接操作方法
你要移除的目标入口参考截图:
以下是两种可直接落地的实现方案:
方案1:添加代码到当前主题函数文件
适合不经常更换主题的场景,操作步骤如下:
- 登录WordPress后台,进入「外观」-「主题文件编辑器」
- 在右侧文件列表找到当前激活主题的
functions.php(主题函数文件) - 将下方代码片段粘贴到文件最末尾,点击「更新文件」保存即可生效
add_filter( 'get_blogs_of_user', 'hide_main_site_for_non_super_admin', 10, 3 ); function hide_main_site_for_non_super_admin( $blogs, $user_id, $all ) { // 仅对非超级管理员隐藏,超级管理员仍可见主站点入口 if ( ! is_super_admin( $user_id ) ) { foreach ( $blogs as $blog_id => $blog_info ) { // 默认多站点主站点ID为1,如果你修改过主站点ID,替换为实际数值即可 if ( $blog_info->blog_id == 1 ) { unset( $blogs[$blog_id] ); } } } return $blogs; } // 同时移除顶部管理栏的主站点入口 add_action( 'admin_bar_menu', 'remove_main_site_from_admin_bar', 999 ); function remove_main_site_from_admin_bar( $wp_admin_bar ) { if ( ! is_super_admin() ) { // 替换1为你的主站点ID $wp_admin_bar->remove_node( 'site-1' ); // 如果需要同时隐藏网络管理入口,可取消下一行注释 // $wp_admin_bar->remove_node( 'network-admin' ); } }
注意:如果后续更换主题,需要重新将代码添加到新主题的functions.php文件中
方案2:自定义插件实现(更推荐)
该方案不会受主题更换影响,长期生效,操作步骤如下:
- 通过FTP或者主机面板的文件管理器进入站点根目录的
wp-content/plugins/文件夹 - 新建一个命名为
hide-main-site-link的文件夹 - 进入新建的文件夹,创建一个命名为
hide-main-site-link.php的文件 - 将以下代码粘贴到该文件中保存:
<?php /* Plugin Name: 隐藏多站点主站点入口 Description: 为非超级管理员用户隐藏后台所有主站点相关链接 Version: 1.0 */ add_filter( 'get_blogs_of_user', 'hide_main_site_for_non_super_admin', 10, 3 ); function hide_main_site_for_non_super_admin( $blogs, $user_id, $all ) { if ( ! is_super_admin( $user_id ) ) { foreach ( $blogs as $blog_id => $blog_info ) { // 替换1为你的主站点ID if ( $blog_info->blog_id == 1 ) { unset( $blogs[$blog_id] ); } } } return $blogs; } add_action( 'admin_bar_menu', 'remove_main_site_from_admin_bar', 999 ); function remove_main_site_from_admin_bar( $wp_admin_bar ) { if ( ! is_super_admin() ) { // 替换1为你的主站点ID $wp_admin_bar->remove_node( 'site-1' ); } } ?>
- 回到WordPress后台「插件」页面,找到名为「隐藏多站点主站点入口」的插件,点击启用即可
配置完成后,你可以使用非超级管理员账号登录后台验证效果,超级管理员账号不受影响仍可正常看到主站点入口。
内容的提问来源于stack exchange,提问作者Husain Ahmed
相关产品推荐
相关产品推荐

