Discourse verlinkt die Kommentare nicht automatisch unter den Artikeln

WP Rocket sollte in Ordnung sein. Möglicherweise müssen Sie einige Anpassungen vornehmen, um den Cache auf WordPress-Seiten zu leeren, auf denen Discourse-Kommentare angezeigt werden. Hier ist ein guter Vorschlag: WP Discourse comment webhook does not trigger a WP Rocket Cache refresh - #13 by Brandon007. Die Option “ajax load” von WP Discourse ist ebenfalls eine praktikable Lösung.

Dies scheint das eigentliche Problem zu sein:
[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403}

Das bedeutet, dass Discourse eine 403-Antwort (verboten) zurückgibt, wenn das WP Discourse-Plugin versucht, Kommentare abzurufen. (Der Fehler wird von hier protokolliert: wp-discourse/lib/discourse-comment.php at main · discourse/wp-discourse · GitHub)

Es ist eine Vermutung, aber dieses Plugin legt nahe, dass Ihre WordPress-Site hinter einem Proxy liegt:

Es ist möglich, dass dies den 403-Fehler bei Discourse auslöst. Sind die Anforderungsheader möglicherweise nicht richtig konfiguriert? Ich weiß nicht viel darüber. Aber Sie können möglicherweise bestätigen, ob es ein Problem ist, indem Sie einen Beitrag von WordPress veröffentlichen, während die Error Logs-Seite Ihrer Discourse-Site geöffnet ist.

Klicken Sie auf diesen Link, um zur Seite mit den Fehlerprotokollen zu gelangen:

Ich denke, eine 403-Antwort wird einen Eintrag in den Protokollen auslösen. Wenn dies der Fall ist, teilen Sie die (geschwärzte) Fehlermeldung hier mit.

Vielen Dank! Ich werde es versuchen, sobald ich dazu komme.

Ich habe auch herausgefunden, dass das vorherige Caching mit den Plugins GridPane Redis Object Cache und Nginx Helper zu funktionieren schien. Vielleicht war es also sogar unnötig von mir, WP Rocket zu installieren. Aber das Deaktivieren eines davon hat auch nicht geholfen.

Außerdem funktioniert die Kommentarzählung im Moment nicht. Selbst nach dem Leeren des Caches bleibt die Anzahl des neuesten Artikels bei 16 (Discourse hat derzeit 18 Kommentare).

Wie bereits erwähnt: Die Ajax-Option ist aktiviert.

Das mit dem Log mache ich später oder morgen.

Ja, jedes der beliebten Caching-Plugins sollte funktionieren. Installieren Sie einfach eines und versuchen Sie, ein Gefühl dafür zu bekommen, was es tut. Zum Debuggen von Problemen kann es nützlich sein, das Caching vorübergehend zu deaktivieren. Auf diese Weise können Sie bestätigen, dass es sich nicht um ein Cache-bezogenes Problem handelt.

Die Kommentaranzahl wird von der Funktion gesetzt, die diesen Fehler zurückgibt:

[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403}

Wenn Sie diesen Fehler immer noch erhalten, werden die Kommentaranzahlen nicht aktualisiert.

Die Installation des Plugins “Proxy Real IP - 1.1” auf der Website deutet darauf hin, dass deren Serverkonfiguration ziemlich komplex ist. Vielleicht sollten Sie sich mit der Person, die die Website eingerichtet hat, in Verbindung setzen, um Details zu erfahren. Sie könnten auch erwägen, die Website zu einem Hosting-Service zu verlagern, der sich um solche Dinge kümmert.

Ich bin mir heute weniger sicher als gestern, dass das Problem in den Discourse-Fehlerprotokollen auftauchen wird, aber es ist trotzdem einen Versuch wert.

Es ist installiert, aber nicht auf unserer deutschen Seite aktiviert, nur auf unserer englischen. Ich habe vor einigen Wochen denjenigen, der die Seite vor mir hatte, nach diesem Plugin gefragt und nur vergessen, es auch auf der englischen Seite zu deaktivieren. Discourse ist nur mit unserer deutschen Seite verbunden, wo es nicht aktiviert ist. Ich schätze also, dass es im Moment keine Funktion hat.

Ich wünschte wirklich, ich hätte mehr Ahnung von all diesen Dingen, da ich auch feststelle, dass WordPress von Zeit zu Zeit sehr langsam ist und ich all diese Dinge nicht wirklich verstehe, nur indem ich im Internet herumschnühere.

Nur zur Klarstellung: Ich spreche hauptsächlich von miasanrot.de / miasanrot.com ist nicht mit Discourse verbunden. Diese Seite funktioniert also mit dem normalen Kommentarsystem von Wordpress.

Du hast ein gutes Gefühl. Ich habe einen Artikel mit geöffnetem Fehlerprotokoll veröffentlicht und er taucht nicht im Fehlerprotokoll von Discourse auf.

