Schnelle Frage zu programmatischem Link zu bestehendem Thema

Ich verwende Frontend-Formulare, um Beiträge in WordPress zu erstellen, die mit bestehenden Discourse-Themen verknüpft werden müssen.

Mein Plan ist es, die URL des bestehenden Themas in ein ACF-Feld einzugeben, wenn ich einen WP-Beitrag hinzufüge oder bearbeite.

Anschließend würde ich Folgendes verwenden:

add_action('acf/save_post', 'my_acf_save_post', 25);

Innerhalb der Funktion my_acf_save_post würde ich Folgendes ausführen:

protected function link_to_discourse_topic( $post_id, $topic_url )

Siehe hier.\n
Bin ich auf dem richtigen Weg?

1 „Gefällt mir“

Ja, du bist auf dem richtigen Weg. Grob gesagt musst du Folgendes tun:

  1. Die Themendetails aus Discourse abrufen (sofern du diese noch nicht hast)
  2. Die relevanten Details in die richtigen Post-Meta-Felder speichern

Genau diese Post-Meta-Felder, die du in der von dir verlinkten Funktion siehst, stellen die Verbindung her.

Ich habe dies auch auf meine WP Discourse-Entwicklungs-Roadmap gesetzt: Um dies zu vereinfachen, also mit einer einzigen öffentlichen Hilfsfunktion dieses Ziel zu erreichen. Ich habe dies für Juni eingeplant.

Schau dir außerdem die vorhandenen Hilfsfunktionen in lib/plugin_utilities.php und lib/utilities.php an. Ebenso die entsprechende link_topic-Methode in admin/discourse-sidebar/discourse-sidebar.php.

Lass mich wissen, wie es dir geht.

2 „Gefällt mir“

@Angus, danke für deine Antwort. Ich stehe noch ganz am Anfang meiner PHP-Reise, also wenn du vor hast, das anzupacken, warte ich einfach ab.

Außerdem trete ich bei der WP-Plugin-Integration immer wieder auf denselben Fehler. Ich weiß nicht, ob du dafür einen separaten Beitrag oder ein GitHub-Issue bevorzugst, aber hier ist, was passiert:

Wenn ich einen WP-Beitrag öffne, der mit einem Forumsthema verknüpft ist, wird der Link im Discourse-Block nicht angezeigt. Es sieht so aus, als gäbe es keinen Link.

Bedingungen:
Dies tritt sowohl auf, wenn der Link durch das Veröffentlichen eines „Neuen Themas“ erstellt wurde, als auch bei der Option „Link zu bestehendem Thema".

Meine WP-Beiträge sind benutzerdefinierte Post-Typen (CPTs).

Meine Kommentarfunktion ist auf „Link zu den Kommentaren anzeigen“ eingestellt.

Ansonsten ist meine Installation nichts Besonderes.

Bestätigung:
Ich kann bestätigen, dass die Links, die nicht im Discourse-Block angezeigt werden, tatsächlich existieren: Ich sehe sie in meinen Admin-Spalten, und ich kann auf den Frontend-Link klicken, um zum Forum-Beitrag zu gelangen.

Ich helfe gerne mit weiteren Informationen oder Tests.

Viele Grüße, Richard

1 „Gefällt mir“

Haben Sie Ihren benutzerdefinierten Beitragstyp in der Veröffentlichungseinstellung „Zu veröffentlichende Beitragstypen

1 „Gefällt mir“

Ja. Ich hätte erwähnen sollen, dass am Anfang alles funktioniert: Ich kann in ein neues Thema veröffentlichen oder auf ein bestehendes Thema verlinken, und die Links funktionieren in beide Richtungen – außer

Wenn ich später einen Beitrag in WordPress neu bearbeite, sieht der Discourse-Block so aus, als wäre nichts verlinkt, obwohl mein WordPress-Frontend-Link immer noch zum richtigen Foren-Thema führt und der Link im Foren-Thema immer noch zum richtigen WordPress-Beitrag.

Das Problem besteht also nur im WordPress-Discourse-Block beim erneuten Bearbeiten eines Beitrags.

Lass mich wissen, falls du noch etwas brauchst.

1 „Gefällt mir“

Danke, noch ein paar Fragen:

  1. Sehen Sie in der Konsole Ihres Browser-Entwicklertools Fehler?

  2. Was passiert, wenn Sie die Seite während der Bearbeitung vollständig neu laden?

Es scheint ein JavaScript-Problem zu sein. Dies kann verschiedene Ursachen haben, darunter andere Plugins oder eine Browsererweiterung. Wenn möglich, müssen wir das Problem etwas genauer eingrenzen.

1 „Gefällt mir“

Konsolenmeldung: Node konnte auf der aktuellen Seite nicht gefunden werden.

Zuerst werden die Abschnitte „Veröffentlichungsoptionen / Thema anpinnen

1 „Gefällt mir“

Ich weiß nicht genau warum, aber meine Links werden nun im Discourse-Block angezeigt. Falls ich ein Muster für dieses Problem finde, melde ich mich wieder. Danke.

2 „Gefällt mir“