最终我将不得不退回到在自定义帖子类型中为标签和类别编写自定义查询,但现在我更希望能够以 WordPress 的方式做到这一点。
问题:如果您查看我的网站(帖子底部),有些类别会显示结果,有些则不会。我试图让父类别甚至显示他们的子类别,从而允许对图像结果进行分类深入分析,并按类别进行细化。也许它过于雄心勃勃?这似乎很合理。
这是构建查询的代码:
if ( is_tax( 'image-type' ) ) {
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$term_ID = $term->term_taxonomy_id;
$children = get_term_children( $term_ID, 'image-type' );
array_push($children, $term_ID);
$tax_query = array(
array(
'taxonomy' => 'image-type',
'field' => 'id',
'terms' => $children,
)
);
}
这为父母和孩子设置了部分查询。
查询:
if ( get_query_var('paged') )
$paged = get_query_var('paged');
elseif ( get_query_var('page') )
$paged = get_query_var('page');
else
$paged = 1;
$local_query = array(
'post-type' => 'image',
'paged' => $paged,
'tax_query' => $tax_query,
);
问题站点1:http://www.clipartillustrations.com/image-type/all-illustrations-images/
问题站点2:http://photominingstock.com/earth/
这两个都是测试站点。如果您查看图像页面,您可以看到其中许多确实在类别中,但它们没有显示在类别页面上。
事情进展得相当顺利,直到我发现分类法不能共享相似的术语,否则会给出 404。我尝试以这种方式进行补救,这似乎进展顺利,但可能给我带来了上面的问题:
第一个问题>>自定义分类Slug Hook?
解决一个问题,再制造另一个问题。
整个问题可能会通过更智能的查询来解决 - 所以希望我能醒来找到一个更有资格的人向我展示它应该如何编写:D。
解决方案:
需要调整两条线:
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$term_ID = $term->term_taxonomy_id;
已修改并正在运行:
if ( is_tax( '图像类型' ) ) {
$term = get_term_by( 'slug', get_query_var( 'image-type' ), 'image-type' );
$term_ID = $term->term_id;
$children = get_term_children( $term_ID, 'image-type' );
array_push($children, $term_ID);
$tax_query = array(
array(
'taxonomy' => 'image-type',
'field' => 'id',
'terms' => $children,
)
);
}