来自当前帖子自定义分类的术语--排除父项,仅来自单个父项

时间:2013-10-11 作者:Trevor

标题听起来很复杂,但这很简单。希望它的代码也是。我有一个我们称之为“过滤器”的自定义分类法。

父项A子项1A子项2A子项B子项1B子项2B子项在一个有自定义帖子类型列表的页面上,我可以通过在循环/查询中显示为“过滤器”分类法选择的所有术语:

<?php
$terms = get_the_terms( $post->ID, \'filters\' );                 
if ( $terms && ! is_wp_error( $terms ) ) : 
    $listing_filters = array();
    foreach ( $terms as $term ) {
        $listing_filters[] = $term->name;
    }                   
    $listing_filters = join( ", ", $listing_filters );
?>
<p class="listing-filters"><?php echo $listing_filters; ?></p>
<?php endif; ?>
问题是,对于此页面,我只想显示在下选择的术语ParentTerm A.

因此,如果勾选,则会显示ChildTerm 1A和ChildTerm 2A。但不会显示其他术语,父术语A除外,当然父术语B中也不会显示任何术语。

然而,正如上面代码所指出的,我当然会得到这个自定义分类法的任何和所有选定术语。有什么想法吗?谢谢

1 个回复
最合适的回答,由SO网友:Milo 整理而成

每个术语都有一个term_id, 每个都有一个parent. 子条款ParentTerm A 将有一个parent 值等于ParentTerm A\'sterm_id, 因此,给定父项的ID,可以测试每个项,以查看parent 字段匹配-

$parent_term_id = 42;    
foreach ( $terms as $term ) {
    if( $term->parent == $parent_term_id )
        $listing_filters[] = $term->name;
}

结束

相关推荐

Taxonomy Overview Page?

我正在寻找一种创建分类法概述页面的方法。因此,假设您在某个页面(domain.com/my\\u tax/myterm)上,它会在“myterm”类别中显示不同的内容类型。帖子、页面和自定义内容类型。所有这些都通过了分类学。php。我可以很好地完成这项工作,但当查看内容类型“Posts”的分类法归档时,它最终会转到此概述页面,而不是一个工作的Posts归档。因此,目前无法查看一种内容类型的所有帖子并获得一个工作归档。我尝试添加<?php if ( is_post_type_archive() ) {