Gianismで元いたページに戻る
Gianism はWordPressのログイン画面にソーシャルログイン機能を追加するプラグインです。しかし、通常のWebサイトでは、「WordPressには /wp-login.php に管理画面がある」ということを知っているユーザーを想定することは少ないでしょう。
ログインを必要とするサイトでのユーザー遷移
通常、ログインを必要とするサイト(つまりGianismを必要とするようなサイト)では、次のようなフローを辿ります。
- ユーザーは特定のページにアクセスするが、「ログインが必要です」と警告される。
- ユーザーはそのコンテンツを見たかったので、リンクをクリックし、WordPressのログイン画面に移動する。
- 登録が面倒なので、ソーシャルボタンをログインする
- ログインが完了する
- なんらかのページに移動する
さて、この記事で問題となるのは、「ログインが完了したあとどうするか」です。Gianismはデフォルトだと、WordPressのプロフィールページに移動します。この挙動をカスタマイズするには、以下の方法があります。
gianism_redirect_to
フィルターフックによって、リダイレクト先をコントロールする- 関数
wp_login_url
によって、リンクの出力時にリダイレクト先を指定する - 関数
gianism_login
によって、リンクの出力時にリダイレクト先を指定する
このうち、1の「フィルターフックによってリダイレクト先をコントロール」というのは、今回のような「元いたページに戻りたい」という要件に即しません。
たとえば、 /my-page
というような特別にカスタマイズされたページがあり、なおかつログイン後は必ずそのページに移動させたい場合のみ、フィルターフックが役立ちます。というのも、フィルターフックは詳細なコンテキスト(ex. 前どのページにいたのか)を取得することができないからです。
したがって、「元いたページに戻りたい」という場合は、2あるいは3の方法をとる必要があります。
それでは、その実例をお見せしましょう。これから先、あなたはログインしないと続きを読むことができません!
目次
- ログインを必要とするサイトでのユーザー遷移
- 方法1: wp_login を利用する
- 方法2: gianism_loginを利用する
フィードバック
“Gianismで元いたページに戻る” への8件のフィードバック
<?php gianism_login( '’, ”, $_SERVER[‘REQUEST_URI’] ); ?>
もし可能であれば質問へのご回答をお願い致します。
このページに実装されている「続きを読む」でのログインの実装は、固定ページなどのphpに直接上記で紹介しているコードを書き込めばよいのでしょうか?
よろしくお願い致します。
カスタマイズしたものや、他のプラグイン(wp-membersなど)と連携する場合は、独自のコードが必要になるケースもあります。
ちなみにgianism_loginで別の会員用ページみたいに飛ばすにはgianism_login(”,”,get_permalink(“飛ばし先のURL”));で大丈夫でしょうか?
すみません、あまりPHPの知識がなく現在手探りで案件を進めていまして…。お手すきの際にご教授いただけると幸いです。m(_ _)m
gianism_login(”,”,get_permalink(“飛ばし先のURL”));
ではなく、
gianism_login(”,”,“飛ばし先のURL”);
ですね。飛ばし先のURLの取得方法が get_permalink なら、投稿IDを指定する必要があります。実際に使えるコードについては、プレミアムサポートなどもありますので、そちらのご利用を検討してください。
https://gianism.info/ja/add-on/gianism/