MENU

is_user_logged_in()– Function –

is_user_logged_in は、 現在のユーザーがログインしているかどうか を確認するためのWordPressテンプレートタグです。ユーザーがログイン中であれば true を返し、そうでない場合は false を返します。

目次

機能の説明

  • ユーザーのログイン状態を確認する シンプルなテンプレートタグです。
  • このタグは、ログイン中のユーザーに 特定のコンテンツを表示 したり、未ログイン時には リダイレクト する場合などに使います。

シンプルなコード例

if (is_user_logged_in()) {
    echo 'ログインしています。';
} else {
    echo 'ログインしていません。';
}
  • is_user_logged_in() は条件式で使用され、ユーザーがログインしているかを判別します。
  • この関数を使って、 ログインユーザー向けのコンテンツの制御 や、未ログイン時にログインページへリダイレクトする処理が可能です。
add_action('template_redirect', function () {
    if (!is_user_logged_in() && !is_page('login')) {
        wp_redirect(home_url('/login/'));
        exit;
    }
});
  • template_redirect フック を使い、 未ログインのユーザーをログインページにリダイレクト する例です。
  • is_page('login') で、ログインページへのアクセスは制限しないようにしています。
  • wp_redirect() でURLをリダイレクトした後、必ず exit で処理を終了します。

一緒に使うことが多い関連タグ

wp_redirect()

ユーザーを特定のページへリダイレクト する関数です。

if (!is_user_logged_in()) {
    wp_redirect(home_url('/login/'));
    exit;
}

current_user_can()

ユーザーが特定の権限を持っているかどうか を確認する関数です。

if (is_user_logged_in() && current_user_can('administrator')) {
    echo '管理者ユーザーです。';
} else {
    echo '管理者権限がありません。';
}

追加情報を取得したい場合

wp_get_current_user() でユーザー情報を取得する

$current_user = wp_get_current_user();
if ($current_user->exists()) {
    echo 'こんにちは、' . esc_html($current_user->display_name) . 'さん!';
}
  • wp_get_current_user() でログイン中のユーザー情報を取得します。
  • display_name プロパティを使用して、ユーザーの表示名を取得しています。

出力できる情報

  • ID: ユーザーのID
  • user_login: ユーザー名
  • user_email: メールアドレス
  • display_name: 表示名

想定されるトラブル

ログインしているのに false が返る

キャッシュプラグインの影響でログイン状態が正しく反映されないことがあります。

解決方法

キャッシュ設定で ログインユーザーへのキャッシュを無効化 してください。

リダイレクトループが発生する

ログインページへのリダイレクト処理が誤って設定されている場合。

解決方法

is_page('login') のように、 ログインページを除外する条件を追加 します。

Q&A

is_user_logged_in() は管理画面でも使えますか?

はい、管理画面でも利用可能です。管理画面の admin_init フック などでも使用できます。

未ログイン時にエラーメッセージを表示する方法は?

以下のコードで、ログインフォームページに エラーメッセージ を表示できます。

if (!is_user_logged_in()) {
    echo 'このページを表示するにはログインが必要です。';
}

ログインユーザーを特定のページにリダイレクトする方法は?

wp_login フックを使い、ログイン後にリダイレクトできます。

add_filter('login_redirect', function ($redirect_to, $request, $user) {
    return home_url('/dashboard/');
}, 10, 3);

まとめ

is_user_logged_in は、 ユーザーのログイン状態を判別するための重要な関数 です。

条件に応じて コンテンツの表示・非表示を制御 したり、リダイレクト処理を実装する際に役立ちます。特に、 会員制サイト管理画面へのアクセス制限 によく使われます。

カスタマイズ例

1