首页 > 解决方案 > 限制 WordPress 多站点仪表板中的权限

问题描述

我创建了一个 WordPress 网络,并且在大多数情况下,我能够使用名为“User Role Editor Pro”的插件完美地控制对后端的访问,以根据用户角色修改访问权限。

问题是我无法弄清楚以下导航项的权限应该是什么:“

您可以在以下屏幕截图中看到我的意思:https ://www.screencast.com/t/Y91cGtJhQd

我已经搜索了 WP 文档,但似乎找不到它。我还使用以下代码在 PHP 中进行了尝试:

 function remove_menus(){
    remove_menu_page( 'my-sites.php' );    // Dashboard
    remove_menu_page( 'index.php?page=wu-new-site' );    // Dashboard
 }
 add_action( 'admin_menu', 'remove_menus' );

但这有两个问题......首先它不起作用,两个即使我确实从导航中删除它,它也会删除权限,因此任何熟悉 WP 的人都可以粘贴一个 URL 并访问它。这是不安全的。

标签: wordpresspermissionsmultisite

解决方案


您可以使用 remove_menu_page 将其隐藏,并在 admin_init 中执行单独的操作,以检查当前屏幕是 my_sites.php 还是 index.php?page=wu-new-site 并重定向到仪表板,这是一种创造性的方法。

这很可能无法解决 xml-rpc 的问题,因此您很可能也必须使用该过滤器进行过滤。

my-sites.php 似乎可供任何具有“读取”访问权限的人访问,我想原因是允许用户轻松浏览他们通过网络注册的任何站点。

您是否为此找到了一个优雅的解决方案?我认为重定向和隐藏界面可能是唯一的解决方案。


推荐阅读