WordPress サイト全体にログイン制限をかける方法

WordPress のサイト全体にログイン制限をかける方法を紹介します。
例えば、本番公開前のサイトを関係者だけに見せたいときに便利な方法です。

  1. サイト全体にログイン制限をかける方法
  2. ログイン後ユーザー別にリダイレクトを設定
  3. ログインしている時にだけ表示する

サイト全体にログイン制限をかける方法

サイト全体にログイン制限をかける場合は、次のコードを functions.php に追加します。

/*【ログイン制限】サイト全体にログイン制限を設ける */
function require_login() {
if ( ! is_user_logged_in() && ! preg_match( '/^(wp-login.php|async-upload.php)/', basename( $_SERVER['REQUEST_URI'] ) ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {
auth_redirect();
}
}
add_action( 'init', 'require_login' );

ログイン後ユーザー別にリダイレクトを設定

サイト全体にログイン制限をかけたら、特定のユーザーには「管理画面を見せたくない!」ってこともよくあるかと思います。
そんな時は WordPress のプラグイン Peter’s Login Redirect を使用して、ログイン後にトップページへリダイレクトさせましょう。

プラグイン Peter’s Login Redirect をインストール後、設定から Login/logout redirects を選択。
ユーザーを選択して、そのユーザーに対してログインした時のURLとログアウトした時のURLを設定することができます。

プラグインを使用しない方法は、WordPress ログイン後にユーザーまたは権限別にリダイレクト設定をする方法で紹介しています。合わせてごらんください。

ログインしている時にだけ表示する

WordPress には、現在ログインしているかどうかを判別する関数 is_user_logged_in があります。この関数を使えば、ログインしている人だけに表示するコンテンツを作ったり、本番環境でテスト環境のような修正作業を行うこともできます。

<?php
if ( is_user_logged_in() ) {
echo 'ようこそ会員様';
} else {
echo 'ようこそお客様';
}
?>

まとめ

WordPress のサイト全体にログイン制限をかける方法を紹介しました。
修正のチェックを本番環境で行いたい時や、会員限定サイトを作る時に使えるテクニックなので、是非覚えておきましょう!