WordPressで購読者の場合はログイン後にトップページに飛ばす

WordPressで複数のユーザーを設定している場合に、特定の権限ではダッシュボードを表示したくない場合などに利用できます。
権限が「購読者」の場合はログイン後にトップページに飛ばし、管理者バーも非表示にする方法です。

functions.phpに以下のコードを追加します。

add_action( 'auth_redirect', 'subscriber_go_to_home' );
function subscriber_go_to_home( $user_id ) {
    $user = get_userdata( $user_id );
    if ( !$user->has_cap( 'edit_posts' ) ) {
        wp_redirect( get_home_url() );
        exit();
    }
}
add_action( 'after_setup_theme', 'subscriber_hide_admin_bar' );
function subscriber_hide_admin_bar() {
    $user = wp_get_current_user();
    if ( isset( $user->data ) && !$user->has_cap( 'edit_posts' ) ) {
        show_admin_bar( false );
    }
}

参考:購読者は管理者ページのアクセス禁止