您是否可以使用GET_TERM_CHILD隐藏空术语?

时间:2016-06-10 作者:LBF

我正在努力get_term_children 特定术语:

$style_categories = get_term_children( 29, \'product_cat\' ); 

if ( $style_categories ) :

    foreach ( $style_categories as $style ) :

        $child = get_term_by( \'id\', $style, \'product_cat\' );

        echo \'<h3>\' . $child->name . \'</h3>\';

              // post query goes here

    endforeach;

endif;
这是可行的,但当术语为空时,它会显示出来,而且似乎没有hide_empty get\\u term\\u子级的选项。

有没有办法做到这一点?

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

使用get_term_children() 函数没有任何要传递的内容会隐藏空项。您可以在foreach中这样做,因为每个术语都有一个属性,该属性包含分配给它的职位数量:

foreach( $style_categories as $style ) {
    
    $child = get_term_by( \'id\', $style, \'product_cat\' );
    
    // Skip empty terms
    if( $child->count <= 0 ) {
        continue;
    }
}
现在您正在创建多个查询,更好的解决方案是使用get_terms() 相反

get_terms( [ \'taxonomy\' => \'product_cat\', \'child_of\' => 29] );
get_terms 将隐藏没有帖子的条款,您可以使用hide_empty 论点

相关推荐

GET_THE_TERMS与wp_GET_POST_TERMS中的奇怪结果

我正在尝试制作一个面包屑函数,但有一个小问题。。。使用时:$categories = get_the_terms( $post->ID, \'product_cat\' ); 我得到了一个循环中使用的类别数组,等等。唯一的问题是它是按字母顺序排列的。(我希望它按层次顺序排列。)经过一番挖掘,我发现了一种替代方法,即使用wp\\u get\\u post\\u terms(),但我肯定遗漏了一些东西,因为当我使用此方法时:$categories = wp_get_post_terms( $p