GET_TERMS:确定分类术语是否有子项

时间:2014-11-18 作者:user1374796

我想确定一个分类术语是否有子项。请参见下面的标记,我将解释我的意思:

<?php
$terms = get_terms("wpsc_product_category");
if ( !empty( $terms ) && !is_wp_error( $terms ) ){
    foreach( get_terms( \'wpsc_product_category\', array( \'hide_empty\' => false, \'parent\' => 0 ) ) as $parent_term ) { ?>
    <li class="header-menu-item" data-hook="<?php echo $parent_term->slug; ?>">
        <a href="<?php echo home_url(); ?>/products/<?php echo $parent_term->slug; ?>"><?php echo $parent_term->name; ?></a>                
    </li>
    <?php }
} ?>
因此,这将输出wpsc_product_category 分类法,但我想确定分类法术语是否有子项,如果有,请添加parent 分类至相关header-menu-item 因此,我可以将jquery函数附加到它。我不确定这是否可行?如有任何建议,将不胜感激!

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

这个get_term_children function 应该在这里有所帮助。

这将返回一个数组,其中要么包含子项,要么为空。在循环时检查此数组是否真实,然后可以确定是否添加该类。

<?php
    $terms = get_terms(\'wpsc_product_category\');
    if ( !empty( $terms ) && !is_wp_error( $terms ) ){
    foreach( get_terms( \'wpsc_product_category\', array( \'hide_empty\' => false, \'parent\' => 0 ) ) as $parent_term ) {
        $term_children = get_term_children($parent_term->term_id, \'wpsc_product_category\'); ?>
        <li class="header-menu-item<?php echo ($term_children ? \' parent\' : \'\'); ?>" data-hook="<?php echo $parent_term->slug; ?>">
            <a href="<?php echo home_url(); ?>/products/<?php echo $parent_term->slug; ?>"><?php echo $parent_term->name; ?></a>                
        </li>
    <?php }
} ?>

SO网友:pwbred

您可以尝试利用get_term_children 生成该分类法的所有子级的数组,然后检查empty()。

由于它返回一个空数组,您应该能够执行以下操作:

(您需要找出术语的id,它是一个数字,并将其替换为下面的$term\\u id变量)

$term_id = 2
$taxonomy_name = \'wpsc_product_category\';
$terms = get_term_children( $term_id, $taxonomy_name );

if ( !empty( $terms ) && !is_wp_error( $terms ) ){
 // do your stuff
}

结束

相关推荐

使用Get_Terms()显示空的分类术语

我有如下功能设置:<?php $terms = get_terms(\"wpsc_product_category\"); if ( !empty( $terms ) && !is_wp_error( $terms ) ){ foreach ( $terms as $term ) { ?> <li class=\"calendar-filter-menu-item\" data-filter=\".<?php ec