Ich verwende WP-Rocket auf unserer Website, aber das Seiten-Caching (gleiches Problem, wenn nur Cloudflare APO verwendet wird) verhindert, dass die Kommentaranzahl aktualisiert wird. Ich habe dies überprüft, indem ich WP-Rocket (und/oder APO) deaktiviert habe, eine Antwort im entsprechenden Forenbeitrag gepostet habe und die Kommentaranzahl sich zwar aktualisiert, aber unregelmäßig. Das heißt, nicht sofort oder wie man es erwarten würde.
Dann habe ich einen Tipp gefunden, wie man einen Web Hook hinzufügt, und das ermöglichte die zuverlässige Aktualisierung der Kommentaranzahl.
Wenn jedoch das Seiten-Caching aktiviert ist (WP-Rocket oder APO) und dieser Web Hook verwendet wird, werden die Kommentaranzahlen nicht aktualisiert, wenn jemand eine neue Antwort im Forum postet.
Der Kern des Problems scheint zu sein, dass der Web Hook die WP-Umgebung nicht richtig auslöst, um die Aktualisierung der gecachten Seite zu veranlassen. Es scheint, als hätten wir einen Glitch im System.
Bearbeitung: Noch etwas. Ich habe WP-Rocket so eingerichtet, dass Seiten für mich, wenn ich in WordPress angemeldet bin, nicht gecacht werden. Nur für Besucher. Ich habe festgestellt, dass ich sehe, wie sich die Kommentaranzahlen aktualisieren, wenn ich in WordPress angemeldet bin, aber ich sehe sie nicht, wenn ich als Besucher im privaten Browsermodus unterwegs bin.
Ich habe keine Antworten, aber wie Sie wissen, versucht WP Rocket, eine statische Kopie zu erstellen und PHP- und Datenbankaufrufe zu eliminieren. Es ist kein Cache an sich, aber sicher – das ist eine Frage der Definition.
Aber WP Rocket hat heutzutage viele Probleme, und dies ist vielleicht eines der geringsten, wenn man an die WordPress-Website selbst denkt.
Hallo @Brandon007, danke für die Erklärung deines Problems. Soweit ich das verstehe:
Das WP Discourse Plugin aktualisiert die Kommentaranzahl korrekt.
Der WP Rocket Cache wird nicht geleert, wenn die Kommentaranzahl aktualisiert wird.
Ich habe den Titel deines Beitrags von „WP Discourse Plugin aktualisiert Kommentaranzahl nicht“ zu „WP Discourse Kommentar-Webhook löst keine WP Rocket Cache-Aktualisierung aus“ geändert.
Die grundlegende Antwort auf dein Problem ist, dass dies das erwartete Verhalten ist. Das WP Discourse Plugin hat keine spezifische Integration mit WP Rocket und wird in absehbarer Zeit auch keine hinzufügen.
Aber ich kann dir hier trotzdem helfen, indem ich eine Aktion hinzufüge, die ausgelöst wird, nachdem der Kommentar-Sync-Webhook-Callback die Topic-Metadaten (wo die Kommentaranzahl gespeichert ist) aktualisiert hat. Du könntest dann deinen eigenen Callback schreiben, um die gewünschte Cache-Leerung durchzuführen. Würde das für deine Situation funktionieren?
Ich werde wahrscheinlich beim Programmieren verloren sein, haha, aber wenn du es möglich machen kannst. Das bringt mich und andere Benutzer einen Schritt in die richtige Richtung. Es klingt so, als ob deine Modifikation es ermöglichen würde, benutzerdefinierten Code hinzuzufügen, um den Cache für jedes Caching-Plugin zu löschen. Das wäre noch besser, als sich auf ein Produkt zu konzentrieren. Ich habe mehrere Cache-Methoden auf einer Entwicklungsseite ausprobiert und sie hatten sowieso alle das gleiche Ergebnis.
Also mach weiter, mein guter Herr, und danke für die Antwort.
Hallo Angus. Ich bin mir nicht sicher, ob das etwas ist, das du noch untersuchst?
Etwas anderes, das ich hinzufügen wollte. Innerhalb von nativem WordPress und bei Verwendung jeglicher Seiten-Caching-Methode. Sobald ein Kommentar hinterlassen wird, wird der Seiten-Cache automatisch geleert. Gibt es eine Möglichkeit, wie WP Discourse dieses Verhalten nachahmen kann?
Hallo Brandon, ja, es wird eine Aktion dafür geben, die es Ihnen ermöglicht, den WP Rocket-Cache (oder jeden anderen Cache) in diesem Szenario in der nächsten Version zu leeren.
Ich stelle deine oder die Fähigkeiten von irgendjemandem nicht in Frage und ich weiß nichts, aber es kann nichts wie „oder irgendein Cache“ geben, denn meines Wissens benötigt WP Rocket andere Tools, um seinen Cache zu leeren als W3 Total Cache als WP Fastest Cache als jeder Reverse-Proxy wie Varnish oder Nginx.
Und wenn WP Rocket statische Teile einer Seite, alias Cache, aus dem Kommentarbereich erstellt, gibt es weitaus größere Probleme als das Leeren.
Das ist richtig. Das WP Discourse-Plugin stellt lediglich eine Aktion bereit, die es Websites, die unterschiedliche Caching-Lösungen verwenden, ermöglicht, den Cache zum geeigneten Zeitpunkt mit der für die verwendete Caching-Lösung geeigneten Methode zu leeren.
Angus, danke für die Nachverfolgung. Gibt es eine allgemeine Vorstellung vom Veröffentlichungsdatum?
Ist es außerdem möglich, dass WP-Discourse das Verhalten nativer WordPress-Kommentare nachahmt? Das bedeutet einfach, dass Seiten-Cache-Lösungen eine Option haben, sodass der Seiten-Cache gelöscht werden kann, wenn ein Benutzer einen neuen Kommentar auf dieser Seite hinterlässt. Das ist ideal.
Wie Sie wissen, können wir bis heute keine Seiten-Caches jeglicher Art verwenden, wenn wir möchten, dass die Kommentaranzahl steigt. Das ist ein großer Nachteil für WordPress-Benutzer, die sich um Geschwindigkeitsoptimierungen kümmern.
Hoffentlich nicht, denn ein solches Verhalten wäre eine schreckliche Ressourcenverschwendung und tatsächlich ein Dealbreaker.
Ich bin immer noch etwas verwirrt, denn nativ hat WordPress kein Caching und WP Rocket leert definitiv nicht seinen gesamten sogenannten Cache nach einem Kommentar.
Ich habe vergessen zu erwähnen, dass Ihr Update das Problem behoben hat! Danke.
Für alle anderen, die auf dieses Problem stoßen, während sie WP-Rocket mit WP-Discourse ausführen. Der folgende Code (fügen Sie ihn in Ihre Wordpress-Funktionsdatei ein) stellt sicher, dass der Cache für diesen Beitrag geleert wird, sobald ein Kommentar zu dem entsprechenden Discourse-Beitrag abgegeben wird.
if( function_exists( 'rocket_clean_post' ) ){
add_action( 'wpdc_after_webhook_post_update', 'bulk_rocket_clean_post’);
}
function bulk_rocket_clean_post(array $ids){
foreach ($ids as $id) {
rocket_clean_post($id);
}
}