Bis eben hatte ich für mein Kontaktformular das Plugin WP PXS-Mail in seiner neuesten Version (3.1.4de) im Einsatz. Ich musste dieses Plugin wegen Cache-Problemen deaktivieren. Wie ich bereits in meinem anderen Beitrag zur Problematik berichtet hatte, konnte mein Blog in verschiedenen Browsern nicht in seiner aktuellen Form dargestellt werden. Auch beim Absenden von Kommentaren kam es zu Schwierigkeiten, weil diese nicht bzw. erst Stunden später zu sehen waren.

Versuche über entsprechende Befehle in der header.php das Problem in Griff zu bekommen scheiterten alle. Auch der zuletzt eingefügte Befehl

header(„Expires: Mon, 13 Jul 1997 02:00:00 GMT“);
header(„Last-Modified: “ . gmdate(„D, d M Y H:i:s“) .“ GMT“);
header(„Cache-Control: no-cache“);
header(„Pragma: no-cache“);

gab nur zum Schein eine Verbesserung. Alle statischen Seiten des Blog gaben einen PHP-Fehler aus, wenn sie aufgerufen wurden. Ich habe den Code daraufhin wieder entfernen müssen. Auch die Lösungsansätze, die ich via Blogwartung erhalten hatte (vielen Dank trotzdem an Siegfried für seine Bemühungen!), konnten diese nervende Erscheinung nicht endgültig beseitigen.

Erst die Deaktivierung von PXS-Mail und ein Blick in die pxsmail.php föderte die Lösung an den Tag. Zeile 20 der pxsmail.php setzt den Wert @session_cache_limiter(‚private‘);, der für die Probleme bei der aktuellen Darstellung des Blog verantwortlich war. Der String private bedeutet

…. im private-Modus könnte ein zum Client gesendeter Expire-Header manche Browser, inklusive Mozilla, verwirren. Sie können dieses Problem durch Verwendung des private_no_expire-Modus vermeiden. In diesem Modus wird nie ein Expire-Header zum Client gesendet. (Quelle)

Ersetzt man diesen standardmäßig vorgegebenen String wie beschrieben mit private_no_expire funktioniert PXS-Mail trotzdem, die genannten Schwierigkeiten sind mit der Aktualisierung aber anscheinend behoben.

Der negative Beigeschmack an den Schwierigkeiten ist, dass der Blogbetreiber dies nicht mitbekommt, wenn sein Browser entsprechend eingestellt ist (Browser-Cache leeren wenn Sitzung beendet etc.). Da aber viele Internetnutzer ihren Cache nicht täglich leeren, manche eventuell sogar nur höchst selten, erhalten diese Besucher nie die aktuellen Beiträge angezeigt und sind der Meinung, man habe eben nichts veröffentlicht. Ich erfuhr auch erst durch Hinweise aus meiner Leserschaft und somit durch Zufall von dem Problem!

Diese Vermutung kann im ungünstigsten Falle dazu führen dass einige Leser fern bleiben, weil sich aus ihrer Sicht nichts oder nur sehr wenig im Blog tut. Wer also PXS-Mail im Einsatz hat, sollte dies im eigenen Interesse nicht ganz unbeobachtet lassen.

[update]Man soll den Tag nicht vor dem Abend loben. Beim Internet-Explorer bleibt das Problem trotzdem bestehen. PXS-Mail wurde deswegen komplett deaktiviert! Der beschriebene Fehler ist offensichtlich nicht abhängig vom verwendeten Theme. Ein Test von PXS-Mail in Verbindung mit dem Default-Theme von WordPress zeigte das gleiche Verhalten!

[update]Zusammen mit Frank Bültge konnte das Problem gelöst werden, so dass nach der folgenden Änderung sowohl Plugin als auch Browser-Cache wieder vernünftig arbeiten. Ab der WP-Version 2.5 sind in der Datei pxsmail.php die Zeilen 20 und 21 ersatzlos zu löschen [ @session_cache_limiter(‚private‘); @session_cache_expire(0); ]. Ein entsprechendes Update der php-Datei wird es sicherlich schnellstens bei Frank geben.