Migration von wp-discourse-embed zu WP Discourse – alte Beiträge werden nicht angezeigt

Seit fast fünf Jahren lief mein Blog mit @techAPJ’s wp-discourse-embed. Hier ist ein Beispiel für einen Beitrag
Soya Chunks Masala Dry Recipe | A Little Bit of Spice und den entsprechenden Forenbeitrag: Soya Chunks Masala Dry - blog - comments
Ich konnte @angus’s WP Discourse migrieren und einrichten:

Aber jetzt erscheinen die alten Forenbeiträge nicht mehr als Kommentare zu den Blogbeiträgen. Der obige Blogbeitrag ist ein Beispiel.
Ich vermute, dass eine Zuordnung erforderlich ist.
Wie kann ich das integrieren?
So sieht mein Log aus:

Und das neueste:

[2024-04-03 01:42:27] webhook_topic.ERROR: update_topic_content.webhook_verification_error [“message”,“Discourse Webhook Request Error: signatures did not match.”]

Rohprotokolle hier.

1 „Gefällt mir“

Hallo,

Betreff:

Dieser Fehler bedeutet, dass der Wert der Option Webhook Secret Key in WP-Discourse nicht mit dem Passwort übereinstimmt, das in Ihrem Discourse-Webhook definiert ist. Können Sie das überprüfen?

@simon wird mich korrigieren, wenn ich falsch liege, aber ja, ein WP-Post muss mit einem Discourse-Topic synchronisiert werden. Für bestehende Topics sollten Sie die Option haben, sich mit einem bestehenden Discourse-Topic zu verknüpfen:

.
Sobald die Synchronisierung erfolgt ist, sollten die Kommentare abgerufen werden.

Ich bin mir nicht sicher, ob es einen besseren Weg gibt; hoffentlich können einige bessere Einblicke geben.

4 „Gefällt mir“

Sie haben bei beiden Problemen Recht.

@Jane_Jojo, versuchen Sie, ein vorhandenes Discourse-Thema mit seinem entsprechenden WordPress-Beitrag zu verknüpfen, indem Sie die von @Arkshine gezeigte Methode verwenden. Beachten Sie, dass die Benutzeroberfläche leicht unterschiedlich ist, je nachdem, ob Sie den klassischen WordPress-Editor oder den neuen Block-Editor verwenden.

Wenn die Verknüpfung eines Discourse-Themas mit einem WordPress-Beitrag funktioniert, besteht der nächste Schritt darin, herauszufinden, wie Sie alle Ihre vorhandenen Themen und Beiträge verknüpfen können. Wie viele alte Beiträge haben Sie? Wenn es zu viele Beiträge sind, um sie manuell mit Discourse zu verknüpfen, gibt es möglicherweise eine Möglichkeit, den Prozess zu automatisieren.

2 „Gefällt mir“

Danke.

Das habe ich gemacht.

und ich bekomme einen 200er, wenn ich einen Ping mache. Das ist also klar.

Dann mache ich das:


Aber der Beitrag spiegelt es nicht wider

Fehlt mir noch etwas? Die Protokolle scheinen kein Update zu enthalten.

Update:
Wenn ich von Discourse Webhook pinge

bekomme ich das auf der Protokollseite

[2024-04-03 21:38:14] webhook_topic.ERROR: update_topic_content.response_body_error

Verwendet Ihr WordPress ein Cache-Plugin?

Möglicherweise müssen Sie diese Einstellung aktivieren:

Wenn das Debugging für Kommentare noch nicht aktiviert ist, könnte dies ebenfalls helfen:

image

Die Fehlermeldung, die Sie sehen, wird generiert, wenn Sie den Webhook “pingen”. Auf der WordPress-Seite erwartet der Code, dass ein post-Objekt im Webhook vorhanden ist, der von Discourse gesendet wird. Der Beitrag befindet sich nicht in der Nutzlast, wenn Sie nur auf die Schaltfläche “Ping” klicken. Versuchen Sie, einen Kommentar zu einem Discourse-Thema zu hinterlassen, das mit Discourse verknüpft ist, und prüfen Sie, ob dies immer noch einen Fehler verursacht.

Um Discourse-Kommentare auf Ihrer WordPress-Website anzuzeigen:

  • Stellen Sie sicher, dass Kommentare in WordPress für die Beiträge aktiviert sind, die Sie auf Discourse veröffentlichen.
  • Stellen Sie sicher, dass die Option “Discourse-Kommentare aktivieren” aktiviert ist:

