投稿

Gianismで元いたページに戻る

Gianism はWordPressのログイン画面にソーシャルログイン機能を追加するプラグインです。しかし、通常のWebサイトでは、「WordPressには /wp-login.php に管理画面がある」ということを知っているユーザーを想定することは少ないでしょう。

ログインを必要とするサイトでのユーザー遷移

通常、ログインを必要とするサイト(つまりGianismを必要とするようなサイト)では、次のようなフローを辿ります。

  1. ユーザーは特定のページにアクセスするが、「ログインが必要です」と警告される。
  2. ユーザーはそのコンテンツを見たかったので、リンクをクリックし、WordPressのログイン画面に移動する。
  3. 登録が面倒なので、ソーシャルボタンをログインする
  4. ログインが完了する
  5. なんらかのページに移動する

さて、この記事で問題となるのは、「ログインが完了したあとどうするか」です。Gianismはデフォルトだと、WordPressのプロフィールページに移動します。この挙動をカスタマイズするには、以下の方法があります。

  1. gianism_redirect_toフィルターフックによって、リダイレクト先をコントロールする
  2. 関数 wp_login_url によって、リンクの出力時にリダイレクト先を指定する
  3. 関数 gianism_login によって、リンクの出力時にリダイレクト先を指定する

このうち、1の「フィルターフックによってリダイレクト先をコントロール」というのは、今回のような「元いたページに戻りたい」という要件に即しません。

たとえば、 /my-page というような特別にカスタマイズされたページがあり、なおかつログイン後は必ずそのページに移動させたい場合のみ、フィルターフックが役立ちます。というのも、フィルターフックは詳細なコンテキスト(ex. 前どのページにいたのか)を取得することができないからです。

したがって、「元いたページに戻りたい」という場合は、2あるいは3の方法をとる必要があります。

それでは、その実例をお見せしましょう。これから先、あなたはログインしないと続きを読むことができません!

この記事は登録済みユーザー専用です。残り53%のコンテンツを読むためには、ログインしてください。

目次