web-dev-qa-db-ja.com

特定のユーザーロールからダッシュボードアクセスを削除する方法

特定のユーザーロールがダッシュボード http://www.openeye.net/wp-admin/ にアクセスできないようにしたいのですが。私はユーザープロフィールをサイト上で見ることができる新しいページに移動して作り直しました。これをどのようにして行うのでしょうか。

10

購読者と寄稿者を管理者から締め出すには:

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');

それが役立つことを願っています。すべての役割は、その役割の名前である機能をユーザーに付与します。そのため、機能として任意の役割名を使用できます。

20
John P Bloch
//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');
1
Ganpat Rabari

はい、current_user_can($ capability)関数を使う必要があります。これが公式のWordPressリファレンスです。 https://codex.wordpress.org/Function_Reference/current_user_can

0
Oli
 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();
      }
});
0
sudip