我设置了一个基本循环来显示自定义分类中的所有术语。
<?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 } ?>
如何在该循环中显示每个相应字词的所有帖子?
例如......
分类标准是电影。条款是喜剧,恐怖等。
我希望输出
喜剧 喜剧术语的描述
恐怖 恐怖术语的描述
谢谢!富
答案 0 :(得分: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; ?>