WP-Highlight.js Plugin zerstört RSS Feed – Lösung des Problems

Vielleicht haben es einige von euch mitbekommen, dass in den letzten Wochen der RSS Feed aller Blogbasis-Kategorien nicht mehr funktionierte. Es dauerte eine Weile, bis ich das Problem finden und beheben konnte. Der Übeltäter war das Plugin „wp-highlight.js“.

Was war das Problem?

Das Problem bestand darin, dass auf merkwürdige Weise eine Leerzeile am Anfang des RSS Feeds eingefügt wurde. Da der RSS-Feed im XML-Format vorliegt, und der XML-Parser sehr strikt mit Fehlern umgeht, wurde einfach der RSS Feed als „kaputt“ eingestuft.

Folgender XML-Fehler erschien als Diagnose:

This page contains the following errors:

error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

Der Lösungsversuch

Nach ein wenig Googlen wusste ich, dass das Problem enstehen kann, wenn entweder vor „<?php“ bzw. nach „?>“ eine Leerzeile in einer PHP-Datei steht. Es wurden auch einige potentielle Fehlerquellen vorgestellt, wie z.B. wp-config.php. Nach einem Check dieser Dateien schien jedoch alles soweit in Ordnung. Die Suche ging weiter…

Mein nächster Verdacht bestand in einigen Plugins. Ich nutze Yoasts SEO Plugin zum Erstellen der Sitemaps bzw. des RSS-Feeds. Eine testweise Deaktivierung des Plugins brachte allerdings nicht den gewünschten Effekt.

Die Lösung

Nach einer längeren Zeit des Verzweifelns entschied ich mich auf Empfehlung von „@Yakuza112“ alle Plugins zu deaktivieren. Dieser Schritt zeigte einen ersten Erfolg, denn der Feed war wieder in Ordnung. In dem ich jedes Plugin einzeln aktivierte, konnte ich am Ende den Übeltäter identifizieren.

Es handelte sich um das Plugin „WP-Highlight.js“. Das Ergebnis überraschte mich ein wenig, denn das Plugin lief zuvor einwandfrei. Nun gut, ein weiterer Blick in die entsprechende PHP-Datei

wp-content/plugins/wp-highlightjs/wp_highlight.js.php

brachte die überflüssige Leerzeile hervor (Am Ende der Datei). Wenn man diese Zeile löscht, und die Datei abspeichert, dann funktioniert alles wieder wie es soll. WIN!

Fazit

Es ist erstaunlich, was so eine Leerzeile alles anrichten kann :( Außerdem sollte man daraus lernen, dass halbe Sachen nichts bringen ;)

An der Stelle nochmal ein „Entschuldigung!“ an alle Leser die in dem Zeitraum unseren Feed nicht nutzen konnten.

~ Sebastian