显示特定的WooCommerce分类列表

时间:2018-08-23 04:04:01

标签: php wordpress woocommerce

我们当前有每个显示产品的类别列表。

我们想从前端隐藏一些特定类别,因为它们仅用于管理目的。因此,理想情况下,我们要确定包括哪些类别?该代码段如下。

        Catagories: <?php $terms = get_the_terms( $product_id, 'product_cat' );
$product_cat = array();

foreach ($terms as $term) {
   $product_cat[] .= $term->name;
}

echo implode(', ', $product_cat); ?>

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作。

在$ restricted_cats数组中指定带有该类别的标签的受限类别。然后,您可以检查类别是否在受限类别的数组中。您还可以检查术语id而不是slug,因为两者都是唯一的。

Catagories: <?php $terms = get_the_terms( $product_id, 'product_cat' );
$product_cat = array();
$restricted_cats = array("term-slug", "term-slug2", "term-slug3", "term-slug4")

foreach ($terms as $term) {
   if (!in_array($term->slug, $restricted_cats)) {
      $product_cat[] .= $term->name;
   }
}

echo implode(', ', $product_cat); ?>

答案 1 :(得分:0)

您可以使用Woocommerce的woocommerce_product_subcategories_args过滤器来更改(或不显示)哪些产品猫,因此:

// Remove categories from loop.
function ma_exclude_wlb_loop( $args ) {
    $cats_to_hide = array( 23, 44, 93 );
    if ( !is_admin() ) :
        $myargs = $args["exclude"];
        if ( !$myargs ) $myargs = array();
        if ( !is_array( $myargs ) ) $myargs = explode( ",", $myargs );
        $cats_to_hide = $cats_to_hide;
        $args["exclude"] = array_merge( $cats_to_hide, $myargs );
    endif;
    return $args;
}
add_filter( 'woocommerce_product_subcategories_args', 'ma_exclude_wlb_loop' );

答案 2 :(得分:0)

添加此Woocommerce简码

[woocommerce_product_filter_category include="clothing,shoes,jackets,shirts,shorts" show_thumbnails="yes"]

您可以在此网站https://docs.woocommerce.com/document/woocommerce-product-search/shortcodes/woocommerce_product_filter_category/

上获得更多信息。