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

WordPressでは、ユーザーがログインしているかどうかを判定するために is_user_logged_in() 関数を使います。
この関数を活用すれば、ログイン中のユーザー専用コンテンツの表示やログアウト中ユーザーへの案内などを簡単に実装できます。
Contents
✅ 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など)と併用すれば、柔軟な制御ができる。

