我已经在WordPress的正常安装中使用了下面的函数一段时间了。
它只会阻止具有特定用户角色的用户,并将他们重定向到网站主页。
function wpse23007_redirect(){
if( is_admin() && !defined(\'DOING_AJAX\') && ( current_user_can(\'subscriber\') || current_user_can(\'media\') ) ){
wp_redirect(home_url());
exit;
}
}
add_action(\'init\',\'wpse23007_redirect\');
但是,当我在WordPress Multisite的子主题上安装此功能时,即使我是超级用户,它也会阻止我访问子主题的仪表板。
有人能帮我理解为什么会这样,以及如何改变上述情况,以免阻碍我吗?
最合适的回答,由SO网友:Mark Kaplun 整理而成
您的所有角色检查都与子站点中的用户角色相关,我假设您不是该子站点中的用户。您还应该检查is_super_admin()
if( !is_super_admin() && (is_admin() && !defined(\'DOING_AJAX\') && ( current_user_can(\'subscriber\') || current_user_can(\'media\') ) ) ){
wp_redirect(home_url());
exit;
}