会員制サイト作りに役立つ!ログインしないと指定URLへリダイレクトする

会員制サイト作りに役立つ!ログインしないと指定URLへリダイレクトする
(YouTube, AdSense, Play 公認エキスパート)
2021年03月08日 in Wordpress
記事内にPR・広告が含まれる場合があります

WordPressでは様々なタイプの会員制サイトを作ることも可能で、プラグイン等を利用すればさらに簡単作成もです。例えばFacebookのようなSNSサイトも『BuddyPress』というプラグインを使用することで、あっという間に作成できてしまいます。

会員制サイト等ではログインをしている(登録している)ユーザーと、ログインしていないユーザーとで表示内容を切り替えることがあります。例えば一部のコンテンツについては登録してログインをしているユーザーのみ観覧可能な状態にするなどです。大手のニュースサイトなどでもよくありますよね。

WordPressではプラグインを使用しなくても、公開設定を非公開にすればログインしていないユーザーに観覧できないようにすることも可能です。またプラグインを使用して「記事の続きはログインしてから」など、一部のコンテンツだけ一般のユーザーにも観覧可能な状態にして、途中からはログインを必要にするという方法も可能です。会員制サイトの作り方等については下記ページをご覧ください。

会員制サイトの作り方

広 告

さて今回は会員制サイト作りに役立つコードをご紹介したいと思います。ログイン必須のページにログインしていないユーザーがアクセスした際に、あなたが指定したURLへリダイレクトをするという方法です。

「ログインページが表示されれば良いのでは?」

と思われる方もいらっしゃるでしょうが、いきなりWordPressの普通のログイン画面が表示されても何のことか分からないと思われる方が多いでしょう。
not-login-01

ですから「このページをご覧になるにはユーザー登録とログインが必要です。こちらから登録ができます。」などの案内ページを表示させたほうが良いのです。

ログインしていないユーザーがアクセスしたら、指定ページにリダイレクトする方法

ログインが必要なページにアクセスした時、ログインしていなければ指定したページにリダイレクトさせる方法はとても簡単です。ログイン必須のページを表示させるテンプレートファイルに下記のコードを入れるだけ!

<?php
if (is_user_logged_in()){
} else {
wp_redirect('http://example.com/hotehote');
}
?>

※“http://example.com/hotehote”はリダイレクト先のURLに変更してください。

最上部にこのコードを入れる必要があります。 <?php get_header(); ?> の上に入れれば問題なく機能します!
not-login-02

先日の【特定の投稿記事&固定ページのテンプレートを変更する方法】のページでご紹介した方法で会員限定ページ用のテンプレートを作成し、そのテンプレートに上記リダイレクトの設定コードを入れてみてはいかがでしょうか?

執筆者情報
2004年から当サイト「iscle」を始めた管理者。Google 公認のプロダクトエキスパートとして、YouTube、Google AdSense、Play の公式コミュニティで活動中。スマホアプリ、Web ツールの使い方や最新情報を中心に発信しています。