本番環境と開発環境が分かれていない時や、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()関数を使用しますので、使い方を覚えておくと便利です。