Heute morgen bekam ich eine Nachricht, dass mein Blog sehr seltsam aussehen würde. Also mal nachgesehen und tatsächlich, es sah seltsam aus.
Statt des gewohnten Bildes wurde das Browserfenster nur gleichlautenden Meldungen zugepflastert:
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /kunden/xxxxx_xxxxx/wordpress/wp-content/plugins
/crayon-syntax-highlighter/crayon_langs.class.php on line 340
Ok, der „Schuldige“ steht ja schon in der Fehlermedlung drin, also mal kurz in die Admin-Oberfläche und das „Crayon Syntax Highlighter“ Plugin deaktiviert. Und schon funktioniert das Blog wieder.
Aber halt, hin und wieder blogge ich auch Code-Schnipsel und da wäre ein Syntax-Highlighter schon eine gute Sache. Also mal googeln.
Ja, das Problem ist bekannt und es ist wird getriggert wenn man für seine Webseite PHP 7.3 nutzt. Ja, genau das habe ich neulich doch getan, mal die PHP-Version für mein Blog aktualisiert. Und schon geht es nicht mehr.
Auch in den Support-Seiten des Plugins finden sich Tickets die auf diesen Fehler hinweisen, das Plugin wurde aber trotzdem zuletzt vor 4 Jahren aktualisiert. Natürlich gibt es viele Blogartikel in der Google-Trefferliste die dann erklären, welche Dateien des Plugins man wie ändern muss damit das alles wieder funktioniert. Ja, schon, aber es ist eigentlich Unsinn, wenn jetzt die 30.000 Leute die das auf ihrer WordPress-Site installiert haben alle diese Änderungen manuell vornehmen müssen. Der Autor bzw. Maintainer des Plugins tut jedenfalls offensichtlich nix um das Problem zu fixen. Eine Lösung wäre wohl ein „Non-Maintainer-Upload“, also dass sich jemand erbarmt dieses Problem zu beheben und das Update dann über die fehlerhafte Version zu laden, damit alle dies im Rahmen des normalen Update-Prozesses bekommen. Setzt allerdings voraus, dass WordPress.org auch das Werkzeug des NMU erlaubt, wenn nur der Autor ändern kann, dann bleibt als „Lösung“ eigentlich nur ein Fork des Plugins.
Im Support-Forum findet sich dann auch die Nachricht, dass jemand dieses Plugin vor eineinhalb Jahren ge-fork-ed hat und es nun weiterentwickelt. Das Ding heißt dann „Uranov Syntax Highlighter“ und wird momentan auch aktiv gepflegt, das letzte Update dieses Plugins war vor 7 Tagen.
Also goodbye Crayon Syntax Highlighter und welcome Uranov Syntax Highlighter. Da das neuere ein Fork vom älteren ist besteht die Hoffnung, dass ich nicht alle Code-Schnipsel an irgend einen geänderten Syntax anpassen muss, sondern dass das gleich auf Anhieb funktioniert.
Das eigentliche Problem bleibt aber, dass in jeder WordPress-Installaton Plugins vor sich hin altern und Probleme machen. Neulich hatte ich z.B. das Problem, dass der der Webseiten-Status-Bericht nicht funktioniert hat. Was letztlich für mich auch der Trigger war um von PHP 7.2 auf 7.3 (das ist aktuell das neueste was mein Webhoster anbietet) umzusteigen. Rund lief es aber erst wieder, nachdem ich einige Plugins deaktiviert habe. Und in der Plugin-Übersicht von WordPress sieht man zwar welche Plugins in welcher Version installiert sind, aber man sieht leider nicht, wann das letzte Update für dieses Plugin raus kam. So ist es dann schon nicht so einfach, die langsam „verfaulenden“ Plugins zu lokalisieren.
Nun gut, Blog läuft wieder und ich muss mal überlegen, ob ich das ganze einer Auffrischungskur unterziehe, evtl. auch mit einem neuen Theme.