Ich habe absichtlich genau die gleichen Kategorien in WordPress und Discourse, aber es gibt keine Option, die Beitrags-Kategorie als Thema-Kategorie zuzuweisen, daher muss ich sie jedes Mal manuell festlegen, nachdem ich veröffentlicht habe.
Das scheint eine offensichtliche Funktion zu sein, vielleicht übersehe ich etwas?
Dann, egal welche Kategorie Sie ausgewählt haben, würde der Beitrag immer in einer Kategorie mit einem Namen veröffentlicht, der mit dem Namen der Wordpress-Beitrags kategorie übereinstimmt. Stellen Sie jedoch sicher, dass diese Namen exakt übereinstimmen, sonst funktioniert es nicht.
Die offizielle Unterstützung dieser Funktion wäre mit Schwierigkeiten verbunden, da sie darauf beruhen würde, dass Benutzer Listen von Kategorien mit exakt denselben Namen pflegen, davon ausgehen, dass die Kategorienmodelle zwischen den beiden Plattformen gleich bleiben und damit umgehen, dass das Taxonomiesystem von Wordpress von Natur aus veränderlich ist (d. h. es wird nicht auf jeder Wordpress-Installation, auf der das Plugin installiert ist, gleich sein).
Sie können dies mit dem wpdc_change_post_category-Filter tun. Es wäre so etwas wie (ungetesteter Beispielcode, der aber sofort funktionieren könnte):
Sie meinen wahrscheinlich wpdc_publish_post_category? wpdc_change_post_category scheint nicht wirklich zu existieren. Es ist nur ein benutzerdefinierter Funktionsname, der alles sein kann, richtig?
$wp_category_name = get_the_category( $post_id )[0]->name fehlt das schließende ;.
Danach erhalte ich einen zu wenige Argumente-Fehler bezüglich function wpdc_change_post_category( $category, $post_id ) {. Es könnte daran liegen, dass $category undefiniert ist? Ich werde später mehr testen.
Was das Hinzufügen als offizielles Feature angeht, glaube ich nicht, dass es eine so große Sache wäre, wenn man zwei Optionen bedenkt:
Die Option Kategorie-Update erzwingen existiert bereits. Diese könnte zu einer Funktion erweitert werden, die Kategorien von Discourse/WordPress immer synchron hält.
oder
Vielleicht müssen sie gar nicht synchron sein, sondern wenn eine Kategorie in Discourse nicht existiert, wird sie einfach erstellt.
Ja, das stimmt, Entschuldigung für den Tippfehler.
Es gibt einen großen Unterschied zwischen dem Lesen einer Liste von Kategorien über die API (Kategorie-Update erzwingen) und der automatischen Synchronisierung von Kategorien zwischen WordPress und Discourse.
Ich habe einen benutzerdefinierten Beitragstyp von policies mit einer hierarchischen benutzerdefinierten Taxonomie policy_categories auf zwei Ebenen (Eltern/Kind). Es gibt ungefähr 45 Unterkategorien.
Ich habe WP Discourse so eingerichtet, dass es in eine Discourse-Kategorie von policies veröffentlicht wird, aber anstatt eine riesige Menge an Unterkategorien zu erstellen (nachdem ich mich in diesem Forum umgesehen habe), scheint es besser zu sein, die Unterkategorien als Tags zu erstellen.
Ich werde verschiedene WordPress-Benutzer haben, die policies mit unterschiedlichen Erfahrungsstufen veröffentlichen (wenn ich es allein machen würde, würde ich sie jedes Mal taggen). Um einen zusätzlichen Schritt und wahrscheinlich eine Menge Support-Aufwand zu sparen, wäre es ideal, wenn es einen Filter gäbe, damit WP Discourse die WordPress-Kategorien übernimmt und die passenden Discourse-Tags hinzufügt.
Ich würde sicherstellen, dass die Kategorien und Tags IDs/Slugs usw. übereinstimmen, da ich alle Updates davon als Administrator verwalten werde.
Obwohl es keinen dedizierten Tag-Filter gibt, gibt es einen allgemeinen Filter, den Sie verwenden können: wpdc_publish_body. In Ihrem Fall sieht er so aus:
add_filter( 'wpdc_publish_body', function( $body, $remote_post_type, $post_id ) {
// Code zum Abrufen der Post-Policy-Kategorie
if ( // Wenn es eine Post-Policy gibt ) {
$policy_tags = // Ordnet die Post-Policy-Kategorie den entsprechenden Tags zu
$body['tags'] = $policy_tags
}
return $body;
}, 10, 3);