WordPressサイトにて、未ログインのユーザーがアクセスした際に、ログインページにリダイレクトさせる方法を紹介します。
会員専用サイトとか、特定の投稿タイプの記事だけ非公開にしたい場合などに活用できます。
未ログインのユーザーをログインページにリダイレクトさせる方法
未ログインのユーザーをログインページにリダイレクトさせるためには、テーマファイル内(single.phpなど)に以下のようなコードを追加します。
<?php if( !is_user_logged_in() ) { auth_redirect(); } ?>
特定の投稿タイプの記事でのみ、ログインページにリダイレクトさせたい場合は、以下のように記述します。
<?php if( !is_user_logged_in() && is_singular('memberonly') ) { auth_redirect(); } ?>
上記では、memberonlyという投稿タイプの記事では、ログインしていないとログインページにリダイレクトされます。
投稿タイプ名のところは適宜変更してください。
あとがき
auth_redirect関数だけ記述すれば良さそうな感じがしますが、auth_redirectだけだとログインしてもまたログインページにリダイレクトされるという状態になります。そのため、is_user_logged_in関数でログイン状態によって条件分岐させる必要があります。