WordPress ログイン後にユーザーまたは権限別にリダイレクト設定をする方法

WordPress ログイン後にユーザーまたは権限別にリダイレクト設定をする方法

WordPress でログイン後にユーザーまたは権限別にリダイレクト設定をする方法を紹介します。
例えば、クライアントのユーザーがログインしたとき、ダッシュボードから投稿一覧へ遷移させたいときや、リダイレクトのプラグインを使用したくないときに便利な方法です。

ログイン後にユーザー別にリダイレクトを設定

ログイン後にユーザー別にリダイレクトを設定する方法を紹介します。
ユーザーの判別にはユーザーIDを指定します。ユーザーIDの確認する方法は、ユーザー一覧から確認したいユーザーの詳細ページを選択したときに、表示されるURLにユーザーIDとして表示されます。
次のコードを functions.php に追加します。


/* 【管理画面】ログイン後にユーザー別にリダイレクトを設定 */
add_action('wp_login', 'redirect_roll', 10, 2);
function redirect_roll($user_login, $user){
if( $user->ID == 2 ){ // ユーザーIDを指定
wp_redirect( '/wp-admin/admin.php' ); // リダイレクトさせたいURLを指定
exit();
}
}

管理者ユーザー(デフォルトのIDは1)以外をまとめてリダイレクト設定したい場合は、if文の比較演算子を ==(等しい)から !=(等しくない)に変更して対応します。


if( $user->ID != 1 ){ // ユーザーID 1 以外を指定

ログイン後に権限別にリダイレクトを設定

ログイン後に権限別にリダイレクトを設定する方法を紹介します。
権限の判別には権限のスラッグを指定します。権限のスラッグはコード下のスラッグ一覧を参照してください。
次のコードを functions.php に追加します。


/* 【管理画面】ログイン後に権限別にリダイレクトを設定 */
add_action('wp_login', 'redirect_roll', 10, 2);
function redirect_roll($user_login, $user){
if( $user->roles[0] == ' editor' ){ // 編集者権限を指定
wp_redirect( '/wp-admin/admin.php' ); // リダイレクトさせたいURLを指定
exit();
}
}

特定の権限以外をまとめて指定したい場合は、if文の比較演算子を変更して対応します。


if( $user->roles[0] != 'administrator' ){ // 管理者権限以外を指定

権限のスラッグは以下の通りです。
• 管理者(slug : administrator)シングルサイト内のすべての管理機能にアクセスできるユーザー
• 編集者(slug : editor)他のユーザーの投稿を含むすべての投稿を発行、管理できるユーザー
• 投稿者(slug : author)自身の投稿を発行、管理できるユーザー
• 寄稿者(slug : contributor)自身の投稿を編集、管理できるが、発行はできないユーザー
• 購読者(slug : subscriber)プロファイル管理のみを実行できるユーザー

リダイレクト先を管理画面外にする方法

リダイレクト先をサイトURLにしたい場合は、テンプレートタグ home_url を使用すると良いでしょう。


wp_redirect( home_url() ); // ホームURLを指定

まとめ

WordPress でログイン後にユーザーまたは権限別にリダイレクト設定をする方法を紹介しました。
WordPress プラグイン Peter’s Login Redirect を使えば、いままで紹介したような設定を、管理画面から設定することも可能です。

スポンサーリンク

合わせて読みたい関連記事