找到了一个更简单的方法。我给了他们edit_other_posts
和edit_other_pages
角色功能,然后使用以下内容阻止他们访问管理区域:
add_action( \'init\', \'eri_block_nonadmins_init\' );
function eri_block_nonadmins_init() {
$current_url = eri_get_current_url( true, false);
if ( (!current_user_can( \'administrator\' ) && !( defined( \'DOING_AJAX\' ) && DOING_AJAX ))
&& (is_admin() || $current_url == \'/cornerstone/\') ) {
wp_redirect( home_url() );
exit;
}
}
当然,我也阻止了他们访问我们的基石前端编辑器。
如果你对eri_get_current_url()
函数执行以下操作:
function eri_get_current_url( $params = true, $domain = true ){
if ($domain) {
$protocol = isset($_SERVER[\'HTTPS\']) && $_SERVER[\'HTTPS\'] !== \'off\' ? \'https\' : \'http\';
$domain = $protocol."://$_SERVER[HTTP_HOST]";
} else {
$domain = \'\';
}
$full_url = $domain.$_SERVER[\'REQUEST_URI\'];
if (!$params) {
return strtok($full_url, \'?\');
} else {
return $full_url;
}
}