Macs in Media

Wordpress-Macke(n)

Oft wird ja darüber gemeckert. Wordpress wäre das Windows unter den Blogs. Viele benutzen es. Es ist aufgeladen. Es zeigt merkwürdiges Verhalten an den Tag, und zwar nur manchmal. Und noch vieles, vieles mehr.

Da wird dann auf Serendipity, Movable Type oder sonstwas verwiesen. Mir ist das alles irgendwo wurscht, sofern es bei mir richtig läuft. Da kommt dann der Egoist in mir wieder voll zum Tragen.

Was merke ich aber bei meiner Fernarbeit? Merkwürdige vierstellige Zeichenketten werden quer im Blog angezeigt. Der erste Gedanke war, dass ich wieder Mist gebaut habe, als ich das Theme zusammenklöppelte. Also schwuppdiwupp, Theme gewechselt, Fehler immer noch da. Was machen wir jetzt? Na klar! Alle Wordpress-Plugins nacheinander deaktivieren und den verdächtigen herausfinden. Leider half das auch nicht. Hm, jetzt müssen wir ein wenig überlegen… O.K., dann kommentieren wir die ganzen Social-Web2.0-Pseudocool-Dienste in der Sidebar aus und schauen, ob es an irgendeinem vermurksten JavaScript oder sonst etwas liegt. Tja, leider auch hier kein Erfolg.

Was machen wir jetzt? Richtig! Google is your friend™. Na dann mal los. Ruckzuck bin ich auf eine Supportanfrage gestoßen, die das gleiche Problem schildert: komische Zahlen pseudozufällig im Blog verstreut. Nach kurzem Einlesen wurde das Problem geschildert, was nichts anderes als ein Bug in der Wordpress-Software ist. Es wird standardmäßig ein HTTP/1.1-Header gesendet, obwohl dies nicht immer übereinstimmt, zum Beispiel wenn ein Web-Proxy (auch transparent) wie Squid dazwischengeschaltet ist. Und genau da ist bei meinem Gastzugang im entfernten Lande der Fall. Der Bug wurde übrigens schon in den Wordpress-Tracker eingetragen und soll mit Version 2.2 endgültig behoben werden. Da mir das allerdings zu lange dauert, habe ich die Schritte auf der Supportseite befolgt und zwei Zeilen in der functions.php geändert. Bei mir (Version 2.1.3) handelt es sich konkret um die Zeilen 832 und 834, die wie folgt geändert werden müssen:

if ( version_compare(phpversion(), '4.3.0', '>=') )

    //@header("HTTP/1.1 $header $text", true, $header);

    @header($_SERVER["SERVER_PROTOCOL"]." $header $text", true, $header); //832

else

    //@header("HTTP/1.1 $header $text");

    @header($_SERVER["SERVER_PROTOCOL"]." $header $text"); // 834

Die auskommentierten Zeilen sind die ursprünglichen Aufrufe, die zu einem Fehler führen.

Welche Schlussfolgerungen ziehe ich nun daraus? Ich denke, dass es verantwortungslos ist so einen Fehler über einen ziemlich langen Zeitraum im Quellcode zu lassen. Zwar ist der Bug nicht sicherheitskritisch, führt aber zu einer ungewollten Darstellung über die man sich nicht einmal im Klaren ist, sofern man nicht hinter einem Proxy sitzt. Als ob Webdesigner nicht schon genug Probleme mit komischen Browsern hätten.