Ich füge einen weiteren IF-Abschnitt für einen anderen benutzerdefinierten Beitragstyp zu WP Discourse: advanced custom filter for discourse_publish_format_html - #12 by Kayla hinzu … es handelt sich um denselben Beitragstyp, den ich auf ein bestimmtes Discourse-Thema beschränken und automatisch veröffentlichen wollte, wie in meinem letzten Thema Filtering the available categories for a custom post type beschrieben. Die Beiträge werden automatisch im richtigen Thema veröffentlicht, aber die benutzerdefinierten Felder, die ich in discourse_publish_format_html einfügen möchte, werden als leer übergeben. Ich habe alle Feldnamen vierfach überprüft, und es scheint, als kämen nur die Feldwerte selbst nicht nach Discourse.
Ich frage mich, ob einer dieser Faktoren der Grund dafür sein könnte?
Der CPT wurde in WordPress über das Gravity Forms Advanced Post Creation Add-On-Plugin erstellt.
Auf den CPT wurde Toolset Access angewendet, sodass nur Redakteure diese speziellen Beiträge sehen können; der WP-Status ist „veröffentlicht".
Der CPT wird in eine private Discourse-Kategorie veröffentlicht.
Die Elemente, die tatsächlich nach Discourse übertragen werden, sind der Beitrag-/Thementitel, {author} und {blogurl}. Vielleicht liegt der Schlüssel darin, dass auch {excerpt} leer zurückgegeben wird, zusammen mit den benutzerdefinierten Feldern?
Update: Das vollständige Deaktivieren des Toolset-Zugriffs und/oder das Erstellen eines Beitrags über WordPress anstelle des Gravity Forms hat die leeren benutzerdefinierten Felder nicht behoben. {excerpt} wurde hingegen übermittelt…
Um das zu verdeutlichen: Toolset Access scheint keinen Einfluss auf diesen Unterschied mit {excerpt} zu haben.
Wenn ich einen Beitrag über die WP-Verwaltung erstelle, wird {excerpt} übernommen (der Beitrag verwendet den Block-Editor). {excerpt} wird jedoch leer veröffentlicht, wenn er über das Gravity-Formular erstellt wird (das einen „klassischen
Wenn die Meldung „Erfolg“ nicht angezeigt wird, der Beitrag jedoch veröffentlicht wurde, liegt das Problem an der Konfiguration des benutzerdefinierten Beitragstyps.
Wenn die Meldung „Erfolg“ angezeigt wird, sollten die benutzerdefinierten Felder als Beitragmetadaten verfügbar sein, die mit get_post_meta( $post_id, 'your_meta_key_name', true ); abgerufen werden können. Der einfachste Weg, herauszufinden, was los ist, besteht darin, aus Ihrer Funktion cosmos_custom_publish_format_html in eine debug.log-Datei zu schreiben.
Ich bin diese Woche nicht im Büro, daher kann es sein, dass ich Fragen langsamer beantworte als sonst.
Ich habe es endlich eingegrenzt: Das Problem scheint von der Option für die automatische Veröffentlichung zu stammen (ein weiterer neuer Faktor, der übersehen wurde). Wenn ich diese Option deaktiviere, den Beitrag in WordPress veröffentliche und danach in Discourse, werden die benutzerdefinierten Felder korrekt in Discourse übernommen und angezeigt. Oder wenn ich die automatische Veröffentlichung zulasse, erscheinen die Felder in Discourse, nachdem ich in WordPress auf „Discourse-Thema aktualisieren