問題描述

在標題中,如何以編程方式更改用户的登錄?

我想使用 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。