会員サイトやユーザーごとの情報表示が必要なサイトを運営している場合、ログイン中のユーザー情報をフロントエンド(投稿・固定ページ・テンプレート)で表示したいことがあります。WordPressではwp_get_current_user()関数を使うことで、簡単にログインユーザーの情報を取得できます。
本記事では、ログイン中のユーザー情報を取得し、テンプレート内で安全に表示する方法を解説します。
この記事で紹介するコードは、表示するたびにログイン中のユーザー固有の情報(メールアドレス・表示名など)を出力します。フルページキャッシュ系プラグイン(WP Rocket・Cloudflareキャッシュ等)を導入しているサイトで、除外設定なしにこの種のパーソナライズされた内容を出力すると、キャッシュされたページが別のユーザーやゲストにそのまま配信され、他人のユーザー情報が漏洩するという実運用で頻発する重大な落とし穴があります。キャッシュ環境での具体的な対策はログインユーザーのみコンテンツを表示する方法|ページキャッシュ環境での注意点で詳しく解説しています。
ログイン中のユーザー情報を取得する
WordPressでは、以下のようにwp_get_current_user()関数を使用することで、ユーザー情報オブジェクトを取得できます。
<?php $current_user = wp_get_current_user(); ?>
この関数は、ログインしていない場合でも呼び出し可能ですが、未ログイン時は空のユーザーオブジェクトが返ります。必要に応じてログイン判定を行うと安全です。
ユーザー情報の各プロパティを表示する
$current_userから取得できる主なプロパティは以下の通りです。
<p>ユーザー名:<?php echo esc_html($current_user->user_login); ?></p> <p>表示名:<?php echo esc_html($current_user->display_name); ?></p> <p>メールアドレス:<?php echo esc_html($current_user->user_email); ?></p> <p>ユーザーID:<?php echo (int) $current_user->ID; ?></p>
セキュリティを意識して、esc_html()やintval()などで適切に出力をサニタイズしましょう。
ログイン中のみ表示する条件分岐
未ログインユーザーには情報を表示したくない場合、is_user_logged_in()関数を併用します。
<?php if ( is_user_logged_in() ) : ?> <p>こんにちは、<?php echo esc_html($current_user->display_name); ?> さん!</p> <?php else : ?> <p>ログインしてください。</p> <?php endif; ?>
この条件分岐により、ログイン状況に応じてコンテンツを切り替えることができます。
ショートコードとして出力する方法
投稿本文などでログインユーザー名を表示したい場合は、ショートコードを使うと便利です。
function show_current_user_name() {
if ( is_user_logged_in() ) {
$user = wp_get_current_user();
return 'ようこそ、' . esc_html($user->display_name) . ' さん';
} else {
return 'ログインしていません。';
}
}
add_shortcode('current_user_name', 'show_current_user_name');
このショートコードを投稿本文に[current_user_name]と記述すれば、自動で名前が出力されます。より高度な「ログインユーザーにだけコンテンツを表示する」実装はログインユーザーにだけ表示するコンテンツをショートコードで実装する方法で解説しています。
応用:カスタムフィールドの値を表示する
ユーザーに紐づいたカスタムフィールド(例:電話番号や会社名)を表示したい場合、get_user_meta()を使います。
<?php $company = get_user_meta($current_user->ID, 'company_name', true); echo esc_html($company); ?>
ACFなどのプラグインで設定したユーザーメタも同様に取得できます。
よくある質問(FAQ)
まとめ
WordPressでは、wp_get_current_user()を使うことで、フロントエンドでも簡単に現在のログインユーザー情報を取得できます。条件分岐やショートコードと組み合わせることで、会員専用コンテンツやダッシュボード的な要素を柔軟に構築できます。ページキャッシュを導入している場合は、他人の情報が配信されないよう除外設定を忘れずに行いましょう。
ユーザー体験を向上させるためにも、ログイン情報の動的表示を活用してみましょう。

