Отображение названия категории для произвольного типа записи

22 мая 2015 г., 06:08:18
Просмотры: 81.9K
Голосов: 5

У меня есть произвольный запрос, в котором я отображаю результаты записей произвольного типа "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, но я не уверен.

Есть идеи, что может быть не так?

Спасибо!

1
Комментарии

Пользовательские типы записей не имеют категорий. Похоже, вы хотите получить пользовательские элементы таксономии "departments". Однако ваш запрос уже настроен на выборку только из отдела "board", поэтому нет смысла его получать. Если вы всё же хотите получить его, посмотрите функцию get_the_terms https://codex.wordpress.org/Function_Reference/get_the_terms

gdaniel gdaniel
22 мая 2015 г. 06:39:34
Все ответы на вопрос 4
1
15

Вот что мне было нужно:

<?php
$terms = get_the_terms( $post->ID , 'board' );
foreach ( $terms as $term ) {
echo $term->name;
}
?>
22 мая 2015 г. 06:42:13
Комментарии

СПАСИБО! Вы помогли мне понять, в чем была моя собственная проблема. Очень признателен.

Debbie Kurth Debbie Kurth
4 июл. 2019 г. 19:55:36
0

используйте термины следующим образом:

$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;
27 дек. 2016 г. 00:51:14
1

Если кто-то ищет это в 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>' . ' ';
}
21 апр. 2019 г. 07:50:40
Комментарии

Это должен быть правильный ответ.

Nuno Sarmento Nuno Sarmento
20 нояб. 2020 г. 00:48:35
0

$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', ), ); }

6 дек. 2024 г. 12:36:41