ログイン状態を判別して条件分岐するis_user_logged_in()関数【WordPress】

最終更新日:

公開日:2024-08-16

記事内に広告が含まれています。
ログイン状態を判別して条件分岐するis_user_logged_in()関数【WordPress】

本番環境と開発環境が分かれていない時や、Wordpressにログインしている場合のみ表示(出力)したくない時があります。そんな時に簡単に使用できるis_user_logged_in()関数を紹介いたします。

WordPressにログインしている場合のみ表示する

最初にWordPressにログインしている場合のみ表示するコードは以下となります。
is_user_logged_in()関数を使用するとログインしている場合はtrue、していない場合はfalseを返します。それを利用しif文で判別する形となります。

<?php if( is_user_logged_in() ) : ?>
    ログインしている場合のみ表示する内容を記述します。
<?php endif; ?>

WordPressにログインしていない場合のみ表示する

次に、ログインしていない場合のみ表示する方法です。先程のif文の条件を否定形にします。
アクセス解析のタグを表示する場合などに便利です。

<?php if( ! is_user_logged_in() ) : ?>
    ログインしてない場合のみ表示する内容を記述します。
<?php endif; ?>

ログイン状態で表示を変える

ログインしている場合と、していない場合で表示を変えるには以下のコードで可能です。

<?php if( is_user_logged_in() ) : ?>
    ログインしている場合のみ表示する内容を記述します。
<?php else : ?>
    ログインしてない場合のみ表示する内容を記述します。
<?php endif; ?>

ショートコードを作成し、投稿や固定ページで使用する

続いてはショートコードを作成し、投稿や固定ページで使用する方法です。
先程まではテンプレートファイルに直接記述する方法でしたが、ショートコード化すると投稿や固定ページのエディタに組込み可能となります。(ブロックエディタのGutenbergでも使用も問題ありません)

まずは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]

さいごに

いかがでしたでしょうか。
ちょっとした内容の変更などで開発環境を使用するまでも無いような場合や、ログインしていない場合に出力するアクセス解析タグ、会員サイトの作成などにis_user_logged_in()関数を使用しますので、使い方を覚えておくと便利です。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼
PAGE TOP