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

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

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

サイト全体にログイン制限をかけるには以下を 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 ログイン後にユーザーまたは権限別にリダイレクト設定をする方法

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

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


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

まとめ

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

スポンサーリンク

私が続けて読みたい関連記事