タイトルのように、プログラムでユーザーのログインを変更するにはどうすればいいですか?
私は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 ) ) ;
User_loginを更新するには、カスタムSQLクエリを呼び出す必要があります。
$wpdb->update($wpdb->users, array('user_login' => $new_user_login), array('ID' => $user_id));
WPはユーザーIDを使用して投稿やコメントなどをユーザーに割り当てているため、問題なく動作します。深刻な影響はありません。
私が考えることができる唯一の問題は、このユーザーが現在ログインしているとき、彼はuser_loginの変更後にログアウトされるということです。
SQLクエリを介してuser_nicenameを変更することを検討するかもしれません。これが完了したら、すべてのパーマリンクと他の機能は完璧に動作します。