2017-03-15 17 views
1

我有一个网站,我希望某些用户具有管理员的角色类型,但仍然无法访问管理区域(不要问!)这是更多的临时修复程序,而我的新网站正在构建。如何在WordPress中阻止管理区域,除非用户名是X(不是用户角色)?

我现在正在使用此代码阻止每个人到管理区域,除非角色类型是管理员 - 但我怎么能阻止管理员,除非用户名是'马克'例如。

add_action('init', 'blockusers_init'); 
function blockusers_init() { 
    if (is_admin() && ! current_user_can('administrator') && 
     ! (defined('DOING_AJAX') && DOING_AJAX)) { 
     wp_redirect(home_url()); 
     exit; 
    } 
} 

显然用户仍然需要访问该网站的所有其他前端页面,而不是管理区域。

回答

0

如果你想有一个临时的解决办法,而不在你的代码的工作,也许你能禁用用户

https://srd.wordpress.org/plugins/disable-users/

否则为@Ecuardo说你可以做这样的事情

add_action('init', 'blockusers_init'); 
function blockusers_init() { 
    $current_user = wp_get_current_user(); 
    if (is_admin() && ! current_user_can('administrator') && 
     ! (defined('DOING_AJAX') && DOING_AJAX) && $current_user->user_login != 'mack') { 
     wp_redirect(home_url()); 
     exit; 
    } 
} 
+0

刚刚对此进行了测试,添加了新用户,角色类型为admin,使用的用户名不是mack,仍然可以访问管理员区域? –

4

使用wp_get_current_user()

$current_user = wp_get_current_user(); 
if ($current_user->user_login != 'mack') { 
    //It's not mack... 
} 
+0

感谢您的帮助,真的很感激!我的PHP仍然很生疏!如何修改上面的现有代码以包含您的调整!非常感谢 –

相关问题