WP_USER对象中没有First_Name或User_Firstname属性

时间:2012-08-16 作者:emersonthis

我正在写一个基本插件。这是我的代码:

$new_user = get_userdata($user_id);

$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: <>
根据the 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) "[email protected]" ["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 } 

3 个回复
SO网友:Mike

您必须使用该功能get_user_meta

$new_user = get_userdata($user_id);

// get all the meta data of the user
$new_user_data = get_user_meta( $user_id );

// get the first name of the user as a string
$new_user_firstname = get_user_meta( $user_id, \'first_name\', true );

SO网友:HungryCoder

根据您提到的同一页,这两行应该是这样的:

$first_name = $new_user->first_name;
$last_name = $new_user->last_name;
请检查this section.

SO网友:arooaroo

不幸的是,我刚刚偶然发现了同样的问题,而您关于mu插件可能是因素的理论是完全正确的。

有趣的是,代码本身并不是在带有mu插件的php文件中,而是调用是在那里启动的。例如,我在位于mu插件的php文件中有一行“add\\u action”,但实际上在我的函数中调用了一个函数。php文件。结果是我没有看到名字和姓氏。我将那一行“add\\u action”移到了我的函数中。php,然后我得到了预期的元数据!

所以这并不是一个很好的答案,但我想确认的是,必须将其从mu插件中移出,才能获得所需的结果。我还没有深入研究WP代码,看看是否有任何线索可以解释为什么会出现这种情况。不过,我确实打算提出一个bug报告。

PS我已经在WP 3.4和3.4.2上对此进行了测试

结束

相关推荐

Mu-plugins文件夹在多站点安装中是如何工作的?

我对什么时候应该将插件文件放入mu插件有点困惑。我知道它必须使用插件,而且我知道它们是自动启用的。但是,在网络设置中,这是否会强制在所有子博客中启用插件文件?这是有道理的,那么这是我唯一一次应该在网络中放置插件文件吗?我什么时候希望插件代码在每个子博客中运行?例如,如果我想自动设置一个新的缩略图大小,我应该在那里这样做吗?或者还有其他例子吗。那么网络激活呢?