我们当前有每个显示产品的类别列表。
我们想从前端隐藏一些特定类别,因为它们仅用于管理目的。因此,理想情况下,我们要确定包括哪些类别?该代码段如下。
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); ?>
感谢您的帮助
答案 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"]
上获得更多信息。