WordPressのログインユーザーかどうかで条件分岐させる方法をご紹介します。
ログインユーザーにだけコンテンツを表示させたり、一般訪問者と表示させるコンテンツを切り替えたりすることができます。
ログインユーザーのみにコンテンツを表示させる条件分岐
ログインユーザーかどうかは、【is_user_logged_in()
】という関数で判断することができます。
この関数を使て、サイトを観覧しているのがログインユーザーなら【表示】、ログインユーザーでなければ【非表示】と条件分岐する事が可能です。
上記の条件分岐を行うためのコードは以下の通りです。
<?php if( is_user_logged_in() ) : ?>
ここに記述した内容はログインユーザーのみに表示されます。
<?php endif; ?>
上記のコードを記述し、その中でカスタマイズを行えば、ログインユーザーはサイト上でそのコンテンツを確認することができますが、ログインユーザーでない一般の訪問者の方は、そのコンテンツを確認することができません。
ログインユーザーを判別する条件分岐を投稿や固定ページで使用するショートコード
投稿や固定ページの中でもログインユーザーのみにコンテンツを表示させたい場合があるかと思います。そんな時は、ショートコードを使いましょう。
ショートコードを使えば、PHPコードを記述できない投稿や固定ページでも、ログインユーザーかどうかを判断して、ログインユーザーのみにコンテンツを表示させることができます。
まずは、ログインユーザーのみにコンテンツを表示させる条件分岐をショートコード化します。
以下のコードをfunctions.php
に記述してください。
function if_login( $atts, $content = null ) {
if(is_user_logged_in()) {
return '' . $content . '';
} else {
return '';
}
}
add_shortcode('if-login', 'if_login');
これでショートコードの作成は完了です。
ログインユーザーのみにコンテンツを表示させたい場合、以下の様にショートコードを使います。
残り内容は、ログインしてみてください。
ログインユーザーのみに表示させたい内容を、[]
で囲ってやりましょう。
このショートコードは、投稿、固定ページ、カスタム投稿で使用することができます。