Fehlermeldung in der wp-users-list-table.php und keine Benutzerrollen mehr
Bei einem meiner letzten WordPress Umzüge bin ich auf eine sehr eigenartige Fehlermeldung gestoßen. Also eigenartig in dem Sinne, dass sie das erste Mal auftauchte und ich mir auch nicht erklären konnte, was ich falsch gemacht hätte.
Ich wollte bei einem Subblog in einer Multisite Umgebung die aktuellen Benutzer auflisten und einem Benutzer andere Rechte zuweisen. Bei der Auflistung warf WordPress bereits eine Fehlermeldung aus und das Feld für die Benutzerrollen (User Roles) war leer und somit ließ sich der Benutzer nicht bearbeiten. Was tun, sprach Zeus.
Dieses Fehlverhalten kann mehrere Gründe haben. Plugins funken dazwischen, eine instabile WordPress Installation … etc.
In meinem Fall stellte sich heraus, dass ich beim Umzug einer WordPress Singleinstallation in die Multisite (den ich immer auf SQL Basis abwickle) vergessen hatte, auch wirklich alle Tabellen Präfixe im SQL Dump auszutauschen. Es gibt je nach Installation mehr oder weniger viele Stellen in der Datenbank, wo sich gewisse Plugins, Themes und auch WordPress selbst mit absoluten Dateipfaden, Tabellennamen und dergleichen verewigen. Es kommt einem Wunder gleich, wenn man tatsächlich alle erwischt. Zudem werden inzwischen viele Einträge serialisiert, was aber eine ganz neue Herausforderung darstellt und in einem anderen Artikel besprochen werden wird.
Zurück zum Thema.
In der options Tabelle exisitiert ein Eintrag, der das mit den User Roles regelt. Je nachdem, ob wir uns in einer WordPress Einzelinstalltion oder Multisite befinden, trägt er unterschiedliche Bezeichnungen. In der Single WP müsst ihr nach diesem Schema Ausschau halten: EuerTabellenPräfix_user_roles; in einer Multisite nach diesem hier: EuerTabellenPräfix_BlogID_user_roles
Solltet ihr nun vergessen, diesen Eintrag bei einem Umzug namentlich anzupassen, dann gibt es für dieses (Sub)blog keine Benutzerrollen.
So behebt ihr den Fehler in der wp_options Tabelle
Habt ihr die Möglichkeit, die MySQL Verwaltungsoberfläche phpmyadmin einzusetzen? Gut.
Navigiert direkt zur options Tabelle und klickt auf Suche. In dem sich nun öffnenden Suchformular gebt ihr in der Zeile option_name die Suchphrase %user_roles% ein.Es wäre sehr von Vorteil, wenn die Suchfunktion auf LIKE gestellt ist. Sucht nach diesem String und ihr werdet sicher fündig. Ändert den Wert bei option_name entsprechend eurer WordPress Installation ab.
Sobald ihr die Änderung abgespeichert habt und die Benutzerliste im WordPress Backend aufruft, dürfte die Fehlermeldung verschwunden sein und die Benutzerrollen lassen sich auch wieder einstellen und abspeichern.
Sollte es ein Problem mit dem Wert im Feld option_value geben, macht ihr ein copy&paste aus einer funktionierenden WordPress Installation heraus. Das dürfte fürs Erste reichen.