Blog

ブログ

WordPress 6.0で $profileuser 変数が変更されてた

2023.06.21 公開
Yuko Hashimoto
Yuko Hashimoto デザイナー

v6.0から $profileuser が使えないみたい

利用中の 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`.

変数の命名規則を揃えたかったみたいですね。

リリースノートに書いてよ……。

対応方法

その1:$profile_user に変更する

一番簡単ですね!

// global $profileuser;

global $profile_user;

// $hogehoge = $profileuser->hogehoge;

$hogehoge = $profile_user->hogehoge;

しかし適用する WordPress のバージョンが5系か6系かはっきりしない時には不安ですね。

クライアントが WordPress のバージョンを切り替えられる環境だったりすると悩ましいぞ……。

その2:$profile_user を使わない

素直に $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 のままでも問題なく動いているものがあります。よくわからんです。