wordpress - 限制 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 似乎可供任何具有“读取”访问权限的人访问,我想原因是允许用户轻松浏览他们通过网络注册的任何站点。
您是否为此找到了一个优雅的解决方案?我认为重定向和隐藏界面可能是唯一的解决方案。
推荐阅读
- angular - Angular TypeError:无法使用@Input 装饰器读取未定义的属性“地图”
- excel-2010 - 在计算公式中用 - 替换 "VALUE!
- javascript - 从 jQuery 中的对象集合创建一个新对象
- python - 有没有办法重置 Kite Autocomplete 的 AI?
- java - 删除最小数量的顶点以在图中找到链
- java - 在 Spring Security 中替换 AuthorizationServerConfigurerAdapter 的良好参考
- flutter - 如何在 Dart 中将数字格式化为千位分隔符
- arrays - `t(sites)` 对 presto 查询意味着什么?
- sql-server - 如何使用 Grafana Dashboard 监控 SQL Server 数据库作业
- vue.js - Vue 单元测试 - 子组件和 i18n