WordPressで作ったWebサイトを、ログインしたユーザーのみ閲覧できるように制限をかけたい場合があります。たとえば、構築途中のサイトを特定の人にだけ公開したい場合や、会員制のサイトにしたい場合などです。
そこでここでは、WordPressで作ったWebサイトを、WordPressにログインしたユーザーしか閲覧できないようにする方法を紹介します。
ログインしないと閲覧できないようにする
ログインしないとサイトを閲覧できないようにするには、利用しているテーマ(子テーマを利用している場合は子テーマ)の「functions.php」に、以下の内容を追記します。
function my_require_login() {
global $pagenow;
if ( ! is_user_logged_in() &&
$pagenow !== 'wp-login.php' &&
! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) &&
! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {
auth_redirect();
}
}
add_action( 'init', 'my_require_login' );
処理内容は、WordPressにログインしていないと、ログインページにリダイレクトされるように設定しています。
ログインページ以外ヘリダイレクトさせたい場合は「auth_redirect();」の部分を「wp_redirect('URL');」に変更して、URLの部分にリダイレクト先ページのURLを入力します。
あとがき
ここでは、WordPressのテーマファイルをカスタマイズして対応する方法を紹介しましたが、それ以外にも「WP Maintenance Mode」といったWordPressプラグインで対応する方法や、ApacheやNginxといったWordPressを稼働させているWebサーバーソフトウェアで対応する方法もあります。
テーマファイルのカスタマイズが難しい場合は、プラグインやWebサーバーソフト側で対応する方法も検討すると良いでしょう。