如何让WordPress循环仅展示父分类下的专属文章?
解决方案:限制父分类查询仅返回专属文章
问题根源在于WordPress的WP_Query默认行为:当查询某个父分类的文章时,会自动包含该分类下所有子分类的内容,这就导致「Punti vendità」标签里的子分类文章被重复加载到父分类的.post-category区域。
你只需要修改第一个WP_Query的tax_query参数,添加'include_children' => false,就能让查询仅返回直接属于该父分类、未分配给任何子分类的文章。
修改后的代码片段:
$postsCategory = new WP_Query( array( 'post_type' => $post_type, 'posts_per_page' => -1, 'hide_empty' => true, 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'field' => 'term_id', 'terms' => $category->term_id, 'include_children' => false // 新增参数:排除子分类下的文章 ) ) ) );
逻辑说明
include_children是WordPress分类查询的专属参数,默认值为true,即自动包含子分类内容- 设置为
false后,查询会严格匹配仅直接分配给当前父分类的文章,不会涉及任何子分类下的内容 - 第二个查询子分类文章的
WP_Query无需修改,因为它直接指定了子分类ID,不会触发父分类的默认包含逻辑
内容的提问来源于stack exchange,提问作者immagimario
相关产品推荐
相关产品推荐

