web-dev-qa-db-ja.com

プログラムでユーザー名を変更する方法(user_login)

タイトルのように、プログラムでユーザーのログインを変更するにはどうすればいいですか?

私はwp_insert_user関数を使いたかったのですが、現在のユーザーを更新してもユーザー名は変更されないようです。そのためには$wpdb->updateを使うべきですか?はいの場合、ユーザー名を変更するためのコードはどのようになりますか? WordPress APIがユーザー名の変更を許可していないとすると、ユーザーログインを変更するとどのような影響がありますか?

14

私は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 ) ) ;

User_loginを更新するには、カスタムSQLクエリを呼び出す必要があります。

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

WPはユーザーIDを使用して投稿やコメントなどをユーザーに割り当てているため、問題なく動作します。深刻な影響はありません。

私が考えることができる唯一の問題は、このユーザーが現在ログインしているとき、彼はuser_loginの変更後にログアウトされるということです。

21

SQLクエリを介してuser_nicenameを変更することを検討するかもしれません。これが完了したら、すべてのパーマリンクと他の機能は完璧に動作します。

4
Mohit Aneja