it-swarm.com.de

Wie kann ich den Benutzernamen (user_login) programmatisch ändern?

Wie im Titel, wie kann man die Benutzeranmeldung programmatisch ändern?

Ich wollte die Funktion wp_insert_user verwenden, aber es scheint, dass beim Aktualisieren des aktuellen Benutzers der Benutzername nicht geändert wird. Soll ich dafür $wpdb->update verwenden? Wenn ja, wie würde der Code zum Ändern des Benutzernamens aussehen? Welche Konsequenzen hätte eine Änderung der Benutzeranmeldung, wenn die WordPress-API keine Änderung der Benutzernamen zulässt?

14

Ich war mir sicher, dass die Funktion wp_update_user dies tun sollte ( http://codex.wordpress.org/Function_Reference/wp_update_user ).

Es bekommt sogar user_login als Parameter, aber es sieht so aus, als würde es ignoriert, wenn Sie diesen Parameter setzen.

Dieser Code sieht also in Ordnung aus, funktioniert aber nicht wie gewünscht :(:

wp_update_user( array ( 'ID' => $user_id, 'user_login' => $new_login ) ) ;

Sie müssen eine benutzerdefinierte SQL-Abfrage aufrufen, um user_login zu aktualisieren:

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

Es funktioniert einwandfrei und ich glaube nicht, dass es schwerwiegende Konsequenzen hat, da WP die Benutzer-ID verwendet, um dem Benutzer Beiträge/Kommentare (und so weiter) zuzuweisen.

Das einzige Problem, das mir einfällt, ist, dass dieser Benutzer nach der Änderung von user_login abgemeldet wird, wenn er gerade angemeldet ist.

21

Sie können den Benutzernamen auch über die SQL-Abfrage ändern. Sobald dies erledigt ist, funktionieren alle Permalinks und anderen Funktionen einwandfrei.

4
Mohit Aneja