Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示特定类别的列表_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 显示特定类别的列表

Php 显示特定类别的列表,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我们目前有一个显示的每种产品的类别列表 我们想从前端隐藏一些特定类别,因为它们仅用于管理目的。理想情况下,我们想要确定哪些类别包括在内?下面是代码片段 Catagories: <?php $terms = get_the_terms( $product_id, 'product_cat' ); $product_cat = array(); foreach ($terms as $term) { $product_cat[] .= $term->name; }

我们目前有一个显示的每种产品的类别列表

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

        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); ?>
类别:

谢谢你的帮助

你可以这样做

在$restricted_cats数组中指定具有该类别的slug的受限类别。然后,您可以检查类别是否在受限类别数组中。您还可以检查术语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); ?>
类别:

您可以使用Woocommerce的
Woocommerce\u product\u subcategories\u 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' );

添加此短代码

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

您可以在本网站获得更多信息

非常感谢!尽管它排除了该类别,但仍然有效。如果我想指定包含哪些类别,我将如何做?我们想排除的比包含的要多,所以这会使事情变得更容易。更不用说我自己想出了一个解决方案。它所需要的只是一个“别的”,这根本不是我们想要的。谢谢你的建议。这是另一个需要考虑的问题,但为了我们的目的,我认为格雷戈的解决方案最适合这个工作。