WordPress Kommentare werden nicht angezeigt: So PHP Cache für Kommentare richtig einstellen!

Letztens habe ich meinen Kommentarbereich in einen Cache gepackt, der sich im Laufe der Woche als nicht wirklich nutzerfreundlich herausstellte, da ungeachtet dessen, ob ein neuer Kommentar geschrieben wurde, nur nach bestimmten Zeiten ein neues Cachefile geschrieben wurde. Das führte dazu, dass einige Kommentatoren ihre Kommentare nicht gleich online sahen, sondern erst nach ein paar Minuten, Stunden oder gar Tage…

Dieter hat mich darauf hingewiesen, dass ihm dabei die Lust am Kommentieren vergeht, also habe ich gestern Abend und heute Morgen noch etwas rumgefeilt und ausprobiert und nun kam ein überarbeiteter PHP Cache meiner Kommentare dabei heraus.

Die neuen Kommentare in meinem PHP Cache zu berücksichtigen ist gar nicht so einfach, wie ich mir das erst dachte.

Anfangs wollte ich einfach mit meiner in der comments.php schon vorhandenen Zählfunktion der Kommentare arbeiten und die aktuelle Zahl mit der Zahl aus dem Cache vergleichen. Nur leider komme ich vor dem Cache Start nicht an die Zahl aus dem Cache heran. Danach bringt sie mir nur leider auch nix mehr, denn da ist schon alles passiert.

Wie kann ich die neuen Kommentare im PHP Cache berücksichtigen?

Also muss ich mit dem letzten Kommentar selbst arbeiten. Von WordPress selbst gibt es leider keine Funktion oder ähnliches, um explizit nur den letzten Kommentar des jeweiligen Artikels anzusprechen. Also muss ich mir den aus der Datenbank holen.

Bevor ich das Cache Script starte hole ich nun mit einer Datenbankabfrage das Datum des letzten Kommentars dieses Artikels mittels dieses PHP Codes (Achtung für alle, die etwas ähnliches nachbauen möchten, das funktioniert nur in der comments.php):

In der Variable $l_c_date steht nun das Datum des letzten Kommentars dieses Artikels.

Nun Starte ich das Cache Script, indem ich den Namen und Ort des Cachfiles zusammenbaue sowie die Cachezeit auf 4 Wochen setze (der bzw. die zu verwendenden Ordner müssen natürlich vorher auf dem Server entsprechend eingerichtet und mit Schreibrechten versehen werden):

Als nächstes kommt eine Abfrage, ob das Cachefile bereits existiert und wenn ja, dann soll er das Datum der Erstellung des Cachefiles in die Variable $zp_cachefile schreiben (die brauche ich nachher, um sie mit dem Datum des letzten Kommentars in Verhältnis zu setzen):

Geniale Themes: MyThemeShop
MyThemeShop
Vorteile:
MyThemeShop Vorteile
  • Extrem schöne WordPress Themes
  • Bereits SEO-optimiert und flexibel einsetzbar
  • Einzelkauf oder Premium Abo möglich

Berücksichtigen, dass das Cachefile bereits exisieteren könnte

Der nächste Schritt ist zu definieren, dass wenn das Cachefile bereits existiert – und – die Cachezeit nicht abgelaufen ist – und – kein neuer Kommentar vorhanden ist (das Datum des letzten Kommentars kleiner ist als das Datum des Cachefiles), dann soll er den Inhalt aus dem Cachefile holen. Wenn das nicht der Fall ist, soll er ein neues Cachefile schreiben:

Nun kommt mein gesamter Kommentarbereich, also die Auflistung der Trackbacks, Kommentare usw. Direkt danach, also noch vor der Eingabemaske um einen neuen Kommentar zu schreiben, kommt der zweite Teil des Cachefiles, der meinen Inhalt zwischen diesen beiden Teilen, also die Auflistung der Kommentare etc. in das Cachefile schreibt und die Cache Funktion beendet:

Um das Ganze noch ein paar Tage zu beobachten habe ich vorübergehend noch ein paar Datumsausgaben vor dem Kommentarbereich. Also bitte nicht von diesen Texten stören lassen, die sind einzig und alleine nur Überprüfen zum weiteren Ausprobieren für mich.

Schließlich möchte ich noch hinzufügen, dass das keine Codeschnipsel sind, die man einfach so kopflos in seine comments.php integrieren kann. Wer diese PHP Cache Codes verwenden möchte, sollte schon wissen was er tut und verstehen was das Ganze wo macht und wohin er es genau zu implementieren hat. Sonst gibt es nur Fehler ohne Ende. Weiter funktioniert auch die für den Cache benötigte PHP Funktion fopen() nicht auf jedem Server.

Bewerte diesen Artikel
1 Stern2 Sterne3 Sterne4 Sterne5 Sterne


Bis jetzt keine Bewertung
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

How-to-WordPress.de unterstützt dofollow und ist somit nofollow frei.