Intencionalmente tengo exactamente las mismas categorías tanto en WordPress como en Discourse, pero no hay opción para asignar la categoría de la publicación como la categoría del tema, así que solo tengo que establecerla manualmente cada vez que publico.
Parece una característica obvia, ¿así que tal vez estoy pasando algo por alto?
Luego, sin importar la categoría que hayas seleccionado, la publicación siempre se enviaría a una categoría con un nombre que coincida con el nombre de la categoría de la publicación de Wordpress. Asegúrate de que esos nombres coincidan exactamente, de lo contrario, no funcionará.
Apoyar oficialmente esto como una característica estaría plagado de dificultades, ya que dependería de que los usuarios mantuvieran listas de categorías con los mismos nombres exactos, asumiría que los modelos de categorías entre las dos plataformas permanecen iguales y tendría que lidiar con el hecho de que el sistema de taxonomía de Wordpress es inherentemente mutable (es decir, no será el mismo en cada instalación de Wordpress donde se instale el plugin).
Puedes hacer esto con el filtro wpdc_change_post_category. Sería algo como (código de ejemplo sin probar, pero podría funcionar directamente):
Creo que te refieres a wpdc_publish_post_category, ¿verdad? wpdc_change_post_category no parece existir realmente. Es solo un nombre de función personalizado que puede ser cualquier cosa, ¿correcto?
A $wp_category_name = get_the_category( $post_id )[0]->name le falta el ; de cierre.
Después de eso, obtengo un error de demasiados pocos argumentos en relación con function wpdc_change_post_category( $category, $post_id ) {. ¿Podría ser porque $category no está definida? Quizás pruebe más tarde.
En cuanto a añadir esto como una característica oficial, no creo que sea un gran problema, considerando dos opciones:
La opción Forzar actualización de categoría ya existe. Esto podría extenderse a una característica que fuerce la sincronización constante de las categorías de Discourse/WordPress.
o
Quizás no necesiten estar sincronizadas en absoluto, sino que si una categoría no existe en Discourse, simplemente se crea.
Hay una gran diferencia entre leer una lista de categorías a través de la API (forzar actualización de categoría) y sincronizar automáticamente las categorías entre Wordpress y Discourse.
Tengo un tipo de publicación personalizado de políticas con una taxonomía personalizada jerárquica policy_categories en dos niveles (padre/hijo). Hay alrededor de 45 categorías secundarias.
He configurado WP Discourse para publicar en una categoría de Discourse de políticas, pero en lugar de crear un gran conjunto de subcategorías (después de leer en este foro) parece mejor crear las subcategorías como etiquetas.
Tendré varios usuarios de WordPress publicando políticas con diferentes niveles de experiencia (si solo fuera yo quien hiciera esto, simplemente las etiquetaría cada vez). Por lo tanto, para ahorrar un paso adicional y probablemente una gran cantidad de problemas de soporte, idealmente habría un filtro para que WP Discourse tome las Categorías de WordPress y agregue las Etiquetas de Discourse coincidentes.
Estaría feliz de asegurarme de que las categorías y las etiquetas coincidan con las ID/slugs, etc., ya que me encargaré de cualquier actualización de estas como administrador.
Aunque no existe un filtro de etiquetas dedicado, hay un filtro general que puedes usar: wpdc_publish_body. En tu caso, se verá así
add_filter( 'wpdc_publish_body', function( $body, $remote_post_type, $post_id ) {
// código para obtener la categoría de política de la publicación
if ( // si hay una política de publicación ) {
$policy_tags = // mapear la categoría de política de la publicación a la(s) etiqueta(s) apropiada(s)
$body['tags'] = $policy_tags
}
return $body;
}, 10, 3);