禁用订阅者的wp-admin控制台

时间:2013-03-29 作者:Prakash Raman

我不希望用户(角色:subscriber)能够通过wp admin登录。

你建议我怎么做?

1 个回复
SO网友:s_ha_dum

You can remove the Read capability. 这将阻止对wp admin的所有访问。

function remove_read_wpse_93843(){  
    $role = get_role( \'subscriber\' );
    $role->remove_cap( \'read\' );    
}
add_action( \'admin_init\', \'remove_read_wpse_93843\' );
请参阅法典中关于只需运行一次的注释。

然后你需要隐藏管理栏。

function hide_admin_wpse_93843() {
  if (current_user_can(\'subscriber\')) {
    add_filter(\'show_admin_bar\',\'__return_false\');
  }
}
add_action(\'wp_head\',\'hide_admin_wpse_93843\');
并且可能希望重定向订阅者登录:

function redirect_sub_to_home_wpse_93843( $redirect_to, $request, $user ) {
    if ( isset($user->roles) && is_array( $user->roles ) ) {
      if ( in_array( \'subscriber\', $user->roles ) ) {
          return home_url( );
      }   
    }
    return $redirect_to;
}
add_filter( \'login_redirect\', \'redirect_sub_to_home_wpse_93843\', 10, 3 );
其他访问尝试wp-admin 将导致“您没有足够的权限…”几乎是白色屏幕。

这有点不着边际,但我认为这会让你达到目的。

结束