最简单的解决方案是加入load-index.php
并将非管理员用户重定向到其配置文件。有效阻止对该页面的访问。对于本例,我将在一个函数中包装权限检查(我们将多次使用它)。
function _wpse206466_can_view()
{
// or any other admin level capability
return current_user_can(\'manage_options\');
}
add_action(\'load-index.php\', \'wpse206466_load_index\');
function wpse206466_load_index()
{
if (!_wpse206466_can_view()) {
$qs = empty($_GET) ? \'\' : \'?\'.http_build_query($_GET);
wp_safe_redirect(admin_url(\'profile.php\').$qs);
exit;
}
}
如果用户无法访问“管理”菜单中的“管理索引”页面,您可能还想将其删除。要做到这一点,请
admin_menu
, 检查功能,然后删除页面。
add_action(\'admin_menu\', \'wpse206466_remove_index\');
function wpse206466_remove_index()
{
if (!_wpse206466_can_view()) {
remove_menu_page(\'index.php\');
}
}
这些都是
as a plugin.