Eu tenho intencionalmente todas as mesmas categorias exatas no WordPress e no Discourse, mas não há opção para atribuir a categoria da postagem como a categoria do tópico, então eu só tenho que defini-la manualmente depois de cada publicação.
Parece uma funcionalidade óbvia, então talvez eu esteja ignorando algo?
Então, não importa qual categoria você selecionou, a postagem sempre seria publicada em uma categoria com um nome que corresponda ao nome da categoria da postagem do WordPress. Certifique-se de que esses nomes correspondam exatamente, caso contrário, não funcionará.
Oficialmente, dar suporte a isso como uma funcionalidade seria repleto de dificuldades, pois dependeria dos usuários manterem listas de categorias com os mesmos nomes exatos, assumir que os modelos de categoria entre as duas plataformas permaneçam os mesmos e ter que lidar com o fato de que o sistema de taxonomia do WordPress é inerentemente mutável (ou seja, não será o mesmo em cada instalação do WordPress onde o plugin é instalado).
Você pode fazer isso com o filtro wpdc_change_post_category. Seria algo como (código de exemplo não testado, mas pode funcionar de imediato):
Acredito que você quis dizer wpdc_publish_post_category? wpdc_change_post_category aparentemente não existe. É apenas um nome de função personalizado que pode ser qualquer coisa, correto?
$wp_category_name = get_the_category( $post_id )[0]->name está faltando o ; de fechamento.
Depois disso, recebo um erro de poucos argumentos referente a function wpdc_change_post_category( $category, $post_id ) {. Pode ser porque $category não está definido? Posso testar mais tarde.
Em relação a adicionar isso como um recurso oficial, não acho que seria um grande problema, considerando duas opções:
A opção Force Category Update já existe. Isso poderia ser estendido para um recurso que força as categorias do Discourse/WordPress a estarem sempre em sincronia.
ou
Talvez elas não precisem estar em sincronia, mas sim, se uma categoria não existir no Discourse, ela simplesmente a cria.
Sim, isso mesmo, desculpas pelo erro de digitação.
Há uma grande diferença entre ler uma lista de categorias via API (forçar atualização de categoria) e sincronizar automaticamente as categorias entre Wordpress e Discourse.
Eu tenho um tipo de postagem personalizado de políticas com uma taxonomia personalizada hierárquica policy_categories em dois níveis (pai/filho). Existem cerca de 45 categorias filhas.
Configurei o WP Discourse para publicar em uma categoria do Discourse de políticas, mas em vez de criar um grande conjunto de subcategorias (tendo lido neste fórum), parece melhor criar as subcategorias como tags.
Terei vários usuários do WordPress publicando políticas com diferentes níveis de experiência (se fosse apenas eu fazendo isso, eu simplesmente as marcaria todas as vezes). Portanto, para economizar um passo extra e provavelmente uma boa dose de problemas de suporte, o ideal seria um filtro para que o WP Discourse pegue as Categorias do WordPress e adicione as Tags correspondentes do Discourse.
Ficarei feliz em garantir que as categorias e tags correspondam a IDs/slugs, etc., pois serei o administrador que manterá quaisquer atualizações delas.
Embora não haja um filtro de tags dedicado, existe um filtro geral que você pode usar: wpdc_publish_body. No seu caso, ele ficará assim
add_filter( 'wpdc_publish_body', function( $body, $remote_post_type, $post_id ) {
// código para obter a categoria de política do post
if ( // se houver uma política de post ) {
$policy_tags = // mapear a categoria de política do post para a(s) tag(s) apropriada(s)
$body['tags'] = $policy_tags
}
return $body;
}, 10, 3);