9

私は基本的なプラグインを書いています。これが私のコードです:

    $new_user = get_userdata($user_id); //$user_id is passed as a parameter

$first_name1 = $new_user->user_firstname;
$last_name1 = $new_user->user_lastname;
    echo "<" . $first_name1 . $last_name1 . ">";
    //returns: <>

$first_name2 = $new_user-first_name;
$last_name2 = $new_user->last_name;
    echo "<" . $first_name2 . $last_name2 . ">";
    //returns: <>

codexによると、これは機能するはずですが、エコーし$first_nameたり$last_name、空になったりすると。奇妙なことに、これは機能します:

    $id = $new_user->ID;

私は何か間違ったことをしていますか?

アップデート:

私はvar_dump編集 $new_userしましたが、それらのプロパティはそこにありません! これは、/mu-plugins ディレクトリのプラグイン内から呼び出しているためですか? それらのプロパティは後で追加されますか?

object(WP_User)#334 (7) { ["data"]=> object(stdClass)#330 (10) { ["ID"]=> string(3) "758" ["user_login"]=> string(7) "emerson" ["user_pass"]=> string(34) "$P$BB2PuvRbyGUSVZR1M8FLSujPvMO2MW0" ["user_nicename"]=> string(7) "emerson" ["user_email"]=> string(16) "123esl@gmail.com" ["user_url"]=> string(0) "" ["user_registered"]=> string(19) "2012-08-17 01:03:27" ["user_activation_key"]=> string(0) "" ["user_status"]=> string(1) "0" ["display_name"]=> string(7) "emerson" } ["ID"]=> int(758) ["caps"]=> array(1) { ["subscriber"]=> string(1) "1" } ["cap_key"]=> string(15) "wp_capabilities" ["roles"]=> array(1) { [0]=> string(10) "subscriber" } ["allcaps"]=> array(15) { ["read"]=> bool(true) ["level_0"]=> bool(true) ["read_questions"]=> bool(true) ["read_answers"]=> bool(true) ["publish_questions"]=> bool(true) ["immediately_publish_questions"]=> bool(true) ["publish_answers"]=> bool(true) ["read_private_forums"]=> bool(true) ["publish_topics"]=> bool(true) ["edit_topics"]=> bool(true) ["publish_replies"]=> bool(true) ["edit_replies"]=> bool(true) ["assign_topic_tags"]=> bool(true) ["access_s2member_level0"]=> bool(true) ["subscriber"]=> string(1) "1" } ["filter"]=> NULL } 

更新 2:

私はこれを試しました:

$user_meta = get_user_meta( $new_user->ID );
var_dump($user_meta);

そして私はこれを手に入れました(ユーザーのプロファイルで定義されていても、last_nameとfirst_nameは空です):

array(11) { ["wp_user_level"]=> array(1) { [0]=> string(1) "0" } ["show_admin_bar_front"]=> array(1) { [0]=> string(4) "true" } ["wp_capabilities"]=> array(1) { [0]=> string(32) "a:1:{s:10:"subscriber";s:1:"1";}" } ["use_ssl"]=> array(1) { [0]=> string(1) "0" } ["admin_color"]=> array(1) { [0]=> string(5) "fresh" } ["comment_shortcuts"]=> array(1) { [0]=> string(5) "false" } ["rich_editing"]=> array(1) { [0]=> string(4) "true" } ["description"]=> array(1) { [0]=> string(0) "" } ["nickname"]=> array(1) { [0]=> string(7) "emerson" } ["last_name"]=> array(1) { [0]=> string(0) "" } ["first_name"]=> array(1) { [0]=> string(0) "" } }
4

3 に答える 3

30

ユーザーの姓名は、user_meta 内に格納されます。

http://codex.wordpress.org/Function_Reference/get_user_meta

たとえば、そのすべてのデータにアクセスしたい場合は、次のようにします。

$user_meta = get_user_meta( $new_user->ID );

または、単一のメタ値にアクセスしたい場合は、これを試してください:

$last_name = get_user_meta( $new_user->ID, 'last_name', true );
于 2012-08-17T01:59:34.923 に答える
2

あなたはWordpressStackExchangeで同様の質問をしたのと同じ人だと思います。

それ自体は答えではありませんが、mu-pluginsコードから呼び出されたときにこれらのメタフィールドを取得するときに、WPプラットフォーム自体にバグがあるという説明があるようです。

私は最近これを自分で経験し、user_registerフックで呼び出されたいくつかのコードがfunctions.phpにありました。そのフックがmu-pluginsで定義されたとき、私はあなたが報告した問題を受け取りました。そのフックが私のfunctions.phpで定義されたとき、それはうまく機能しました。

于 2012-11-22T12:08:26.390 に答える