除非在WordPress中用户名是X(不是用户角色),如何阻止管理区域?

时间:2017-03-15 19:57:15

标签: php wordpress

我有一个网站,我希望某些用户拥有管理员的角色类型,但仍然无法访问管理区域(请不要问!)这是一个临时修复,而我的新网站正在构建

我正在使用此代码阻止所有人进入管理区域,除非角色类型是管理员 - 但我怎么能阻止管理员,除非用户名为'mack'。

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;
    }
}

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

2 个答案:

答案 0 :(得分:4)

使用wp_get_current_user()

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

答案 1 :(得分:0)

如果您想在不使用代码的情况下进行临时修复,则可以禁用用户

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

否则,因为@Eduardo说你可以做这样的事情

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;
    }
}