WordPressにログインすると、管理画面のダッシュボードが最初に表示されますよね。これをダッシュボードではなく、指定したページを開くようにする方法を紹介したいと思います。
また、ログアウト時にログイン画面ではなく、特定のページにアクセスさせる方法も紹介します。
ログイン時に指定したページへリダイレクトする方法
WordPressへログインした時に特定のページを開くには、functions.phpに以下のコードを記述します。
function redirect_login_page() {
$url = home_url();
wp_safe_redirect($url);
exit();
}
add_action('wp_login', 'redirect_login_page');
このように記述すると、ログイン時にサイトのトップページへアクセスするようになります。
「home_url();」の部分を「home_url(‘/wp/page1’);」のように変更すると、https://example.com/wp/page1にアクセスするようになりますので、この部分を適宜変更してください。
また、管理者だけは通常通りダッシュボードを表示したいという場合は、以下のように記述します。
function redirect_login_page() {
if( !current_user_can('administrator') ){
$url = home_url();
wp_safe_redirect($url);
exit();
}
}
add_action( 'wp_login', 'redirect_login_page' );
このように記述することで、管理者はリダイレクトの処理から除外されます。
ログアウト時にログイン画面以外を表示する方法
ログアウト時は、通常ログイン画面が表示されます。ログアウト時にログイン画面以外を表示させたい場合は、functions.phpに以下のコードを記述します。
function redirect_logout_page(){
$url = home_url();
wp_safe_redirect($url);
exit();
}
add_action('wp_logout','redirect_logout_page');
このように記述することで、ログアウト時にサイトのトップページが表示されるようになります。
ログインの時と同じように「home_url();」の部分を変更すれば指定したページが開くようになります。
あとがき
ログインした時に特定のページを開きたいという要望は結構あるのではないでしょうか。
ログイン・ログアウト時の挙動を変更したい時に、参考にしていただければ幸いです。
はじめまして。wordpressのことで色々探していると、たどり着きました。内容が豊富で、ちょっと見しかできてませんが、内容と質においてすごいブログですね。感動です。趣味でサイトを作ってまして、参考にさせてもらって勉強します。三途の川を渡るような年ですが・・・・
みやざきさん、コメントありがとうございます。お役に立てたみたいで光栄です。何歳になっても挑戦するお姿、素敵です!今後ともよろしくお願いいたします。
おせわになります。いつも拝見させてもらってます。感謝してます。
ログイン時に指定したページへリダイレクトする方法のサンプルを利用して動かしてみたのですが動きません。よく調べてみると、
function redirect_login_front_page() {
$url = site_url(”, ‘http’);
wp_safe_redirect($url);
exit();
}
add_action(‘wp_login’, ‘redirect_login_page’);
一行目と6行目の redirect_login_front_page と redirect_login_page が違って、6行目をredirect_login_front_page に変更したら、動きました。ご報告まで。
ご報告ありがとうございます!大変失礼いたしました。記事内のコードも修正いたしました。