Es ist jetzt noch schlimmer: Der neue Artikel wird für Personen, die nicht bei WP angemeldet sind, nicht angezeigt. Die Seite ist also wie eingefroren.

Update 2: Die korrekte Anzahl von Kommentaren UND der neue Artikel werden jetzt angezeigt, aber ich weiß nicht wirklich, was sich geändert hat. Eine blinde Vermutung: Ich habe die beiden Caching-Plugins deaktiviert, die ich zuvor erwähnt habe, und nur WP Rocket aktiviert gelassen. Ich habe versucht, die beiden Plugins wieder zu aktivieren, und es hat sich nichts geändert. Dann habe ich den Artikel im Editor aktualisiert, und es hat funktioniert. Eines der beiden Plugins (nginx helper) sagt also: “Bereinigt den fastcgi/proxy-Cache von nginx oder den redis-Cache, wenn ein Beitrag bearbeitet/veröffentlicht wird. Tut auch noch ein paar andere Dinge.” – Ich vermute also, dass dieser Prozess dazu beigetragen hat, die Seite so anzuzeigen, wie sie sollte.

Ich denke, ich kann WP Rocket dann deaktivieren, aber es gibt immer noch etwas, das mit dem Caching nicht stimmt, und ich habe das Gefühl, dass es mit dem Discourse-Problem zusammenhängen könnte.

Ihr Hauptproblem ist definitiv etwas anderes, aber warum verwenden Sie Nginx-Helper? WP Rocket erstellt statische Kopien und Sie benötigen keinen weiteren Cache für FastCGI und Redis (sicher, es gibt Situationen, in denen PHP-Aufrufe auch dann zwischengespeichert werden müssen, wenn WP Rocket vorhanden ist, aber diese Websites verwenden normalerweise nicht WP Rocket, sondern viel professionellere Tools).

Caching bedeutet jedoch, dass nichts Dynamisches passiert.

Er war bereits installiert, als ich diesen Blog übernommen habe. Ich weiß ehrlich gesagt nicht, warum. Ich weiß nur, sobald ich ihn deaktiviere, wird die Seite nicht aktualisiert. Ja, irgendwo in dieser Richtung könnte das Problem liegen.

Bearbeiten: Habe den Test gerade gemacht. Das Plugin deaktiviert, keine Möglichkeit, die Seite zu aktualisieren. Das Plugin aktiviert und einen Artikel aktualisiert, und die richtige Anzahl von Kommentaren wird angezeigt.

Eine wilde Vermutung ist, dass Sie dann einen Blick darauf werfen sollten, was wp-config.php zu tun versucht. Die allerersten Zeilen könnten einen Hinweis geben.

Aber nochmals. Sie sollten jedes Plugin deaktivieren und ein Basis-Theme wie 2020 verwenden und dann versuchen, ob Discourse wie erwartet funktioniert. Wenn ja, ist eines der Plugins oder Themes ein Problem.

Sichern Sie zuerst Ihre Datenbank. Das Deaktivieren von Plugins und Themes kann Ihnen eine unerwünschte Überraschung bereiten. WP-CLI ist es wert, gegoogelt zu werden, falls Sie es noch nicht haben.

Aber wenn es immer noch gegen Sie kämpft… hoffentlich können einige Gurus hier helfen.

Auf jeden Fall sollten Sie überlegen, welche Plugins Sie verwenden und ob Sie diese wirklich benötigen.

Ich habe vor, dies zu tun, sobald ich die Zeit dazu habe und der Traffic nicht so groß ist. Im Moment ist es kompliziert, einen Tag zu finden, an dem wir einen solchen Test durchführen können. Aber ich werde es tun.

Eine weitere Beobachtung:
Wenn ich einen Artikel direkt veröffentliche, ohne ihn vorher als privat zu veröffentlichen (was ich normalerweise tue, wenn ich nicht direkt veröffentlichen möchte), verbindet Discourse das Thema korrekt mit dem Artikel. (Die Anzahl der angezeigten Kommentare ist immer noch falsch, aber die Kommentare werden unter dem Artikel angezeigt)

2 „Gefällt mir“

Ich habe dasselbe Problem. Kommentare werden nicht mehr angezeigt, und ich sehe diese sync_comments-Fehler. Ich bin mir nicht sicher, wann genau es angefangen hat, aber ich aktualisiere WordPress und Plugins gelegentlich.

Hallo @steelmaiden, bitte erstelle ein neues Thema in Support > WordPress und

  1. Beschreibe das Verhalten, das du siehst.
  2. Beschreibe das erwartete Verhalten.
  3. Teile alle Fehlermeldungen, die du erhalten hast, zusammen mit der “meta”-Datei aus dem Log-Viewer oder den heruntergeladenen Logs.

Danke.