【WordPress】条件分岐でログインしているユーザーのみにコンテンツを表示させる方法
MENU
  1. HOME
  2. WordPress / カスタマイズ
  3. 【WordPress】条件分岐でログインしているユーザーのみにコンテンツを表示させる方法

最近の作業実績

  • 2022年10月03日訪問者に閲覧履歴を表示する機能をテーマに実装いたしました。
  • 2022年10月02日ログインできなくなったWordPressを復旧いたしました。
  • 2022年10月01日オリジナルテーマの制作を担当いたしました。
  • 2022年09月30日破損していたテーマを修正いたしました。
  • 2022年09月29日アフィリエイト審査用のサイト立ち上げを担当いたしました。
  • 2022年09月28日カスタムフィールドの値を元にした記事一覧を作成いたしました。
  • 2022年09月27日プラグインを使わず人気記事を出力する機能をテーマに追加いたしました。
  • 2022年09月26日RSSフィードにカスタムフィールドの値を追記しました。
  • 2022年09月25日カスタム投稿用のRSSを実装いたしました。
  • 2022年09月22日人気記事を定期的にリセットする機能をテーマに追加いたしました。
  • 2022年09月21日不要になったカスタムフィールドとその値を削除できる仕組みをテーマに組み込みました。
  • 2022年09月20日テーマのある機能をCRONを使って定期的に実行できるように修正いたしました。
  • 2022年09月19日カテゴリー単位のRSSリンクを一覧表示できる仕組みをテーマに組み込みました。
  • 2022年09月15日人気記事が正常に表示されよう修正いたしました。
  • 2022年09月13日サイバーで発生していたレイアウトの崩れを修正いたしました。
  • 2022年09月11日メールフォームの不具合を修正いたしました。
  • 2022年09月09日メールフォームの画像切れを修正いたしました。
  • 2022年09月07日パンくずナビの不具合を修正いたしました。
  • 2022年09月05日人気記事のアクセス数がカウントされない不具合を修正いたしました。
  • 2022年09月03日テーマに人気記事を表示する機能を実装いたしました。
  • このエリアには直近の制作実績を一部掲載しております。
  • 制作実績はリアルタイム反映ではありません。

【WordPress】条件分岐でログインしているユーザーのみにコンテンツを表示させる方法

この投稿は2019/09/15に加筆修正いたしました。

Wordpressのログインユーザーかどうかで条件分岐させる方法をご紹介します。ログインユーザーにだけコンテンツを表示させたり、一般訪問者と表示させるコンテンツを切り替えたりすることができます。4分だけこの記事を読んでみてください。

この記事は約 5 分で読めます。

本番環境を直接カスタマイズすることに・・・

自身の運営するサイトでのお話です。
サイトでカスタマイズしたい部分が見つかりました。

テスト環境でカスタマイズしてから本番環境にカスタマイズを反映させようとしたのですが、すぐに使えるテスト環境がありません。

本番環境で直接カスタマイズすることにしたのですが、レイアウトが一時的に崩れることもあるでしょうし、カスタマイズ中のエリアを訪問者の方には見ていただきたくありません。

そこで考えたので、管理画面にログインしているユーザー(つまり私)かどうかを判断して、ログインしているユーザーのみにコンテンツを表示させる条件分岐ができないかということです。

WordPressでは、色々な条件分岐ができます。
これまで考えもしなかった条件分岐ですが、Wordpressならできそうな気がします。

早速調べてみたのですが、やはり【ログインユーザーかどうか】で条件分岐が可能でした。
今回は、この条件分岐のやり方をまとめてみましたので参考にしてください。。

ログインユーザーのみにコンテンツを表示させる条件分岐

ログインユーザーかどうかは、【is_user_logged_in() 】という関数で判断することができます。

この関数を使て、サイトを観覧しているのがログインユーザーなら【表示】、ログインユーザーでなければ【非表示】と条件分岐する事が可能です。

上記の条件分岐を行うためのコードは以下の通りです。

<?php if( is_user_logged_in() ) : ?>
ここに記述した内容はログインユーザーのみに表示されます。
<?php endif; ?>

上記のコードを記述し、その中でカスタマイズを行えば、ログインユーザーはサイト上でそのコンテンツを確認することができますが、ログインユーザーでない一般の訪問者の方は、そのコンテンツを確認することができません。

上記のコードを記述した後、ログインした状態とログインしていない状態でサイトを確認してください。

