is_user_logged_in()の使い方とログイン状態の条件分岐【WordPress】

WordPressのis_user_logged_in()の基本構文とログイン状態による条件分岐をわかりやすく解説したイメージ。
is_user_logged_in()を使ってログイン状態を判定し、表示内容を切り替えるWordPressの基本を図解で解説。

WordPressでは、ユーザーがログインしているかどうかを判定するために is_user_logged_in() 関数を使います。
この関数を活用すれば、ログイン中のユーザー専用コンテンツの表示ログアウト中ユーザーへの案内などを簡単に実装できます。

✅ is_user_logged_in()とは?

is_user_logged_in() は、WordPressの**条件分岐タグ(Conditional Tag)の一種です。
「現在の閲覧者がログインしているかどうか」を
真偽値(true / false)**で返します。

is_user_logged_in();
  • ログインしている場合true
  • ログアウトしている場合false

このように、単独でも使用できますが、通常は if文 と組み合わせて使います。

🧩 基本的な使い方

▼ ログイン状態で表示を切り替える

<?php
if ( is_user_logged_in() ) {
    echo 'ログイン中のユーザーです。';
} else {
    echo 'ログインしていません。';
}
?>

このように書くと、ログイン状態に応じて異なるメッセージを出し分けられます。

💡 実用例1:ログイン中のみ表示されるメニュー

ログインしているユーザーにだけ「マイページ」リンクを表示したい場合:

<?php if ( is_user_logged_in() ) : ?>
    <li><a href="<?php echo home_url('/mypage/'); ?>">マイページ</a></li>
<?php endif; ?>

一方で、ログアウトしている場合に「ログイン」リンクを出すには:

<?php if ( !is_user_logged_in() ) : ?>
    <li><a href="<?php echo wp_login_url(); ?>">ログイン</a></li>
<?php endif; ?>

💡 実用例2:ログインしていないユーザーをリダイレクト

会員専用ページなどで、未ログインユーザーをログインページへ飛ばす場合:

<?php
if ( !is_user_logged_in() ) {
    wp_redirect( wp_login_url() );
    exit;
}
?>

※ このコードはテンプレートファイルの先頭や functions.php で条件指定して使うと効果的です。

💡 実用例3:特定ページのみ条件分岐する

「特定ページかつログインしている場合に表示を変えたい」ときは、is_page()is_single() などの他の条件分岐タグと組み合わせます。

<?php
if ( is_page('member') && is_user_logged_in() ) {
    echo '会員限定ページへようこそ!';
} elseif ( is_page('member') ) {
    echo 'このページを閲覧するにはログインが必要です。';
}
?>

👉 関連記事:is_page()とは?使い方と具体例を解説

⚙️ 管理画面(ダッシュボード)でも使える?

is_user_logged_in()フロントエンドと管理画面の両方で使えます。
ただし、ログイン中のユーザーが必ず管理者とは限らない点に注意してください。

もし「管理者だけに実行したい」場合は、以下のように current_user_can() を組み合わせます。

if ( is_user_logged_in() && current_user_can('administrator') ) {
    echo '管理者専用メッセージ';
}

👉 関連記事:current_user_can()の使い方と権限チェックの基本

🚀 応用:ショートコードで使う

functions.php に以下を追加すれば、ショートコードとしても利用可能です。

function show_login_status() {
    if ( is_user_logged_in() ) {
        return '現在ログイン中です。';
    } else {
        return 'ログインしていません。';
    }
}
add_shortcode( 'login_status', 'show_login_status' );

投稿や固定ページに [login_status] と書くだけでログイン状態を表示できます。

🧱 関連:他の条件分岐タグとの違い

条件分岐タグ判定内容よく使うシーン
is_user_logged_in()ログイン状態会員制サイト・限定ページ
is_page()固定ページ特定ページのデザイン変更
is_single()投稿ページブログ個別記事の制御
is_front_page()トップページメインビジュアル変更
is_home()投稿一覧ページブログトップの装飾変更

👉 関連記事:WordPress条件分岐タグの基本まとめ【初心者向け】
👉 関連記事:is_single()とis_page()の違いをやさしく解説

🔍 まとめ

  • is_user_logged_in() はログイン状態を判定する条件分岐タグ。
  • if文 と組み合わせてコンテンツ表示を切り替えできる。
  • 未ログインユーザーをリダイレクトする、管理者のみ実行するなどの応用も可能。
  • 他の条件分岐タグ(is_page, is_singleなど)と併用すれば、柔軟な制御ができる。

🔗 関連記事