我编写了一个插件,允许通过外部API对WordPress安装进行身份验证。当登录尝试通过外部身份验证时,除了没有为插件创建的新WordPress用户设置名字和姓氏外,其他一切都正常。
这里有一个非常奇怪的部分:一个可选的显示名称是来自外部API的名字和姓氏。
$userdata = array( \'user_email\' => $ext_user[\'email\'],
\'user_login\' => $ext_user[\'email\'],
\'first_name\' => $ext_user[\'firstName\'],
\'last_name\' => $ext_user[\'lastName\'],
\'role\' => $user_role
);
$new_user_id = wp_insert_user( $userdata );
$user = new WP_User ($new_user_id);
这就是我用来创建新用户的代码。我已经记录了这两个
$ext_user[\'firstName\']
和
$ext_user[\'lastName\']
就在填充之前
$userdata
数组,以确保这些值正确通过,并且正确通过。我不明白他们怎么会出现在显示名称字段中,但名字和姓氏字段是空的。有人能帮忙吗?
UPDATE: 此安装运行Cimy User Extra Fields插件。起初,我认为这可能是罪魁祸首,但我禁用了它,问题仍然存在。也许这仍然是问题所在,但我不知道如何确定。这个插件可以替换默认的名字和姓氏字段吗?
最合适的回答,由SO网友:czerspalace 整理而成
在wp\\u insert\\u user之后,您可以尝试运行update_user_meta( $new_user_id, "first_name", $ext_user[\'firstName\'] ) ;