Discourse verlinkt die Kommentare nicht automatisch unter den Artikeln

Hallo!
Ich habe das Problem, dass Discourse die Kommentare unter meinen Artikeln nicht mehr anzeigt. Wenn mein Artikel veröffentlicht wird, erscheint er im Discourse-Forum unseres Blogs, aber ich muss ihn danach manuell im WordPress-Artikel verlinken. Dann erscheinen die Kommentare. Aber dieser Schritt war vorher nicht nötig.

Ich habe bereits hier darüber geschrieben: 422 Unprocessable Content response when using ActivityPub with WP Discourse - #5 by Miasanrot

Leider war die Lösung dort nicht meine Lösung und sie scheint sehr individuell zu sein. Daher habe ich einen neuen Thread eröffnet. Dies sind die drei Dinge, die ich veröffentlichen sollte:

  1. Protokolle von WP Discourse, einschließlich der Metadatei.
  2. Protokolle von Discourse, insbesondere das Fehlerprotokoll.
  3. Eine Liste der Plugins, die Sie in Discourse verwenden.

Logdateien von WP Discourse:
Diese hier ist von heute:

[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403} 
[2024-03-14 07:14:26] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13651,"http_code":403} 
[2024-03-14 08:22:19] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13815,"http_code":403} 
[2024-03-14 08:48:21] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13638,"http_code":403} 
[2024-03-14 09:37:36] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13759,"http_code":403} 
[2024-03-14 10:55:34] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403} 
[2024-03-14 11:25:23] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403} 
[2024-03-14 12:36:28] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13944,"http_code":403} 
[2024-03-14 16:03:01] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13977,"http_code":403}

**Hier ist, was in der Metadatei enthalten ist:**

### Server ###

WordPress - 6.4.3
PHP - 8.0.26
MySQL - 8.0.30

### Aktive Plugins ###

Admin Columns for ACF Fields - 0.3.1
Akismet Anti-spam: Spam Protection - 5.3.1
Borlabs Cookie - Cookie Opt-in - 2.2.67
Contact Form 7 - 5.8.6
Genesis Blocks - 3.1.1
LightStart - Maintenance Mode, Coming Soon and Landing Page Builder - 2.6.9
Podigee Wordpress Quick Publish – now with Gutenberg support! - 1.3.5
Proxy Real IP - 1.1
Shariff Wrapper - 4.6.9
TablePress - 2.2.5
TablePress Extension: Responsive Tables - 1.1
Theme Test Drive - 2.9.1
User Role Editor - 4.64.1
WP-Discourse - 2.5.1
WP Import Export - 3.9.26

### WP Discourse Einstellungen (Geheimnisse ausgeschlossen) ###

display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 0
full-post-content - 0
custom-excerpt-length - 50
add-featured-link - 0
auto-publish - 1
force-publish - 0
force-publish-max-age - 5
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post
exclude_tags - 
hide-discourse-name-field - 0
discourse-username-editable - 1
direct-db-publication-flags - 0
verbose-publication-logs - 0
enable-discourse-comments - 1
comment-type - display-comments
ajax-load - 1
load-comment-css - 1
discourse-new-tab - 1
hide-wordpress-comments - 1
show-existing-comments - 1
max-comments - 50
min-replies - 1
min-score - 0
min-trust-level - 0
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format - 
cache-html - 1
clear-cached-comment-html - 0
verbose-comment-logs - 0
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 0
sso-client-login-form-change - 0
sso-client-sync-by-email - 0
sso-client-sync-logout - 0
logs-enabled - 1

