WordPressのカスタマイズやオリジナルテーマ開発において、現在ログインしているユーザーの情報を取得したい場面は頻繁に発生するんじゃないでしょうか。
例えば、「ようこそ、〇〇さん!」と表示したり、ユーザー権限によって表示するメニューを切り替えたり、パーソナライズされた体験を提供するために必須の機能と言えます。
しかし、もしあなたのWordPressサイトで古い情報に基づいたコード、具体的には get_currentuserinfo() 関数を使っていたら、それは危険信号です!
本記事では、WordPressのコア開発で推奨されている最新かつ安全なユーザー情報取得の方法を、Webデザイナーの皆さんがすぐに使えるコードとともにお届けします。
問題放置コスト:get_currentuserinfo() を使い続ける致命的なリスク
古い記事などで紹介されている get_currentuserinfo() 関数は、実はWordPressのコアからとっくに消滅しています。| バージョン | ステータス |
|---|---|
| WordPress 3.1 | 非推奨 (Deprecated) |
| WordPress 4.5 | 完全に削除 (Removed) |
この廃止された関数を現在のWordPress環境(2025年時点)で使用し続けると、どのような問題が発生するのでしょうか?
①致命的なエラーの発生 (Fatal Error):
関数自体が存在しないため、コードが実行されると「Call to undefined function get_currentuserinfo()」のような深刻なエラーとなり、ウェブサイト全体が真っ白になる可能性があります。これはユーザー体験を著しく損なうでしょう。
②将来的な互換性の問題 (Compatibility Issue):
たとえ何らかの理由で現時点では動いても、今後のWordPressコアや他のプラグインのアップデートにより、予期せぬ挙動やセキュリティホールが生まれるリスクが非常に高いです。古い情報に頼らず、現在のスタンダードである正しいコードへ速やかに移行することが、プロのWebデザイナーとしてのサイトの信頼性を担保します。
2025年推奨!ログインユーザー情報を取得する正しい関数
get_currentuserinfo()の代替として、現在最も推奨され、広く利用されている関数はwp_get_current_user() です。この関数は、現在ログインしているユーザーの情報を WP_User オブジェクトとして取得します。このオブジェクトは、ユーザー名、メールアドレス、ユーザーID、権限レベルなど、必要な情報をすべて内包しているのが特徴です。
wp_get_current_user()`を使った情報の取得方法
グローバル変数を使わず、セキュリティと可読性を高めるために、この関数を積極的に活用しましょう。具体的なコードは以下の通りです。|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php // 1. WP_Userオブジェクトを取得 $current_user = wp_get_current_user(); // 2. ユーザー情報を表示 if ( 0 != $current_user->ID ) { // ユーザーがログインしているか確認 echo 'ようこそ、' . $current_user->display_name . 'さん!' . "\n"; echo '--- 取得できる主な情報 ---' . "\n"; echo 'ユーザーID: ' . $current_user->ID . "\n"; echo 'ログイン名 (user_login): ' . $current_user->user_login . "\n"; echo 'メールアドレス (user_email): ' . $current_user->user_email . "\n"; echo '表示名 (display_name): ' . $current_user->display_name . "\n"; echo 'WebサイトURL (user_url): ' . $current_user->user_url . "\n"; echo '権限レベル (roles): ' . implode( ', ', $current_user->roles ) . "\n"; // 配列を文字列に変換して表示 } else { echo '現在、ログインしていません。'; } ?> |
オブジェクトから取得できる便利なユーザー情報一覧
上記の例で示したプロパティ以外にも、WP_User オブジェクトには、プロフィール画面で設定できる豊富な情報が格納されています。| プロパティ名 | 取得できる情報 | 備考 |
|---|---|---|
| $current_user->ID | ユーザーを一意に識別するID | 整数値 |
| $current_user->user_login | ログイン時に使うユーザー名 | |
| $current_user->user_email | 登録されたメールアドレス | |
| $current_user->display_name | サイトで表示される名前 | プロフィールで設定可能 |
| $current_user->first_name | 姓 (First Name) | プロフィールで設定可能 |
| $current_user->last_name | 名 (Last Name) | プロフィールで設定可能 |
| $current_user->roles | ユーザーに付与されている権限 | 配列で取得される |
表示名 (display_name) やファーストネーム・ラストネームといった項目は、ユーザーがプロフィール画面で入力していない場合、空欄として表示されます。
また、コードの冒頭でif ( 0 != $current_user->ID ) のように条件分岐を記述することで、未ログインユーザーがアクセスした場合にエラーが出たり、意図しない情報が表示されたりするのを未然に防げるでしょう。
未ログイン状態では $current_user->ID は 0 になります。
【まとめ】安全なコードでサイトを構築しましょう!
今回は、WordPressでログインユーザーの情報を取得する関数について、古いコードの危険性と2025年現在の正しい実装方法を解説しました。| 古い (廃止済) | 最新 (推奨) |
|---|---|
get_currentuserinfo() |
wp_get_current_user() |
Webデザイナーとして、サイトの安定稼働とセキュリティは最優先事項です。古いコードを放置するのではなく、
wp_get_current_user() 関数に置き換えて、より安全で最新のWordPress開発に取り組んでいきましょう。


コメント