ここでは、会員サイト構築に役立つWordPressプラグイン「Theme My Login」で設定可能なモジュールのうち、
「Custom Redirection を有効する」について解説します。
「Theme My Login」のバージョンは 6.4.5 で検証しています。
何を実現するモジュールか?
Theme My Login のログイン機能を導入していると、権限グループ(管理者、購読者など)ごとにログイン後の表示ページを変えたくなることがあると思います。
例えば、管理者(=自分)はログイン後にダッシュボードを表示させたいけれど、会員登録してくれた購読者には会員サイトTOPページを表示させたい、といったケース。
こうした悩みを解決してくれるのが、「Custom Redirection を有効にする」モジュールです。有効にすると、各権限ごとのログイン・ログアウト時の表示ページが制御可能になります。
具体的な動き
1. 通常時の動き(=「デフォルト」を指定した時)
初期状態では「デフォルト」が設定されています。この場合、権限グループごとの動作は以下のようになります。
ログイン時
購読者(投稿権限が無い)
=> 管理画面の「プロフィール」ページ(/wp-admin/profile.php)
それ以外(投稿権限がある)
=> 管理画面の「ダッシュボード」TOPページ(/wp-admin/)
ログアウト時
権限グループ関係なく、ログインページ(/login)が表示されます。
(URLの後ろに「/?loggedout=true」というパラメータが付与されます)
2. 「リファラ」を指定した時
「リファラ」を設定した場合、ログイン完了後にはログイン前のページに戻るようになります。
これは、サイト内の全ページをログイン必須に設定した時に、活用できます。
例えば、サイト内のある記事を、直接メールやSNSで紹介するとします。URLをクリックすると、ブラウザが起動しますが・・(テスト環境なのでURLの先頭が「localhost/・・」となっていますが、通常はここが「example.com/」などのドメイン名からになります)
サイトにログインしていないので、Theme My Login が自動判断して「ログインページ」へ移動します。そして「ログインページ」ページからログインすると、通常は購読者なので管理画面の「プロフィール」ページが表示されるはずですが・・
ログインすると以下のように、最初に表示させようとした記事ページが開きました。
これが、Theme My Loginで「リファラ」を設定した時の動きになります。(ログアウト時も同じような動きです)
会員サイト内で頻繁に記事を投稿するような場合など、URLをシェアしやすくなるので使いやすいと思います。というか、WordP ress管理画面の「プロフィール」ページを見せたいケースって少ないと思うので、
Theme My Login を導入したら、権限グループ「購読者」だけ「リファラ」設定にしておく
というルールにしちゃった方が良いかもしれません。
3. 「カスタム」を指定した時
「カスタム」を指定した場合は、上のリファラ(ログイン前のページ)などに関係なく、いつでも「カスタム」で設定したURLへログイン後移動するようになります。
例えばここに会員サイトのTOPページURLを設定しておけば、ログインすれば必ず会員サイトTOPページが表示されるようになるので、使いどころも多いと思います。
このオプション設定のみ選択だけでなく直接入力が入るので、URL間違えたらおかしな動作になります、ご注意を。
あと、設定画面には載ってない裏コマンド(?)ですが、このURL入力欄には「%user_id%」「%user_nicename%」という2つの置換文字が使えるようです。それぞれ「ログイン中ユーザーID」「ログイン中ユーザー名」に変換されるので、例えば各会員ごとの専用ページを用意するような場合などに使えるんじゃないでしょうか。(あまり頻繁に使うものでもないとは思いますが)
(参考)
/plugins/theme-my-login/modules/custom-redirection/custom-redirection.php// Allow a few user specific variables $redirect_to = str_replace( array( '%user_id%', '%user_nicename%' ), array( $user->ID, $user->user_nicename ), $redirect_to );
まとめ
「Custom Redirection を有効する」モジュールを使うと、ログイン・ログアウト後のページ遷移を自由にカスタマイズできます。
ログイン後に変な(?)ページへ飛ばされると、会員側も不安ですし目的のページへなかなか移動できなくなってしまうかもしれません。
スムーズな会員サイトの閲覧に、本モジュールをぜひ活用してみてください。