wp_get_current_user() の使い方|説明・引数・注意点

説明

wp_get_current_user() は、現在ログインしているユーザーのオブジェクトを返す関数です。

基本構文

wp_get_current_user(): WP_User

引数

引数はありません。

戻り値

WP_User オブジェクト。未ログインなら ID が 0 のオブジェクト。

使い方(サンプル)

$user = wp_get_current_user();
if ( $user->exists() ) {
	var_dump( $user->display_name );
}

注意点

  • ログインしていなくてもオブジェクトが返るため、exists() や is_user_logged_in() で判定します。
  • plugins_loaded より前に呼ぶと、ユーザー情報を取得できません。

実務での使いどころ

  • ログイン中のユーザーの、表示名やメールアドレスなどを取得するとき。
  • ログイン中のユーザーのIDを、メタの取得や保存に使うとき(get_user_meta() など)。
  • ユーザーのロール(roles)を確認するとき。

よくあるミスと対処

  • ログインしていないとき、null ではなく、IDが 0 のユーザーオブジェクトが返る。ログインの判定には、$user->exists() か is_user_logged_in() を使う。
  • init フックより前に呼び、ユーザーが決まっていない。
  • ロールの文字列で、権限を判定している。権限の判定には、current_user_can() を使う。

NG例

$user = wp_get_current_user();
if ( $user ) {
	// ログインしているつもり(未ログインでも、オブジェクトが返る)
}

OK例

$user = wp_get_current_user();
if ( $user->exists() ) {
	echo esc_html( $user->display_name );
}

使い分け早見表

やりたいこと 使うもの
現在のユーザーのオブジェクト wp_get_current_user()
現在のユーザーのID get_current_user_id()
ログインしているか判定 is_user_logged_in()

関連項目

get_current_user_id()、is_user_logged_in()、get_userdata()

公式リファレンス:wp_get_current_user() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました