限制 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 并访问它。这不安全。

解决方法

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

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

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

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