Ich habe ein Problem mit dem Discourse WordPress-Plugin, wenn ich versuche, einen WordPress-Beitrag in Discourse zu veröffentlichen.
Problembeschreibung:
Wenn ich einen neuen Beitrag auf meiner WordPress-Website erstelle und unter dem Reiter “Discourse” die Option “Nach Discourse veröffentlichen” aktiviere, bevor ich veröffentliche, wird der Beitrag erfolgreich in WordPress veröffentlicht. Das Discourse-Thema wird jedoch zu diesem Zeitpunkt nicht erstellt.
Wenn ich später denselben Beitrag bearbeite und erneut zum Reiter “Discourse” gehe, dann auf “Neues Thema” klicke und in Discourse veröffentliche, wird der Beitrag erstellt auf der Discourse-Website. Dieses Discourse-Thema ist jedoch nicht mit dem ursprünglichen WordPress-Beitrag verknüpft. Es wird keine Permalink-Verknüpfung oder Metadaten zurück in den Beitrag gespeichert.
Debug-Ergebnisse:
Während des Debuggings habe ich festgestellt, dass der Aufruf an: /wp-json/wp-discourse/v1/publish-topic
Wie Sie sehen können, ist das Feld “permalink” leer. Dies scheint der Hauptgrund dafür zu sein, dass das Discourse-Thema erstellt wird, aber nicht mit dem WordPress-Beitrag verknüpft wird (d. h. der Permalink wird nicht im Postmeta gespeichert, sodass die Verknüpfung zwischen WP und Discourse unterbrochen ist).
Könnten Sie bitte untersuchen, warum der Permalink in der API-Antwort leer zurückgegeben wird? Liegt eine Fehlkonfiguration des Plugins oder ein Fehler im Veröffentlichungsworkflow vor?
Lassen Sie mich wissen, wenn Sie Protokolle oder weitere Informationen benötigen. Vielen Dank für Ihre Hilfe!
Hallo @techops, könnten Sie bitte relevante Protokolle von WP Discourse > Protokolle in WordPress teilen? Bitte teilen Sie auch die Metadatei aus dieser Ansicht, wenn möglich.
Danke @techops, es gibt ein paar Dinge, die ich tun möchte.
Bitte deaktivieren Sie diese Einstellung in den Veröffentlichungseinstellungen
E-Mail-Benachrichtigung bei Veröffentlichung fehlgeschlagen senden
Bitte stellen Sie sicher, dass diese Einstellung in den Veröffentlichungseinstellungen aktiviert ist
Ausführliche Veröffentlichungsprotokolle
Sie haben eine Reihe von Beitragstypen für die Veröffentlichung eingerichtet
Beitrag, Ereignis, Gruppen, Sammlungen, Podcast
Mit welchem Beitragstyp tritt dieses Problem auf? Wenn es sich nicht um Beitrag handelt, könnten Sie dann etwas mehr darüber erklären, wie dieser Beitragstyp eingerichtet ist?
Nachdem ich die Einstellungen aktualisiert hatte, habe ich einen neuen Beitrag für Discourse erstellt und veröffentlicht. Hier sind die generierten Protokolle:
[2025-04-22 15:58:12] publish.INFO: create_post.post_success {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068}
[2025-04-22 15:58:12] publish.INFO: create_post.body_valid {"wp_title":"test post 4","wp_author_id":"221","wp_post_id":15068}
[2025-04-22 15:58:12] publish.INFO: create_post.after_publish {"post_id":15068,"remote_post_type":"create_post","discourse_post_id":"","discourse_topic_id":"6910","discourse_permalink":""}
Lassen Sie mich wissen, wenn Sie weitere Informationen oder Details benötigen.
Vielen Dank fürs Teilen. Diese Protokolle sehen für mich normal aus. Ich sehe, dass nach der Veröffentlichung eines Wordpress-Beitrags ein Discourse-Thema erstellt wird. Könnten Sie genau bestätigen, was genau das Problem ist? Bitte beschreiben Sie es in diesen Begriffen:
Ich verfasse einen Beitrag in Wordpress.
Nach der Veröffentlichung erwarte ich zu sehen…
Versuchen Sie, zu diesem Zeitpunkt keine technischen Annahmen zu treffen. Danke!
Hallo Angus,
Ich habe einen Beitrag in WordPress erstellt.
Nach der Veröffentlichung des Beitrags erwarte ich folgendes Verhalten:
Wenn die Checkbox unter ‘Veröffentlichen auf Discourse’ aktiviert ist, sollte korrekt sein, dass ein Beitrag in Discourse erstellt wird und dieser mit dem WordPress-Beitrag verlinkt ist.
Was tatsächlich passiert, ist, dass der Beitrag in Discourse erstellt wird, aber der Link sofort gelöscht wird. Er muss dann manuell neu erstellt werden.
Vielen Dank, können Sie zudem Folgendes bestätigen:
Welchen WordPress-Beitragseditor verwenden Sie? Classic oder Gutenberg? Werden diese Beiträge auf eine nicht standardmäßige Weise erstellt (z.B. ich sehe, dass Sie “Gravity Forms Advanced Post Creation” verwenden)?
Können Sie ein Beispiel für einen WordPress-Beitrag und ein Discourse-Thema teilen, bei dem dieses Problem auftritt?
Verwenden Sie ein Plugin, das WordPress-Meta-Felder modifiziert (z.B. Advanced Custom Fields)?
Vielen Dank für Ihre Nachverfolgung. Hier sind die Details:
Wir verwenden den Gutenberg-Editor zum Erstellen von Beiträgen.
Wir verwenden keine benutzerdefinierten Feld-Plugins wie Advanced Custom Fields.
Ich habe ein Video aufgenommen, das das Problem zur Überprüfung repliziert. Sie können es hier ansehen.
Lassen Sie mich wissen, wenn Sie weitere Informationen oder zusätzliche Tests benötigen.
Wenn es hilft, kann ich auch temporären Login-Zugang bereitstellen, damit Sie die Einrichtung direkt untersuchen können.
Vielen Dank für die Aufnahme des Videos. Es scheint, dass Sie einen benutzerdefinierten Veröffentlichungsworkflow verwenden, um Beiträge zu veröffentlichen.
Können Sie versuchen, Beiträge ohne diesen benutzerdefinierten Workflow zu veröffentlichen? Wir werden der Sache auf den Grund gehen, indem wir systematisch vorgehen. Es ist wahrscheinlich, dass eine Ihrer Anpassungen nicht mit den Veröffentlichungsfunktionen von WP Discourse interoperabel ist.
Vielen Dank für den Vorschlag.
Ich habe versucht, Beiträge direkt ohne den benutzerdefinierten Workflow zu veröffentlichen, aber leider funktioniert es immer noch nicht.
Ok, bitte machen Sie in dieser Art weiter. Eine Ihrer Anpassungen verhindert wahrscheinlich, dass das WP Discourse-Plugin die post_id und den Permalink speichert, wenn ein Thema veröffentlicht wird.
Ich habe den Übeltäter identifiziert: Das SmartCrawl SEO-Plugin steht in Konflikt mit WP Discourse. Nachdem ich SmartCrawl deaktiviert habe, werden die Beiträge wie erwartet in Discourse veröffentlicht und verlinken korrekt auf die WordPress-Beiträge.
Gut gemacht, den Übeltäter gefunden zu haben. Ich denke, an diesem Punkt könnte es sinnvoll sein, dies an das Support-Team weiterzuleiten, z.B. “Ihr Plugin scheint ein anderes Plugin daran zu hindern, die standardmäßigen WordPress-APIs zu verwenden…” und dann das Problem zu beschreiben. Sie könnten sie vielleicht auf dieses Thema hinweisen.