【WordPress】ログイン・ログアウト後のページを変更(リダイレクト)する方法

bbpress等の会員制サイトを導入する際に使える、ログイン・ログアウト後のページを任意のページに変更する方法の紹介です。

会員サイトのログイン画面はトップページやヘッダーにあっても、ログアウトの画面はワードプレスのログイン画面になってしまいます。
これから紹介するコードを丸っとfunctions.phpにコピペするだけで、それを回避して任意のページへリダイレクトする事が出来ます。

ログアウト後にリダイレクトする方法

以下のコードをfunctions.phpにコピペし、ページURLの部分にリダイレクト先のURLを記述します。
これだけ。

function logout_redirect(){
wp_safe_redirect("ページURL");
exit();
}
add_action('wp_logout','logout_redirect');

リダイレクト先の書き方

URLを直接記述する場合 “ページURL” クォーテーション有り
トップページに移動 home_url() クォーテーション無し
sample.com/pageに移動 home_url().’/page’

ログイン後にリダイレクトする方法

下記のコードは wp_safe_redirect にトップページへ戻る home_url() を指定しています。

function login_redirect() {
wp_safe_redirect(home_url());
exit();
}
add_action('wp_login', 'login_redirect');

ユーザー権限別にリダイレクト先を変える方法

下記はユーザー権限別にトップページへリダイレクトさせるコードです。
ユーザー権限の部分に「subscriber」を指定すれば、購読者のみログイン後にトップページへリダイレクトされます。

function login_redirect( $user_login, $user ) {
if ( 'ユーザー権限' === $user->roles[0] ) {
wp_safe_redirect( home_url(), 301 );
exit();
}
}
add_action( 'wp_login', 'login_redirect', 10, 2 );

その他のユーザー権限はこちら。

購読者 subscriber
寄稿者 contributor
投稿者 author
編集者 editor
管理者 administrator