2016-07-25 3 views
0

カスタム投稿タイプのカテゴリ(ボタンとして)のリストを表示するループを作成しようとしています。ループはありますが、すべてのカスタム投稿をループして各カテゴリを表示しています。同じカテゴリの投稿が2つある場合は、同じカテゴリを2回表示します。また、アイソトープフィルタを動作させるためのカスタムクラスをエコーする必要があります。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; 
      ?> 

は、ループはそれだけでそれぞれのユニークなポストのためであるたびに一回一回だけ、各カテゴリを印刷し、代わりのようにする方法はありますか?

答えて

1

カスタムポストタイプのカテゴリ名を取得するには、次のコードを使用します。

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

必要に応じて変更してください。

関連する問題