Я був впевнений, що ця 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 використовує ідентифікатор користувачів, щоб призначати користувачам повідомлення / коментарі (тощо).
Єдина проблема, про яку я можу подумати - це те, що коли цей користувач зараз увійшов у систему, він вийде після зміни користувача_login.