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

Php 如何在WordPress中阻止管理员区域,除非用户名是X(而不是用户角色是)?,php,wordpress,Php,Wordpress,我有一个网站,我希望一些用户有管理员的角色类型,但仍然不能访问管理区域(不要问!)这是一个临时修复,而我的新网站正在建设 我现在正在使用这段代码,它会阻止所有人访问管理区域,除非角色类型是admin——但是我如何阻止admin,除非用户名是'mack' add_action( 'init', 'blockusers_init' ); function blockusers_init() { if ( is_admin() && ! current_user_can( 'a

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

我现在正在使用这段代码,它会阻止所有人访问管理区域,除非角色类型是admin——但是我如何阻止admin,除非用户名是'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;
    }
}

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

使用
wp\u get\u current\u user()


使用
wp\u获取当前用户()


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

否则,正如@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;
    }
}

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

否则,正如@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;
    }
}

谢谢你的帮助,非常感谢!我的php仍然很生锈!我如何修改我的现有代码上面包括您的调整!非常感谢你的帮助,非常感谢!我的php仍然很生锈!我如何修改我的现有代码上面包括您的调整!感谢lota刚刚测试了这个,添加了新用户,角色类型admin,用户名与mack不同,仍然可以访问管理区域?刚刚测试了这个,添加了新用户,角色类型admin,用户名与mack不同,仍然可以访问管理区域?