Отображение названия категории для произвольного типа записи
У меня есть произвольный запрос, в котором я отображаю результаты записей произвольного типа "staff". Этот произвольный тип записи связан с пользовательской таксономией "department". Я могу отображать результаты, но не могу вывести категорию, которая привязана к каждой записи.
Вот мой код:
<?php
$args = array(
'post_type' => 'staff', 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'departments',
'field' => 'slug',
'terms' => 'board'
)
)
);
$loop = new WP_Query( $args );
?>
<?php if( $loop->have_posts() ): ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<p class="text-center name"><?php the_title(); ?></p>
<?php the_category(' '); ?>
<?php endwhile; ?>
<?php endif; ?>
Я думаю, проблема в том, что я использую the_category, но я не уверен.
Есть идеи, что может быть не так?
Спасибо!

используйте термины следующим образом:
$terms = get_the_terms($post->ID, 'Введите_вашу_таксономию_здесь');
if ($terms && ! is_wp_error($terms)) :
$tslugs_arr = array();
foreach ($terms as $term) {
$tslugs_arr[] = $term->slug;
}
$terms_slug_str = join( " ", $tslugs_arr);
endif;
echo $terms_slug_str;

Если кто-то ищет это в 2019 году. С помощью этого вы получаете название типа записи (CUSTOM POST TYPE) с URL.
$terms = wp_get_post_terms( $post->ID, 'ЗДЕСЬ-ВАША-ТАКСОНОМИЯ');
foreach ( $terms as $term ) {
$term_link = get_term_link( $term );
echo '<a href="' . $term_link . '">' . $term->name . '</a>' . ' ';
}

$categories = get_terms(array( 'taxonomy' => 'course_categories', 'hide_empty' => false, ));
$output .= '<select name="category">';
$output .= '<option value="">Выберите категорию</option>';
foreach ($categories as $category) {
$output .= '<option value="' . $category->slug . '">' . $category->name . '</option>';
}
if (!empty($category_data)) { // Если выбрана категория, фильтруем по ней $post['tax_query'] = array( array( 'taxonomy' => 'course_categories', 'field' => 'slug', 'terms' => $category_data, 'operator' => 'IN', ), ); }
