我有一个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')
-
是否有一个可以在taxonomy.php中使用的循环,它将显示特定的帖子类型?那么每个帖子类型可以有一个循环吗?因此,当我点击分类术语时,taxonomy.php将返回:
-
分类页面 -
循环自定义类型的帖子1(在此特定帖子类型中显示当前分类标签的帖子)
循环自定义类型的帖子2
循环自定义类型的帖子3
- 如果有多个循环,这会影响分页吗?或者分页只适用于帖子?
我在taxonomy.php页面中使用了很多单循环无济于事 . 我觉得我必须将当前的分类术语变量与新变量相呼应:
$ term = $ wp_taxonomies ??
在taxonomy.php页面中有多个循环的方法吗?
1 回答
可能最简单的方法是忽略现有的
$wp_query
并在分类模板中创建三个新查询 . 因此,不需要挂钩pre_get_posts
过滤器,只需为您创建自定义查询 .实际上,您必须考虑下一页的UI . 这取决于您希望将帖子类型分开的原因 . 如果你在第一页上看到三个就足够了,你可以选择三个单独的“下一页”链接,每个帖子类型一个 .