WordPress цикл, показывающий повторяющиеся категории

Я пытаюсь создать цикл, который отображает список категорий (в виде кнопок) пользовательского типа сообщения. У меня есть цикл, который работает, но он просматривает все пользовательские сообщения и отображает каждую категорию. Так что прямо сейчас, если у меня есть два поста в одной и той же категории, эта категория будет отображаться дважды. Также мне нужно отобразить пользовательские классы для работы моего изотопного фильтра.

Это мой код:

            <?php
$args = array(
'post_type' => 'ondernemers',
'posts_per_page' => 10
);

$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();

$categories = get_the_category( $post->ID, 'taxonomy' );
foreach( $categories as $category ) {
echo '<button class="button" data-filter=".'  . $category->slug . ' "><div class="button-img-' . $category->slug . '"></div>' . $category->name . '</button>';
}

endwhile;
?>

Есть ли способ заставить цикл печатать каждую категорию только один раз, а не один раз за каждый раз, когда это только для каждого уникального сообщения?

0

Решение

Используйте приведенный ниже код, чтобы получить название категории пользовательского типа сообщения.

<?php
$args = array(
'type'                     => 'post', /* custom post type name */
'parent'                   => '',
'orderby'                  => 'id',
'order'                    => 'ASC',
'hide_empty'               => 1,
'hierarchical'             => 1,
'taxonomy'                 => 'category'  /* custom post type texonomy name */
);
$cats = get_categories($args);
foreach ($cats as $cat) {
$cat_id= $cat->term_id;
$cat_name= $cat->name; ?>
<h3><?php echo '<a href="' . get_category_link( $cat_id ) . '">'.$cat->name.'</a>'; ?></h3>
<?php  } ?>
1

Другие решения

Вы можете попробовать это для получения пользовательского списка таксономий типа записей.

<?php
$categories = get_the_terms( $post->ID, 'taxonomy_name' );
foreach( $categories as $category ): ?>
<button data-filter="<?php echo $category->slug; ?>">
<?php echo $category->name; ?>
</button>
<?php endforeach; ?>

Изменяйте по мере необходимости.

1

По вопросам рекламы [email protected]