Ho intenzionalmente le stesse identiche categorie sia in WordPress che in Discourse, ma non c’è opzione per assegnare la categoria del post come categoria dell’argomento, quindi devo impostarla manualmente ogni volta che pubblico.
Sembra una funzionalità ovvia, quindi forse mi sfugge qualcosa?
Quindi, indipendentemente dalla categoria selezionata, il post verrebbe sempre pubblicato in una categoria con un nome che corrisponde al nome della categoria del post di Wordpress. Assicurati che quei nomi corrispondano esattamente, altrimenti non funzionerà.
Supportare ufficialmente questa funzionalità come tale sarebbe irto di difficoltà poiché si baserebbe sugli utenti che mantengono elenchi di categorie con nomi esattamente uguali, presupporrebbe che i modelli di categoria tra le due piattaforme rimangano gli stessi e dovrebbe affrontare il fatto che il sistema di tassonomia di Wordpress è intrinsecamente mutabile (cioè, non sarà lo stesso su ogni installazione di Wordpress su cui è installato il plugin).
Puoi farlo con il filtro wpdc_change_post_category. Sarebbe qualcosa del tipo (codice di esempio non testato, ma potrebbe funzionare subito):
Intendi wpdc_publish_post_category? wpdc_change_post_category non sembra esistere realmente. È solo un nome di funzione personalizzato che può essere qualsiasi cosa, corretto?
$wp_category_name = get_the_category( $post_id )[0]->name manca il ; di chiusura.
Dopo di che, ottengo un errore troppi pochi argomenti relativo a function wpdc_change_post_category( $category, $post_id ) {. Potrebbe essere perché $category non è definito? Potrei testare di più in seguito.
Per quanto riguarda l’aggiunta di questa come funzionalità ufficiale, non penso che sarebbe un grosso problema, considerando due opzioni:
L’opzione Force Category Update esiste già. Questa potrebbe essere estesa a una funzionalità che forza le categorie di Discourse/WordPress a essere sempre sincronizzate.
o
Forse non hanno bisogno di essere sincronizzate affatto, ma piuttosto se una categoria non esiste in Discourse, viene semplicemente creata.
Sì, è corretto, mi scuso per l’errore di battitura.
C’è una grande differenza tra leggere un elenco di categorie tramite l’API (forza aggiornamento categorie) e sincronizzare automaticamente le categorie stesse tra Wordpress e Discourse.
Ho un tipo di post personalizzato di policies con una tassonomia personalizzata gerarchica policy_categories su due livelli (genitore/figlio). Ci sono circa 45 categorie figlio.
Ho configurato WP Discourse per pubblicare in una categoria Discourse di policies, ma piuttosto che creare un enorme set di sottocategorie (avendo letto in questo forum) sembra meglio creare le sottocategorie come tag.
Avrò vari utenti WordPress che pubblicheranno policies con diversi livelli di esperienza (se fossi solo io a farlo, li taggherei ogni volta). Quindi, per risparmiare un passaggio in più e probabilmente un bel po’ di problemi di supporto, idealmente ci sarebbe un filtro per far sì che WP Discourse prenda le Categorie di WordPress e aggiunga i Tag Discourse corrispondenti.
Sarei felice di assicurarmi che le categorie e i tag corrispondano a ID/slug, ecc., poiché manterrò qualsiasi aggiornamento di questi come amministratore.
Sebbene non esista un filtro dedicato per i tag, c’è un filtro generale che puoi utilizzare: wpdc_publish_body. Nel tuo caso, apparirà così
add_filter( 'wpdc_publish_body', function( $body, $remote_post_type, $post_id ) {
// codice per ottenere la categoria di policy del post
if ( // se c'è una policy del post ) {
$policy_tags = // mappa la categoria di policy del post ai tag appropriati
$body['tags'] = $policy_tags
}
return $body;
}, 10, 3);