2016-10-13 34 views
0

我有一個基本循環設置爲顯示自定義分類中的所有術語。get_terms中獲取帖子循環

<?php 
$workshops = get_terms('workshop', array(
    'orderby' => 'name', 
    'hide_empty' => 0, 
)); 
foreach ($workshops as $workshop) { ?> 

     <h3><?php echo $workshop->name; ?></h3>   
     <?php echo term_description($workshop); ?>      

<?php } ?> 

如何顯示該循環中每個相應術語的所有帖子?

例如..

分類是電影。術語是喜劇,恐怖等

我想輸出是

喜劇 描述爲喜劇項

  • 電影1
  • 電影2

恐怖片 恐怖長期

  • 電影3
  • 電影4

謝謝!豐富的

回答

0

首先,你正在使用的get_terms已過時的版本,所以我們要解決這個問題首先:

$workshops = get_terms(array(
    'taxonomy' => 'workshop', 
    'orderby' => 'name', 
    'hide_empty' => false 
)); 

然後,你的任期內環路,您需要創建另一個查詢來獲取所有落在職位在術語:

$query = new WP_Query(array(
    'post_type' => 'post', // Or your custom post type's slug 
    'posts_per_page' => -1, // Do not paginate posts 
    'tax_query' => array(
     array(
      'taxonomy' => 'workshop', 
      'field' => 'term_id', 
      'value' => $workshop->term_id 
     ) 
    ) 
)); 

最後,還是你的任期內環路,寫另一個循環建立的職位名單:

<?php if ($query->have_posts()): ?> 
    <ul class="term-post-list" id="term-<?php echo $workshop->term_id; ?>-posts"> 

     <?php while ($query->have_posts()): $query->the_post(); ?> 
      <li id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
       <?php the_title(); ?> 
      </li> 
     <?php endwhile; wp_reset_postdata(); ?> 

    </ul> 
<?php endif; ?> 
+0

謝謝!今天會試一試並回報 – user1050887

+0

我的最後一段代碼中存在一些小問題,所以請確保使用更新後的版本 - 我將這個列表包裝在一個條件中,並更改了'class =「<?php post_class(); ?>「'只是'<?php post_class(); ?>(該函數將輸出類屬性)。 –