问题描述

在标题中,如何以编程方式更改用户的登录?

我想使用 wp_insert_user 功能,但是看起来当更新当前用户时,它不会更改其用户名。我应该用 $wpdb->update 吗?如果是,更改用户名的代码如何?由于 WordPress API 不允许更改用户名,因此会改变用户登录的后果如何?

最佳解决方案

我确信 wp_update_user 功能应该这样做 (http://codex.wordpress.org/Function_Reference/wp_update_user) 。

它甚至获得 user_login 作为参数,但它看起来像它忽略它,当你设置这个参数。

所以这个代码看起来不错,但是它不会像你希望的那样工作:( 🙁

wp_update_user( array ( 'ID' => $user_id, 'user_login' => $new_login ) ) ;

您必须调用自定义 SQL 查询才能更新 user_login:

$wpdb->update($wpdb->users, array('user_login' => $new_user_login), array('ID' => $user_id));

它可以正常工作,我认为没有任何严重的后果,因为 WP 使用用户 ID 为用户分配帖子/评论 (等等) 。

我唯一可以想到的问题是,当用户当前登录时,他将在 user_login 更改后退出。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。