目次
利用中の WordPress で $profileuser を使用してユーザー情報に追加の項目を設定していたのですが、WordPress 6.0 に上げたら表示されなくなったのでメモ。
どうやら、プロフィール情報が入っているグローバル変数の $profileuser が $profile_user に変更されていた模様。
https://github.com/WordPress/WordPress/commit/602b46626c106e128e0f991575967858538a941a
This brings the naming more in line with other variables like `$current_user`.
変数の命名規則を揃えたかったみたいですね。
リリースノートに書いてよ……。
一番簡単ですね!
// global $profileuser;
global $profile_user;
// $hogehoge = $profileuser->hogehoge;
$hogehoge = $profile_user->hogehoge;
しかし適用する WordPress のバージョンが5系か6系かはっきりしない時には不安ですね。
クライアントが WordPress のバージョンを切り替えられる環境だったりすると悩ましいぞ……。
素直に $user_id から get_user_meta を使って呼び出す方法です。
Advanced Custom Fields というプラグインのサポートページで「$user_id を使ったら?」という会話が行われていました。
https://wordpress.org/support/topic/getting-an-error-on-user-profile-page/
// global $profileuser;
global $user_id;
// $hogehoge = $profileuser->hogehoge;
$hogehoge = get_user_meta($user_id, 'hogehoge', true);
しかし $user_id を function.php の途中でグローバル変数にするのは競合を起こしそうでなんか嫌だなという感じもします。うーん。
ユーザーのプロフィールを変数一つで呼び出せるのは便利ですが、いきなり変更されると困っちゃいますね。名前って大事ですね。
使用中のプラグインで $userprofile のままでも問題なく動いているものがあります。よくわからんです。