我正在努力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子级的选项。
有没有办法做到这一点?
最合适的回答,由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
论点