WooCommerce-获取产品子类别

时间:2018-07-16 23:35:31

标签: php wordpress woocommerce

在WooCommerce中,我试图仅获取我创建的特定类别的子类别,称为 collections ,并将其显示在WP_Query中,但是我无法似乎只获得标记为要显示的类别。我可以成功返回所有类别,而不仅仅是返回要设置为显示的特定类别。

我尝试过的事情

我尝试将get_termsproduct_cat分类法结合使用,但无济于事,get_categories也是如此。我得到了所有返回的类别,而不仅仅是返回产品标记为要显示的类别。我已经尝试了几乎所有其他获得类别的方法,但仍然无济于事。

WP_Query

   <ul class="product-slider">
    <?php

    $args = array(
        'post_type'             => 'product',
        'post_status'           => 'publish',
        'product_cat'              => 'sustainable',
        'ignore_sticky_posts'   => 1,
        'posts_per_page'        => '12'
    );

    $sustain = new WP_Query($args);

    if ($sustain->have_posts()) : while ($sustain->have_posts()) : $sustain->the_post();

        $image = wp_get_attachment_image_src( get_post_thumbnail_id( $loop->post->ID ), 'product-slider-img' );

        ?>

        <div class="single-product">
            <div class="test">
                <div class="product__image">
                    <img src="<?php echo $image[0]; ?>">
                </div>
                <div class="product__meta">
                    <div class="product__name">
                        <?php

                        echo wc_get_product_category_list($product->get_id()) ?>


                        ?>
                    </div>
                    <div class="product__subtitle">
                        <?php echo $product->name; ?>
                    </div>
                    <div class="product__price">
                        £<?php echo $product->price; ?>
                    </div>
                </div>
                <a class="product__link" href="<?php the_permalink(); ?>"></a>
            </div>
        </div>

    <?php

    endwhile; endif;

    wp_reset_query();

    ?>
</ul>

1 个答案:

答案 0 :(得分:0)

product_cat是一种自定义分类法,您不能仅将常规category参数替换为该自定义分类法的名称。看看Codex,您会发现有一个完整的tax_query参数可供使用。

在您的示例中,您应将'product_cat' => 'sustainable',替换为以下内容:

'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
        ),
    ),

注意:这是理论,由于我现在不在办公桌旁,因此我无法提供经过测试的示例。