WordPressログイン失敗時の処理を変更
最近は、ChatGPTがあるので備忘録を本ブログに書かなくても事足りてきました!でも日課にしているので記載します!
今回は、Wordpressログイン失敗時の動作を変更する方法について掲載します。具体的には、Wordpressのログインを流用して会員制サイトを制作するような場合に使えます。
1.Wordpressのログインについて
WordPressのログインのデフォルトは、wp-login.phpです。
ただし、Wordpressでは、wp_login_form()関数が用意されており、wp_login.php以外の場所からログイン操作ができます。
そのため、Wordpressのユーザー権限を利用して会員制サイトなどを制作することができます。
2.Wordpressのログイン失敗時の動作について
WordPressのログイン失敗では、デフォルトでは、wp-login.phpにリダイレクトされます。
そのため、会員制サイトでオリジナルのログイン画面を制作し、wp_login_form関数でログインさせるようにしたとしても、そのままだと、wp-login.phpにリダイレクトされWordpressのログイン画面に戻ってしまいます。
そのため、wp-login.phpではなく、オリジナルのログイン画面にリダイレクトさせる必要が出てきます。
3.ログイン失敗時に指定した宛先にリダイレクトさせる
WordPressのアクションフックを使ってログイン失敗時の処理を変更する事ができます。本アクションフック自体は、/wp-includes/pluggable.phpに記載されています。
以下はその実装例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | add_action('wp_login_failed', 'set_org_login_fail'); // hook failed login function set_org_login_fail( $username ) { $referrer = $_SERVER['HTTP_REFERER']; //直前のページのURLを取得 if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) { //Wordpressのデフォルトログイン画面でない。 if(isset($_GET['login'])){ $login_status = $_GET['login']; } if($login_status == 'failed'){ //既にログイン失敗している $redirect_url = home_url(); } else{ $redirect_url = home_url(). '?login=failed'; //ログイン失敗時にパラメータ付与 } wp_redirect( $redirect_url ); exit; } } |
以上、皆さまのお役立てれば幸いです。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル