タイトルのように、プログラムでユーザーのログインを変更する方法は?
wp_insert_user
関数を使用したかったのですが、現在のユーザーを更新してもユーザー名は変更されないようです。$wpdb->update
そのために使うべきですか?はいの場合、ユーザー名を変更するためのコードはどのようになりますか?WordPress APIでユーザー名の変更が許可されていない場合、ユーザーのログインを変更するとどのような影響がありますか?
タイトルのように、プログラムでユーザーのログインを変更する方法は?
wp_insert_user
関数を使用したかったのですが、現在のユーザーを更新してもユーザー名は変更されないようです。$wpdb->update
そのために使うべきですか?はいの場合、ユーザー名を変更するためのコードはどのようになりますか?WordPress APIでユーザー名の変更が許可されていない場合、ユーザーのログインを変更するとどのような影響がありますか?
回答:
私は、wp_update_user
関数がこれを行うべきだと確信していました(http://codex.wordpress.org/Function_Reference/wp_update_user)。
user_loginをparamとして取得しますが、このparamを設定すると、無視されるようです。
したがって、このコードは問題ないように見えますが、期待どおりに動作しません:(:
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の変更後にログアウトされることです。