Integramos o Discourse ao nosso site Wordpress e a postagem manual funciona. No entanto, gostaria de configurar a postagem automática no Discourse apenas de posts que se enquadram em uma categoria específica. Vejo que podemos excluir por tag, mas isso não ajuda neste caso de uso. Gostaria de incluir por categoria. Isso é possível e, se não for, poderia ser adicionado como um recurso? Parece ser uma opção muito útil/importante e, honestamente, fiquei bastante surpreso ao descobrir que ela aparentemente não existe. Obrigado.
Olá @vanclute,
Você pode usar o filtro wpdc_publish_after_save para conseguir isso. No arquivo functions.php do seu WordPress, adicione o seguinte:
function publish_to_discourse( $force_publish, $post_id, $post ) {
return has_term( TERM, TAXONOMY, $post );
}
add_filter( 'wpdc_publish_after_save', 'publish_to_discourse', 10, 3 );
Você precisará substituir TERM e TAXONOMY pelo que estiver usando para “categorias” no WordPress. Observe que TERM pode ser um array, por exemplo:
array( 'nome da categoria 1', 'nome da categoria 2')
Exemplo
function publish_to_discourse( $force_publish, $post_id, $post ) {
return has_term( array( 'news', 'blog' ), 'category', $post );
}
add_filter( 'wpdc_publish_after_save', 'publish_to_discourse', 10, 3 );
Obrigado. Realmente preferiria não ter que modificar nenhum arquivo do WP, mas aprecio as dicas.
Não há necessidade de modificar nada
Faça como deve ser feito…
Instale o Code Snippet ou similar e faça isso através dele (claro, você pode fazer como um plugin separado, se preferir; sem diferenças). Totalmente a mesma coisa que instalar um componente de tema ou um plugin para o Discourse.
E use o functions.php do child theme apenas quando a modificação depender do tema. Não é o caso desta vez.