我已经查看了许多答案,我可以对默认的“post”类型这样做:
$cats = get_categories();
foreach ($cats as $cat) {
$cat_id = $cat->term_id;
echo "<h2>".$cat->name."</h2>";
query_posts("cat=$cat_id&posts_per_page=100");
if (have_posts()) : while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink();?>"><?php the_title(); ?></a>
<?php endwhile; endif; ?>
<?php } ?>
Im无法显示自定义帖子及其关联分类类别的帖子。CPT及其类别分类在my functions文件中定义。我本质上是想显示集合集中与每个类别相关的所有帖子。因此,代码的逻辑基本上就在那里,我似乎无法重新设置正确的数据位来按我喜欢的方式过滤帖子。
最合适的回答,由SO网友:sledgeweight 整理而成
对于那些想知道的人:
<?php $cat_args = array(
\'taxonomy\' => \'service_sections\',
\'orderby\' => \'slug\',
\'order\' => \'ASC\'
);
$cats = get_categories($cat_args); // passing in above parameters
foreach ($cats as $cat) : // loop through each cat
$cpt_query_args = new WP_Query( array(
\'post_type\' => \'services\',
\'service_sections\' => $cat->name
)
);
if ($cpt_query_args->have_posts()) : ?>
<div id="<?php echo $cat->slug; ?>">
<?php while ($cpt_query_args->have_posts()) : $cpt_query_args->the_post(); ?>
<div class="<?php echo $cat->slug; ?>" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h3 class="staff-name"><?php the_title(); ?></h3>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
</div>
<?php endif;
wp_reset_query();
endforeach; ?>
更新以删除query\\u帖子