Wenn Sie Kommentare auf Ihrer WordPress-Website bisher nicht aktiviert hatten, möchten Sie sie möglicherweise jetzt nicht für Beiträge aktivieren, die noch nicht mit Discourse verbunden sind. Um zu vermeiden, dass das WordPress-Kommentarformular für diese Beiträge angezeigt wird, können Sie Kommentare Website-weit aktivieren und dann die Einstellung “WordPress-Kommentarvorlage entfernen” auf der Seite “WP Discourse Commenting Options” auswählen:

Lassen Sie uns wissen, wenn Sie weiterhin Probleme haben.

1 „Gefällt mir“

Beides aktiviert. Kein Erfolg.


Seite aktualisiert und die Protokolle zeigen nichts an

Wenn ich die Seitenquelltext anzeigen aufrufe, sehe ich eine Reihe von Discourse-Referenzen im HTML. Es versucht also etwas…

Dies sind seit sehr langer Zeit die Einstellungen für meinen Kommentarbereich.

Stellen Sie sicher, dass die Kommentare für einen Beitrag, den Sie mit Discourse verknüpft haben, aktiviert sind. Manchmal wird die Option „Diskussion“ auf der Bearbeitungsseite nicht angezeigt. Möglicherweise müssen Sie sie aus dem Menü „Bildschirmoptionen“ auswählen, um sie zu sehen:

Ja, das war aktiviert :frowning:

Hmm, ich sehe auf der Seite nichts, was darauf hindeutet, dass die Kommentarvorlage geladen wird. Der Verweis auf discourse-embed-js in Ihrem Screenshot stammt nicht vom WP Discourse-Plugin. Ich glaube, er hängt mit dem Skript zusammen, das vom wp-discourse-embed-Plugin geladen wurde. Es verursacht tatsächlich einen Fehler auf Ihrer Website:

Failed to load resource: the server responded with a status of 404 () discourse-embed.js

Es gibt auch ein <div id="discourse-comments"></div> auf der Seite, das vom wp-discourse-embed-Plugin stammt, nicht vom WP Discourse-Plugin.

Ich würde die Einstellung “Load Comments With Ajax” von WP Discourse nicht aktivieren, bis Sie bestätigt haben, dass es ein Problem mit zwischengespeicherten Kommentaren auf der Website gibt. Selbst wenn dies der Fall wäre, sollte es in der Lage sein, die Kommentarvorlage anzuzeigen.

Sind Plugins auf Ihrer Website installiert, die sich auf Kommentare beziehen? Ich frage mich, ob ein Plugin oder das Theme der Website verhindert, dass die WordPress-Kommentarvorlage geladen wird. Das WP Discourse-Plugin ist darauf angewiesen, dass diese Vorlage geladen wird. Es gibt ein paar Workarounds dafür, aber sie sind alle ziemlich technisch.

Ich bin sicher, dass wir die Dinge in Ordnung bringen können :slight_smile:

1 „Gefällt mir“

Ich habe den Verlauf meines Theme-Codes durchgesehen und vor einiger Zeit festgestellt, dass ich den gesamten WP-Kommentarcode durch Discourse-Kommentare ersetzt hatte.

Ich vermute, dass der Legacy-Code benötigt wird, richtig?

Ich erinnere mich nur vage, aber ich glaube nicht, dass die bearbeitete Datei comments.php die Ursache des Problems ist. Was passieren sollte, ist, dass anstelle der Datei comments.php Ihres Themes der WP Discourse-Plugin seinen eigenen Kommentarbereich laden sollte, wenn diese Funktion von Ihrem Theme aufgerufen wird: comments_template().

Schauen Sie sich die Datei single.php Ihres Themes an oder welche Datei auch immer zur Anzeige eines Beitrags verwendet wird, den Sie mit Discourse verknüpft haben. Prüfen Sie, ob die Datei einen Aufruf zu comments_template() enthält. Er wird etwa so aussehen:

if ( comments_open() || get_comments_number() ) :
	comments_template();
endif;

Es ist der Aufruf zu coments_template(), der das Laden der WP Discourse-Kommentare auslösen sollte.

Ich könnte mich da irren. Ich kann es mir genauer ansehen, wenn das nicht hilft, die Dinge zu klären.

Ich konnte das Problem beheben. Kommentare waren auf Theme-Ebene deaktiviert. Die Aktivierung hat es behoben.

Vielen Dank für die detaillierten Antworten.

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.