我正在写一个基本插件。这是我的代码:
$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 }
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上对此进行了测试