問題描述

在標題中,如何以程式設計方式更改使用者的登入?

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