メニュー

WEBMEMOする。とあるクリエイターの個人的な備忘録。

今回は、WordPressで現在ログイン中のユーザーの情報を取得する方と、その時にどんな情報が得られるのかをメモしていきます。

普通のブログなら使うことはないと思いますが、会員制のサイトなどを作る時は必要になってくると思います。

 

目次

    取得方法

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

    引数はありません。

    例 : ユーザー情報を変数$userに代入

    $user = wp_get_current_user();

    取得できる情報一覧

    どんな情報が得られるのか、先ほど情報を格納した$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 : ニックネーム
        ["user_email"]           => string : メールアドレス
        ["user_url"]             => string : ユーザーのサイトurl
        ["user_registered"]      => string : 登録日
        ["user_activation_key"]  => string : アクティベーションキー
        ["user_status"]          => string : ステータス
        ["display_name"]         => string : 表示名
      }
      
      ["ID"]                     => int : 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しても出てこないが情報が取得できるもの

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

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

    $user->email;
    $user->user_login;
    など

    階層によって型が変わるもの(他にもあるかも)

    $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しても表示されないのに、情報がちゃんと取得できるもの。

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

    - Thank you for reading this to the end. -

    コメントする

    CAPTCHA


    TOPへ Top