如何使WordPress移除后台菜单代码仅对超级管理员以外用户生效?
解决WordPress仅移除非超级管理员后台菜单的问题
没问题,这个需求很容易实现,只需要给你的代码加上超级管理员权限判断就可以了。WordPress内置了is_super_admin()函数,能帮我们识别当前登录用户是不是超级管理员(单站点环境下就是最高权限的管理员账号,多站点环境下是网络超级管理员)。
修改后的代码如下:
add_action( 'admin_menu', 'notadmin_remove_menus', 999 ); function notadmin_remove_menus() { // 仅对非超级管理员执行菜单移除操作 if ( !is_super_admin() ) { remove_menu_page('edit.php'); // 文章 remove_menu_page('edit.php?post_type=page'); // 页面 remove_menu_page('upload.php'); // 媒体库 remove_menu_page('jetpack'); // Jetpack remove_menu_page('users.php'); // 用户 remove_menu_page('tools.php'); // 工具 remove_menu_page('edit-comments.php'); // 评论 remove_menu_page('edit.php?post_type=featured_item'); // 自定义文章类型:featured_item remove_menu_page('edit.php?post_type=feedback'); // 自定义文章类型:feedback remove_menu_page('edit.php?post_type=blocks'); // 自定义文章类型:blocks } }
关键说明:
!is_super_admin():这个条件判断会确保只有不是超级管理员的用户才会触发菜单移除逻辑,超级管理员登录后台时不会受到影响。- 保持
999的优先级:这个数值足够高,能保证我们的代码在所有后台菜单都加载完成后再执行移除操作,避免因为菜单还没创建就执行移除导致失效。
你可以把这段代码替换原来的片段,放到主题的functions.php文件里,或者自定义插件中使用。
内容的提问来源于stack exchange,提问作者Anderson
相关产品推荐
相关产品推荐