Ich weiß nicht, wie ich etwas aus dem Discourse-Fehlerprotokoll herunterladen oder kopieren kann, aber dies ist ein Screenshot von heute. 16:06 Uhr ist fast die Zeit, zu der unser letzter Artikel veröffentlicht wurde (16:11 Uhr).
![Bildschirmfoto 2024-03-14 um 17.34.05|690x247](upload://wu9pBHBGw6RdklTgJtK9XJCIOHx.png)

**Liste der Plugins in Discourse:**

Chat (deaktiviert), Data Explorer, Footnote, Spoiler Alert

Wenn ich etwas hinzufügen soll, lassen Sie es mich wissen. Vielen Dank im Voraus für Ihre Hilfe.

Hey @Miasanrot, vielen Dank für all diese Details, das weiß ich sehr zu schätzen!

Das Erste, was hier untersucht werden muss, ist der 403-Fehler bei der Kommentar-Synchronisierung in den Protokollen, der mit Ihrem Problem, keine Kommentare zu sehen, zusammenzuhängen scheint. Ein 403-Fehler bedeutet, dass WP Discourse nicht auf Discourse zugreifen kann, wahrscheinlich aufgrund eines Autorisierungsfehlers.

  1. Sehen Sie im Tab „Verbindung“ im WP Discourse Admin-Panel die Meldung „Sie sind mit Discourse verbunden!“?

  2. Da Sie das WordPress-Plugin „Proxy Real IP - 1.1“ verwenden, bin ich neugierig auf die Netzwerkumgebung Ihres WordPress und Discourse. Welche Rolle spielt dieses Plugin?

Vielen Dank für die schnelle Antwort! Wird ebenfalls geschätzt.

Ja, es zeigt, dass ich verbunden bin. Und es scheint auch etwas zu erstellen, wenn ich einen Artikel veröffentliche. In WP sehe ich manchmal den Fehler, dass der Artikel bereits eingebettet ist (ich denke, das gleiche Problem, das der Benutzer im von mir verlinkten Thread hatte). Daher denke ich auch, dass eine Verbindung bestehen muss (und sie wird im Admin-Panel angezeigt, wie ich geschrieben habe).

Der zweite Punkt ist etwas schwieriger. Ich habe diesen Blog im Januar übernommen und daher nicht alles selbst eingerichtet. Aber ich habe den vorherigen Administrator nach diesem Plugin gefragt und werde mich bei Ihnen melden, sobald ich eine Antwort habe.

Bearbeiten: Das Plugin kann deaktiviert werden, sagte er. Könnte ich das also im nächsten Schritt versuchen?

Leider bisher keine Lösung. Das Deaktivieren des oben genannten Plugins hat nicht geholfen.

Entschuldige Justin, ich habe das aus den Augen verloren. Das Problem liegt höchstwahrscheinlich an deiner Wordpress-Einrichtung.

(Hervorhebung von mir)

Wann haben sie aufgehört zu funktionieren? Kannst du etwas identifizieren, das sich in Wordpress geändert hat, als die Kommentare aufhörten zu funktionieren? Hast du

  1. Wordpress aktualisiert?
  2. Das Plugin aktualisiert?
  3. Dein Theme geändert (oder aktualisiert)?

Hallo Justin, ich melde mich hier nur kurz. Wie kommst du mit diesem Problem voran?

Vielen Dank für Ihre Rückmeldung!

Schwer zu sagen, aber ich denke, dass das Update von WordPress (und PHP, beides am selben Tag) der Punkt sein könnte, an dem alles passiert ist. Zumindest habe ich das Problem danach zum ersten Mal gesehen. Ich verwende die zweitneueste WordPress-Version (ich glaube, in den letzten Tagen wurde 6.5 veröffentlicht, noch nicht installiert) und PHP 7.4, wenn ich mich richtig erinnere.

Das Discourse-Plugin läuft auf Version 2.5.1.

Wissen Sie zufällig, von welcher Version von WordPress Sie ein Upgrade durchgeführt haben? Wie lange lag zwischen den Upgrades? Haben Sie gleichzeitig Ihr Theme aktualisiert? Ist Ihr Theme ein „Block-Theme“?

Ich hoffe, ich kann es ohne Missverständnisse oder falsche Informationen beantworten. Ich habe diesen Blog im Januar übernommen und die WP war eine ziemlich alte Version. Ich schätze 5.x, ich kann Ihnen die genaue Nummer nicht sagen. Es war definitiv eine lange Zeit zwischen den beiden Updates. Unser Thema ist immer noch dasselbe, es ist ein individuelles Thema, das für unsere Seite entworfen und codiert wurde. Ich wusste, dass dies Probleme verursachen könnte, wenn ich die Seite aktualisiere, besonders da ich keine Programmierkenntnisse habe, aber es schien in Ordnung zu sein, bis ich diese Diskurs-Sache bemerkte.

Entschuldigung, wenn ich Ihnen keine detaillierteren Informationen dazu geben kann, ich gebe mein Bestes :smiley:
Vielen Dank nochmals für Ihre Geduld und Hilfe.

Ich verstehe. Das ist ein erhebliches Upgrade (d. h. von WordPress 5.x auf 6.x). Wäre es möglich, dies mit einem Standard-WordPress-Theme (jedem Standard-WordPress-Theme) zu testen und zu sehen, ob Sie das gleiche Problem haben? Ich weiß, das ist ein wenig umständlich, aber das ist hier der wahrscheinlichste Schuldige (d. h. Ihr Theme). Möglicherweise müssen Sie zu einem Kommentare-Block wechseln

Das sollte möglich sein. Ich werde später am Tag einen Artikel veröffentlichen und könnte kurz vorher zu einem WP-Theme wechseln und sehen, ob es funktioniert.

Ach ja, nur eine Ergänzung an @angus: Was genau bedeutet Block-Theme? Ich habe den Block-Editor in WP für Dinge wie Seiten und Artikel, aber wenn Block-Theme bedeutet, dass ich einfach Blöcke hinzufügen kann, um die Seite nach Belieben zu gestalten, dann ist es kein Block-Theme. Nur zur Klarstellung.

1 „Gefällt mir“

Ich habe also zum Wordpress-Theme Twenty Twenty-Three gewechselt und dann meinen Artikel veröffentlicht. Wie immer wurde ein Thread in meinem Diskurs erstellt, aber wie zuvor war er nicht mit dem Kommentarbereich des Blogs verbunden und ich musste das manuell erledigen.

Ich verstehe. Etwas auf Ihrer Website hindert das Plugin daran, ordnungsgemäß zu funktionieren. Wenn es nicht das Theme ist, sind die nächsten Anlaufstellen die anderen Plugins, die Sie installiert haben.

Ohne mehr Einblick in Ihre Website zu haben, kann ich Ihnen nur raten, sie einzeln zu deaktivieren und zu sehen, ob sich das Verhalten ändert. Es ist möglich, dass eines davon nicht mit der aktuellen Version von WordPress und/oder PHP 8.x kompatibel ist (das WP Discourse-Plugin ist mit beiden).

Auch das ist vielleicht nicht das, was Sie hören wollten, aber bei einem pluggable System wie WordPress sind diese Dinge (d. h. Plugin-Konflikte) mögliche Fehlerquellen. An diesem Punkt lohnt es sich, zu versuchen, diese Quelle zu eliminieren.

1 „Gefällt mir“

Ist es möglich, dass das Caching in Kombination mit dem Theme damit zu tun hat? Ich habe keine Ahnung von all diesen Dingen, aber manchmal werden kleine Dinge nicht auf der Seite angezeigt und nach dem Löschen des Caches funktioniert es wieder. Zum Beispiel: Gestern habe ich einen Artikel manuell verlinkt und die Kommentare wurden immer noch nicht auf der Seite angezeigt. Das Löschen des Caches hat geholfen.

Heute habe ich einen Artikel veröffentlicht und er wurde automatisch mit Discourse verlinkt, wie es sein sollte. Aber die Kommentare wurden nicht angezeigt. Also habe ich wieder den Cache gelöscht und dann waren sie da. Es ist für mich nicht einfach zu verstehen, aber irgendetwas stimmt da nicht.

Ja, Caching könnte eine Rolle bei Ihrem Problem spielen. Versuchen Sie, die Einstellung „Kommentare mit Ajax laden“ im Tab „Kommentare“ der WP Discourse-Einstellungen zu verwenden.

Welche Caching-Lösung verwenden Sie?

Die Option wurde aktiviert.

Ich verwende WP Rocket für das Caching, habe es aber installiert, nachdem ich einige Probleme bemerkt hatte. Diese Probleme schienen behoben zu sein. Aber ich kann Ihnen nicht wirklich genau sagen, wie das Caching vorher funktionierte. Ich weiß, dass es Caching gab, aber ich kenne die konkrete Lösung nicht. Als ich den Blog übernahm, bemerkte ich ein langsames Laden von Bildern. Nach der Verwendung von WP Rocket scheint es jetzt ein bis zwei Monate besser zu sein. (Das Kommentarproblem bestand bereits, bevor ich es installierte)

In seltenen Fällen haben wir jedoch das Problem, dass etwas auf der Seite falsch angezeigt wird. Letzte Woche fehlten die Kommentare, nachdem sie manuell mit Discourse verbunden wurden. Also habe ich den Cache mit WP Rocket geleert und es funktionierte wieder.

Es sieht so aus, als hätte ich das gleiche oder ein ähnliches Problem mit 422-Fehlern. Habe bereits mit @angus gesprochen, dass ich eine Testumgebung (WP und Discourse) zum Testen einrichten werde, hoffentlich dieses Wochenende…

2 „Gefällt mir“

WP Rocket kann echt Kopfschmerzen bereiten. Es generiert statische Kopien Ihrer Inhalte, versucht aber, Teile, die dynamisch sein sollten oder nur sehr kurze Zeit statisch sein sollten, unberührt zu lassen. Wenn Sie Glück genug haben, eine Regel zu finden, die das Caching für Kommentare vertrauenswürdig deaktiviert, funktioniert es – aber Sie verlieren die Vorteile, die Sie hatten.

Was das Caching angeht, ist WordPress… nicht gerade ein Albtraum, aber nah dran. Ich habe WP Rocket aufgegeben, weil es zu viel Überwachung und Zeit erforderte und am besten mit ziemlich kurzen TTLs funktioniert. Ich habe bessere Ergebnisse mit anderen Tools erzielt (und dann sollte man wirklich realistisch sein: Gibt es irgendwelche soliden Gründe, eine Sekunde totzuschlagen, wenn es meine Arbeitszeit mehrere Stunden und fast jede Woche kostet; das Deaktivieren unnötiger Plugins und die Wahl des richtigen Themes ist eine bessere Option).

Die meisten Websites benötigen eigentlich keine Kommentare, da sie nur selten Kommentare erhalten und dann Discourse als Kommentarbereich andere Zwecke erfüllt. Aber natürlich kommt es darauf an.

Für mich wirkt die Verbindung zu Discourse wie eine Werbung. Aber die meisten meiner Besucher nutzen Handys und scrollen fast nie weit genug nach unten – ein völlig gleiches Fragezeichen wie bei Seitenleisten.

1 „Gefällt mir“

Und welche Tools? Nochmals: Ich bin nicht sehr vertraut mit all diesen technischen Dingen, deshalb bin ich hier und versuche zu sehen, ob es Hilfe für das Problem gibt. Das Problem bestand, bevor ich WP Rocket installiert habe, und es hat einige andere Probleme gelöst, aber wenn dieses Tool irgendwie problematisch ist, bin ich offen für andere Lösungen.

Wir haben bis zu 100 oder 200 Kommentare unter unseren Artikeln (genauer gesagt in Discourse), daher ist es fair zu sagen, dass wir möchten, dass sie integriert werden, auch wenn ein Benutzer, der nur den Artikel lesen möchte, nicht dorthin scrollt.

Außerhalb des Rahmens dieses Forums, da es um die Optimierung von WordPress geht. Versuchen Sie es auf Facebook, etwas wie die Beschleunigung von WordPress.

Aber Sie könnten an Plugins wie Asset CleanUp, EWWW Image Optimizer oder sogar Redis interessiert sein, wenn Sie viele gleichzeitige Benutzer haben. Sie sollten zumindest Tools von Nginx verwenden, um so viel Bot-Traffic wie möglich zu unterbinden. Aber keines davon hilft zu viel, wenn die eigentlichen Engpässe das Theme und unzählige verschiedene Plugins sind. Und die schlechte Nachricht ist, dass Sie die Datenbank selbst immer wieder bereinigen müssen.

Aber wenn WP Rocket hilft, ist das schön. Aber verwenden Sie keine zu langen Cache-Zeiten. Und Sie müssen Discourse von der Cache-Liste ausschließen.