問題描述
在標題中,如何以編程方式更改用户的登錄?
我想使用 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。