仅显示WooCommerce主要产品类别

时间:2017-07-21 14:06:29

标签: php wordpress woocommerce categories product

所以这是我为视觉作曲家制作的短代码。它存储了我的woocommerce类别,但我无法想象如何阻止它显示子类别并只显示主要类别。

有什么想法吗?

由于

<?php //wp_enqueue_script(array('jquery', 'owl-carousel'));
   $count = 0;
   $term_args = array('hide_empty' => $empty , 'number' => $num , 'order_by' => $sort , 'order' => $order);
   //if( $cat ) $query_args['category_name'] = $cat;
   //echo balanceTags($cat); exit('sssss');
   $terms = get_terms( 'product_cat', $term_args) ; 
   //printr($terms);
   ob_start() ;?>

<section id="featureCat2" class="row contentRowPad">
<div class="container">
    <h3 class="heading"><?php echo balanceTags($title); ?></h3>
<?php if ( ! empty( $terms ) && ! is_wp_error( $terms ) ):?>
    <div class="row m0">

    <?php foreach ( $terms as $term ) :
            $meta = _WSH()->get_term_meta( '_sh_product_cat_settings', $term->term_id );//printr($meta);
    ?>

        <div class="col-sm-3">
            <div class="row category2 text-center">
                <div class="row m0 imgHov">
                <?php   $thumbnail_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true ); ?>
                    <?php echo wp_get_attachment_image( $thumbnail_id, '292x198' ); ?>
                    <div class="hovArea row m0">
                        <a href="<?php echo esc_url(get_term_link($term));  ?>"><?php esc_html_e('shop now ', 'furniture');?><i class="fa fa-caret-right"></i></a>
                    </div>
                </div>
                <div class="row m0">
                    <h5 class="heading"><?php echo balanceTags($term->name);?></h5>
                    <ul class="list-unstyled black-color">
                    <?php $query = get_posts(array('showposts'=>4, 'post_type'=>'product', 'product_cat'=>$term->slug, 'order'=>'DESC')); //printr($query);?>
                        <?php if( $query )
                        foreach( $query as $qu ): ?>
                            <li><a href="<?php echo get_permalink($qu->ID); ?>" title="<?php echo get_the_title($qu->ID); ?>"><?php echo get_the_title($qu->ID); ?></a></li>
                        <?php endforeach; ?>
                    </ul>
                </div>
            </div>
        </div>

        <?php endforeach;?>

    </div>

    <?php endif;?>

</div>
</section>

<?php return ob_get_clean();

1 个答案:

答案 0 :(得分:1)

要仅显示主要产品类别,您需要以这种方式添加 'parent' 参数:

$term_args = array(
    'parent' => 0,
    'hide_empty' => $empty , 
    'number' => $num , 
    'order_by' => $sort , 
    'order' => $order,
);

$terms = get_terms( 'product_cat', $term_args);

然后,您将只获得没有子类别的主要产品类别。