2016-10-13 21 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(); ?> '(この関数はclass属性を出力します)。 –