WordPressで未ログイン時にログインページへリダイレクトする方法
WordPressのサイトを特定のユーザーだけが利用できるようにする場合、
未ログインのユーザーをログインページへ自動リダイレクトする設定が必要です。
本記事では、WordPressで未ログインユーザーをログインページへリダイレクトする方法を3つ紹介します。
functions.php
を使ってリダイレクトする方法
WordPressの functions.php
に以下のコードを追加することで、
未ログイン時に /login/
へリダイレクトできます。
コード
function redirect_to_login_if_not_authenticated() {
if (!is_user_authenticated() && !is_page('login')) {
wp_redirect(site_url('/login/'));
exit;
}
}
add_action('template_redirect', 'redirect_to_login_if_not_authenticated');
コードのポイント
is_user_authenticated()
でユーザーがログインしているかを判定
未ログインなら /login/
にリダイレクト is_page('login')
でログインページ自体はリダイレクトしない(無限ループ防止)
この方法を使用すると、未ログインのユーザーはサイトの
どのページにアクセスしても /login/
にリダイレクトされます。
index.php
を編集してトップページのみリダイレクトする方法
サイト全体ではなく、トップページ(ホームページ)のみをリダイレクトしたい場合は、index.php
に以下のコードを追加します。
コード
<?php
session_start();
if (!is_user_authenticated()) {
wp_redirect(site_url('/login/'));
exit;
}
?>
動作
✅ トップページ(index.php
)を開くと未ログインなら /login/
にリダイレクト
✅ 他のページには影響なし
トップページのみを会員制にしたい場合に適した方法です。
.htaccess
を使ってサーバー側でリダイレクトする方法
サーバー側の .htaccess
にリダイレクト設定を追加することで、
未ログイン時に /login/
へリダイレクトできます。
コード
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/login/ [NC]
RewriteCond %{REQUEST_URI} !^/wp-login.php [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule ^(.*)$ /login/ [R=302,L]
コードのポイント
✅ ログインしていないユーザーのみ /login/
にリダイレクト
✅ WordPress標準のログインページ (wp-login.php
) には影響なし
✅ サーバー側で処理するためWordPressに負荷をかけずにリダイレクト
この方法はサーバー側で処理するため、WordPressのコードを変更したくない場合に便利です。
どの方法を使うべき?
方法 | 適用範囲 | 適用ページ |
---|---|---|
functions.php に追加 | サイト全体 | ログインページ以外すべて |
index.php に追加 | トップページのみ | トップページのみリダイレクト |
.htaccess を使用 | サーバー全体 | WordPress全体に適用 |
✅ サイト全体をログイン必須にするなら functions.php
か .htaccess
を使用
✅ トップページのみ制限したいなら index.php
を編集
✅ サーバー側で制御したいなら .htaccess
を編集
まとめ
WordPressで未ログイン時にログインページへリダイレクトする方法を紹介しました。用途に応じて適切な方法を選びましょう。
✔ サイト全体を会員制にするなら → functions.php
にリダイレクト処理を追加
✔ トップページのみリダイレクトするなら → index.php
にリダイレクト処理を追加
✔ WordPressに負荷をかけずに処理したいなら → .htaccess
を編集
これで、未ログインユーザーのアクセスを制限し、ログインページへ誘導できるようになります。
ぜひ試してみてください!
CSSのborderプロパティ:枠線の設定とデザインの基本
11月 25, 2024CSSのpositionプロパティ:位置指定の基本から応用まで
11月 21, 2024オブジェクトとオブジェクトリテラルについて
7月 21, 2024