WordPressで現在ログイン中のユーザーの情報を取得する方と、その時に得られる情報の中身を調べてみたのでメモしておきます。

また、調べているときに気づいたのですが、var_dump()によって出力された情報と、実際に取得できる情報がなぜか一致しない点がいくつかあったので、その辺に関してもメモしておきます。

 

目次

現在ログイン中のユーザーの情報の取得方法

wp_get_current_user() という関数を使用します。

引数はありません。

ログイン中のユーザー情報を取得

$user = wp_get_current_user();

取得できた情報一覧

どんな情報が得られたのか確認してみます。

wp_get_current_user()の結果を代入しておいた変数を var_dump()してみたところ、以下のようなユーザー情報が取得できました。

「管理者」でログインしている時に取得できる情報一覧

object(WP_User)#1280 (7) {
  //基本データオブジェクト
  ["data"]=>  object(stdClass)#1250 (10) {
    ["ID"]                   => string() "ID名"
    ["user_login"]           => string() "ログイン名"
    ["user_pass"]            => string() "パスワード (暗号化済み)"
    ["user_nicename"]        => string() "著者アーカイブのURL用の名前"
    ["user_email"]           => string() "メールアドレス"
    ["user_url"]             => string() "ユーザーのサイトurl"
    ["user_registered"]      => string() "登録日"
    ["user_activation_key"]  => string() "アクティベーションキー"
    ["user_status"]          => string() "ステータス"
    ["display_name"]         => string() "表示名"
  }
  
  ["ID"]                     => int(1)  //ユーザーID

  //所有するロールの連想配列
  ["caps"] =>  array(1) {
    ["administrator"]        => bool(true)
  }

  ["cap_key"]                => string() "ロールのキー名"

  //所有するロールの配列
  ["roles"]=>  array(1) {
    [0]                      => string() "administrator"
  }

  //所有する権限の連想配列
  ["allcaps"]=>  array(63) {
    ["switch_themes"]          => bool(true)
    ["edit_themes"]            => bool(true)
    ["activate_plugins"]       => bool(true)
    ["edit_plugins"]           => bool(true)
    ["edit_users"]             => bool(true)
    ["edit_files"]             => bool(true)
    ["manage_options"]         => bool(true)
    ["moderate_comments"]      => bool(true)
    ["manage_categories"]      => bool(true)
    ["manage_links"]           => bool(true)
    ["upload_files"]           => bool(true)
    ["import"]                 => bool(true)
    ["unfiltered_html"]        => bool(true)
    ["edit_posts"]             => bool(true)
    ["edit_others_posts"]      => bool(true)
    ["edit_published_posts"]   => bool(true)
    ["publish_posts"]          => bool(true)
    ["edit_pages"]             => bool(true)
    ["read"]                   => bool(true)
    ["level_10"]               => bool(true)
    ["level_9"]                => bool(true)
    ["level_8"]                => bool(true)
    ["level_7"]                => bool(true)
    ["level_6"]                => bool(true)
    ["level_5"]                => bool(true)
    ["level_4"]                => bool(true)
    ["level_3"]                => bool(true)
    ["level_2"]                => bool(true)
    ["level_1"]                => bool(true)
    ["level_0"]                => bool(true)
    ["edit_others_pages"]      => bool(true)
    ["edit_published_pages"]   => bool(true)
    ["publish_pages"]          => bool(true)
    ["delete_pages"]           => bool(true)
    ["delete_others_pages"]    => bool(true)
    ["delete_published_pages"] => bool(true)
    ["delete_posts"]           => bool(true)
    ["delete_others_posts"]    => bool(true)
    ["delete_published_posts"] => bool(true)
    ["delete_private_posts"]   => bool(true)
    ["edit_private_posts"]     => bool(true)
    ["read_private_posts"]     => bool(true)
    ["delete_private_pages"]   => bool(true)
    ["edit_private_pages"]     => bool(true)
    ["read_private_pages"]     => bool(true)
    ["delete_users"]           => bool(true)
    ["create_users"]           => bool(true)
    ["unfiltered_upload"]      => bool(true)
    ["edit_dashboard"]         => bool(true)
    ["update_plugins"]         => bool(true)
    ["delete_plugins"]         => bool(true)
    ["install_plugins"]        => bool(true)
    ["update_themes"]          => bool(true)
    ["install_themes"]         => bool(true)
    ["update_core"]            => bool(true)
    ["list_users"]             => bool(true)
    ["remove_users"]           => bool(true)
    ["promote_users"]          => bool(true)
    ["edit_theme_options"]     => bool(true)
    ["delete_themes"]          => bool(true)
    ["export"]                 => bool(true)
    ["aiosp_manage_seo"]       => bool(true)
    ["administrator"]          => bool(true)
  }
  
  ["filter"]        =>  string() "フィルター名"

}

例 : ユーザーレベルが「購読者」のユーザーでログインしている時に取得できる情報一覧

object(WP_User)#1264 (7) {
  ["data"]=> object(stdClass)#1250 (10) {
    ["ID"]
    ["user_login"]
    ["user_pass"]
    ["user_nicename"]
    ["user_email"]
    ["user_url"]
    ["user_registered"]
    ["user_activation_key"]
    ["user_status"]
    ["display_name"]
  }
  ["ID"]
  ["caps"]=> array(1) {
    ["subscriber"]          => bool(true)
  }
  ["cap_key"]
  ["roles"]=> array(1) {
    [0]                     => string(10) "subscriber"
  }
  ["allcaps"]=> array(3) {
    ["read"]                => bool(true)
    ["level_0"]             => bool(true)
    ["subscriber"]          => bool(true)
  }
  ["filter"]
}

var_dumpで見える情報と異なる点

var_dump()してみて中身が分かりましたが、注意すべき点がいくつかありました。

var_dumpしても出てこないが情報が取得できるもの

$user->last_name  //string 苗字
$user->first_name  //string 名前

階層通りじゃなくても取得できるもの ('data'の中身全般)

$user->email;
$user->user_login;
/* ...etc */

同じ情報を取得できるが、階層によって型が変わるもの

$user->ID        //int
$user->data->ID  //strig

$user->user_status        //int
$user->data->user_status  //strig

他にもあるかもしれないです。

階層を省略してもエラーにはならないが、空文字になるもの

$user->administrator              //string ""
//本来は以下
$user->allcaps['administrator']   //bool true
$user->caps['administrator']      //bool true

う〜ん...

特に気になるのが、 last_namefirst_nameなどの、var_dumpしても表示されないのに情報が取得できるもの。

たまにこういうのに遭遇しますが、一体どういうことなんでしょうか…。

- Thank you for reading. -

コメント

コメントする