Ich versuche, verschiedene Kategorien für verschiedene custom_post_types festzulegen. Der folgende Code wählt die richtige Kategorie im Wordpress-Admin aus. Beim Veröffentlichen in Discourse wird die Kategorie dort jedoch nicht gesetzt (und standardmäßig auf “Uncategorized” gesetzt)…
Vielleicht übersehe ich etwas Offensichtliches?
// WP Discourse set CPT forum categories for CPTS
add_filter( 'wp_discourse_publish_categories', 'radhr_filter_categories_policies', 10, 2 );
function radhr_filter_categories( $categories, $post ) {
if ( 'policy' === get_post_type( $post ) ) {
$output = [];
foreach ( $categories as $category ) {
if ( 'Policies' === $category['name']) {
$output[] = $category;
}
}
return $output;
}
elseif ( 'guide' === get_post_type( $post ) ) {
$output = [];
foreach ( $categories as $category ) {
if ( 'Guides' === $category['name']) {
$output[] = $category;
}
}
return $output;
}
elseif ( 'post' === get_post_type( $post ) ) {
$output = [];
foreach ( $categories as $category ) {
if ( 'Blogs' === $category['name']) {
$output[] = $category;
}
}
return $output;
}
return $categories;
}