显示重复类别的 Wordpress 循环

Wordpress loop showing duplicate categories

我正在尝试创建一个循环来显示自定义 post 类型的类别列表(作为按钮)。我有一个有效的循环,但它循环遍历所有自定义 post 并显示每个类别。所以现在如果我有两个具有相同类别的 post,它将显示相同的类别两次。我还需要回显自定义 类 才能使我的同位素过滤器正常工作。

这是我的代码:

            <?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;
            ?>

有没有办法让循环只打印每个类别一次,而不是每次只针对每个唯一的类别打印一次post?

使用以下代码检索自定义 post 类型的类别名称。

<?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  } ?>

您可以试试这个来检索自定义 post 类型的分类列表。

<?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; ?>

根据需要修改。