ログインしている状態ではコンテンツが表示され、ログインしていない状態ではコンテンツが表示されていないことが確認できます。

これなら本番環境でじっくりとカスタマイズを行うことができます。

このコードはPHPコードですので、投稿や固定ページのエディタ内では動作しません。
投稿などのエディタ内で使用したい場合は、後述するショートコードを使用してください。

ログインユーザーかどうかで表示する内容を切り分けたい場合

例えば、ログインユーザーにはコンテンツA、一般訪問者にはコンテンツBを表示させたいなど、ログインユーザーかどうかでコンテンツを切り替えることも、今回ご紹介したコードで可能です。

具体的には、以下のようにコードを記述します。

<?php if( is_user_logged_in() ) : ?>
ここに記述した内容は、ログインユーザーにのみ表示されます。
<?php else : ?>
ここに記述した内容は、ログインユーザー以外に表示されます。
<?php endif; ?>

こうしておけば、ログインユーザーかどうかを判断してコンテンツを切り替えることができます。

こちらのコードも投稿や固定ページ内のエディタでは使用できません。
投稿などのエディタ内で使用したい場合は、後述するショートコードを使用してください。

ログインユーザーを判別する条件分岐を投稿や固定ページで使用するショートコード

これまでにご紹介したコードは、全てPHPコードです。
WordPressは、投稿や固定ページ内にPHPコードを記述することはできません。

しかし、投稿や固定ページの中でもログインユーザーのみにコンテンツを表示させたい場合があるかと思います。そんな時は、ショートコードを使いましょう。

ショートコードを使えば、PHPコードを記述できない投稿や固定ページでも、ログインユーザーかどうかを判断して、ログインユーザーのみにコンテンツを表示させることができます。

まずは、ログインユーザーのみにコンテンツを表示させる条件分岐をショートコード化します。
以下のコードをfunctions.phpに記述してください。

function if_login( $atts, $content = null ) {
if(is_user_logged_in()) {
return '' . $content . '';
} else {
return '';
}
}
add_shortcode('if-login', 'if_login');

これでショートコードの作成は完了です。

ログインユーザーのみにコンテンツを表示させたい場合、以下の様にショートコードを使います。

【if-login】ここに記述した内容は、ログインユーザーにのみ表示されます。【/if-login】

ログインユーザーのみに表示させたい内容を、で囲ってやりましょう。
上記は【】で囲っていますが、実際には[]で囲ってください。

このショートコードは、投稿、固定ページ、カスタム投稿で使用することができます。

ショートコードに関して詳しく知りたい場合は、をご覧ください。

まとめ

WordPressでログインしているユーザーのみにコンテンツ表示させる条件分岐をご紹介しました。

ちょっとしたカスタマイズなどで、テスト環境を使うまでもないけど、本番環境でカスタマイズしている段階を訪問者には見せたくない時など、今回の条件分岐が役に立ちそうです。

会員制サイトなどで、会員と非会員でコンテンツを分けたい時にも活用できそうです。

よく使う条件分岐を42種類を以下の記事にまとめてみたのでご確認ください。
【保存版】WordPressの条件分岐を42個まとめてみました!

Wordpressのカスタマイズや不具合など
何かお困りのことはありませんか?

Wordpressに関連するあなたのお悩み、解決いたします。
次のような方は、お気軽にご相談下さい。

  • Wordpressサイトをカスタマイズしたいが、やり方が分からないで困っている。カスタマイズの知識が豊富な人に任せたい。
  • Wordpressサイトに不具合が発生したが、直し方が分からない。不具合の修正経験が豊富な人に任せたい。
  • 既存サイトにWordPressを導入したいが、やり方が複雑で自分ではできそうにもない。経験が豊富な人に任せたい。
  • WordPressがハッキングされたが修正の仕方が分からない。サイトを元通りにできる人を探している。
  • Wordpressで0からサイトを制作したいが、自分ではできそうにもない。プロにサイト制作を委託したい。

一つでも該当する方は、以下のフォームからお気軽にご相談下さい。

WordPressに関して今すぐ相談する

著者:takaya kondo

岡山在住のWordPress専門フリーランサーです。Wordpressを使ったWEBサイト制作を中心に10年間ほど活動させていただいています。

Wordpress関連の記事でお役に立てれば幸いです。

【関連記事】あなたが興味のありそうな関連記事をご紹介します。

コメントを残す

(必須)

CAPTCHA