如何从特定用户角色删除仪表板访问权限?

时间:2011-07-14 作者:Zach Shallbetter

我想阻止某些用户角色访问仪表板http://www.openeye.net/wp-admin/ 完全我已将用户配置文件移动到一个可在网站上查看的新页面并重新设置其样式。我该怎么做呢?

4 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

要将订阅服务器和贡献者锁定在管理之外,请执行以下操作:

function wpse23007_redirect(){
  if( is_admin() && !defined(\'DOING_AJAX\') && ( current_user_can(\'subscriber\') || current_user_can(\'contributor\') ) ){
    wp_redirect(home_url());
    exit;
  }
}
add_action(\'init\',\'wpse23007_redirect\');
希望这有帮助。所有角色都为用户提供了一个功能,该功能是该角色的名称,因此您可以将任何角色名称用作功能。

SO网友:Ganpat Rabari
//If User Roll is Subscriber, It can not login in Dashboard 
function wpse23007_redirect()
{
    if( is_admin() && !defined(\'DOING_AJAX\') && current_user_can(\'subscriber\') )
    {
        wp_logout();
        wp_redirect(home_url());
        exit;
    }
}
add_action(\'init\',\'wpse23007_redirect\');
SO网友:Oli

是的,您需要使用current\\u user\\u can($capability)功能。以下是官方WordPress参考资料:https://codex.wordpress.org/Function_Reference/current_user_can

SO网友:sudip
 add_action(\'init\', function(){

      $redirect = isset( $_SERVER[\'HTTP_REFERER\'] ) ? $_SERVER[\'HTTP_REFERER\'] : home_url( \'/\' );
      $user = wp_get_current_user();
      if ( !defined(\'DOING_AJAX\') && in_array( \'subscriber\', (array) $user->roles ) ) {

          wp_redirect($redirect);
          exit();
      }
});
结束