WordPressでログインユーザーしか閲覧できないコンテンツを作りたい場合

会員限定のコンテンツや、まだ非公開のサイトなど、
ログインしていないと閲覧できないコンテンツ(ページ)を
作成したい場合の方法です。

サイト全体(ページ全体)に閲覧制限をかける

サイト全体に制限をかけたい場合は、
ページ内のどこかに以下のコードを記述します。

<?php
if (!is_user_logged_in()) {
    auth_redirect();
}
?>

2行目の

is_user_logged_in()

でログインしているかどうかを判定し、
ログインしていなければ

auth_redirect();

でログイン画面にリダイレクトします。
この時表示されたログイン画面でログインが成功すると、元々表示しようとしていたページが表示されます。

私は、サイト全体に制限をかける時は
大体「header.php」の一番上に書いてます。
特定のカテゴリとかに制限を書ける場合は、
個別にテンプレートを作成し、そのテンプレート内で上記コードを記述します。

ページ内の一部のコンテンツに制限をかける

ページ内の一部分だけをログインしていないと見えない状態にしたい場合は
該当部分を以下のように記述します。

<?php if ( $user_ID ) : ?>
    閲覧制限しているコンテンツ
<?php endif; ?>

条件のところにある

$user_ID

とは、WordPressサイト内のどのページからでも使用できるglobal変数で、
ログインしているユーザーのIDを格納しています。
「値が格納されている = ログインしている」と判定して、
if文内でログインユーザーのみが閲覧できるコンテンツを記述していきます。

コメント

Back to Top