Generieren Sie die Spalte user_nicename neu

Ich kämpfe mit einem databaseproblem. Ich habe die Kontrolle über eine Lösung übernommen, die von jemand anderem erstellt wurde.

Beim Einfügen / Aktualisieren von Benutzern in der database haben die früheren Entwickler ein benutzerdefiniertes databaseskript zum Aktualisieren der Tabelle wp_users und nicht über die API von WordPress geschrieben. Sie fanden heraus, dass sie die Spalte user_nicename zum Speichern des Vornamens des Benutzers und den Namen display_name zum Speichern des Nachnamen des Benutzers verwenden würden. Der Name enthält Zeichen außerhalb des englischen Alphabets.

Das Skript schreibt in diese Spalten und wir enden mit einem user_nicename wie Harald Åge , der Leerzeichen und nicht-englische Zeichen enthält. Bei Verwendung der WordPress-API wird versucht, den URL user_nicename zu machen, aber wenn ein databaseskript verwendet wird, um den Benutzer direkt einzufügen / zu aktualisieren, hat WordPress dazu nichts zu sagen.

Jetzt haben wir eine teilweise beschädigte database mit nicht URL-freundlichem user_nicename s.

Meine Frage ist: Gibt es eine Möglichkeit, diese URL-freundliche Felder zu regenerieren?

Ich denke, es ist möglich, ein benutzerdefiniertes PHP-Skript zu schreiben, das alle Benutzer nacheinander durchläuft und versucht, den Wert von user_nicename zu aktualisieren, oder indem WordPress das selbst behandeln lässt. Gibt es einen anderen Weg, dies zu tun?

Und in Zukunft möchten wir den Vor- und Nachnamen des Benutzers in der Tabelle wp_usermeta , wie es WordPress tut.

Solutions Collecting From Web of "Generieren Sie die Spalte user_nicename neu"

Die naheliegende Methode wäre, ein benutzerdefiniertes WP-CLI-Skript zu schreiben, das die Tabelle durchläuft, den Vor- und Nachnamen extrahiert, mit dem Befehl sanitize_title einen neuen Namen erstellt und den Datensatz aktualisiert. Sie müssen auch den Vor- und Nachnamen in wp_usermeta kopieren, während Sie gleichzeitig angeben.

Ich bin mir nicht sicher, ob ich dir etwas erzähle, was du hier nicht schon weißt.