我有一个taxonomy.php文件来显示分类术语。我在functions.php中添加了一个过滤器,以包含分类页面查询的帖子类型。这个过滤器:
add_filter( 'pre_get_posts' , 'ucc_include_custom_post_types' );
function ucc_include_custom_post_types( $query ) {
global $wp_query;
/* Don't break admin or preview pages. */
if ( !is_preview() && !is_admin() && !is_page() && !is_single() ) {
$args = array(
'public' => true ,
'_builtin' => false
);
$output = 'names';
$operator = 'and';
$post_types = get_post_types( $args , $output , $operator );
$post_types = array_merge( $post_types , array( 'post' ) );
if ($query->is_feed) {
// Do feed processing here.
} else {
$my_post_type = get_query_var( 'post_type' );
if ( empty( $my_post_type ) )
$query->set( 'post_type' , $post_types );
}
}
return $query;
}
返回您想要的所有帖子类型。但我试图找到一种方法将它们分开。我尝试使用普通循环,但我不知道如何从页面中获取当前的分类标记。
我有2个问题都是相关的,但看看最好的方法是什么。假装我有3种帖子类型('post''post2''post3')
- 分类标准页 -
自定义类型帖子1的循环(在此特定帖子类型中显示当前分类标签的帖子)
自定义类型帖子2的循环
自定义类型帖子3的循环
我在taxonomy.php页面中使用了很多单循环但无济于事。我觉得我必须将当前的分类术语变量与新变量相呼应:
$ term = $ wp_taxonomies ??
taxonomy.php页面中的多个循环的任何方式?
答案 0 :(得分:0)
可能最简单的方法是忽略现有的$wp_query
并在分类模板中创建三个新查询。因此,不要在模板中启动“循环”,只需创建一个新查询并使用该循环进行循环。对其他帖子类型重复此操作。这也意味着您无需挂钩pre_get_posts
过滤器,只需为您创建自定义查询。
确实,您必须考虑下一页的UI。这取决于您希望将帖子类型分开的原因。如果你在第一页上看到三个就足够了,你可以使用三个单独的“下一页”链接,每个帖子类型一个。