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
は、 ユーザーのログイン状態を判別するための重要な関数 です。
条件に応じて コンテンツの表示・非表示を制御 したり、リダイレクト処理を実装する際に役立ちます。特に、 会員制サイト や 管理画面へのアクセス制限 によく使われます。
カスタマイズ例
-
WordPress REST APIを特定の条件下のみ無効化を除外する方法
WordPressのREST APIは非常に便利ですが、必要に応じて特定の条件下のみ無効化を除外することで、柔軟な運用が可能になります。 特定のユーザーやプラグイン、時間帯、IPアドレスごとの制御は、セキュリティと利便性を両立させる重要な手段です。ここでは... -
REST APIを無効化する方法
WordPressのREST APIは、テーマやプラグインの開発で便利ですが、使用しない場合はセキュリティの観点から無効化を検討することが推奨されます。 特に、サイトの情報が不正に取得されるリスクを軽減したい場合には、REST APIの無効化が有効です。 解説 RES...
1