WordPressにてログイン時/ログアウト時にユーザー別にリダイレクトさせる例
WordPressでは標準でユーザー管理機能が付いており、この機能を用いてユーザーレベル別で様々な処理を行うことが出来ます。
ログイン時にトップへリダイレクトさせる
例えば管理者権限のアカウント以外のユーザーがログインした時、管理画面(ダッシュボード)ではなくトップページにリダイレクトさせたい場合は以下の様な例で可能になります。
上記例では購読者の場合にログイン時に管理画面には行かず、トップページでリダイレクトさせる事が出来ますが、他のユーザーレベルを指定することも勿論可能です。
- subscriber:購読者
- contributor:寄稿者
- author:投稿者
- editor:編集者
- administrator:管理者
リダイレクト以外の処理でもユーザーレベル別でログイン時の挙動を変更したい場合はwp_login
アクションフックで色々処理するといいでしょう。
ログアウト時にトップへリダイレクトさせる
逆にログアウト時に管理者権限以外の場合、トップページへリダイレクトさせたい場合は以下の例で可能になります。
アクションフックwp_logout
を用いる事でログアウト時の挙動を変更することが出来ます。
管理者以外の判定は! current_user_can( 'administrator' )
の部分。ユーザー権限の中でadministratorつまり管理者以外の場合トップページへリダイレクトさせるという流れですね。
管理者権限以外の場合、管理画面(ダッシュボード)へアクセスされたらリダイレクトさせる
ログイン/ログアウトの処理とは別ですが、管理画面へのアクセスをリダイレクトさせる事も可能です。以下の例だと管理者権限以外の場合、管理画面のURLへアクセスしてもトップページへリダイレクトが掛かります。
購読者ユーザーなど基本的に管理画面を触れる必要が無い権限者の場合のUX改善などで活用できるかもしれませんね。