问题描述
在标题中,如何以编程方式更改用户的登录?
我想使用 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。