【问题标题】:Exclude Products Category from loops shortcode Woocommerce从循环短代码 Woocommerce 中排除产品类别
【发布时间】:2021-09-11 17:29:12
【问题描述】:

我正在尝试排除或删除“自定义”产品类别,它在商店页面上也可以正常工作,在主页中,当我尝试从简码中排除时,该类别的产品没有显示,而是在另一个简码中,同一页面(主页)当我尝试在另一个容器中仅显示另一个类别的产品时它给我带来了一些问题它不起作用它向我显示来自“NEWEST”的所有产品,不仅来自我过滤的特定类别,可以有人帮我解决它吗? 谢谢

add_action( 'woocommerce_shortcode_products_query' , 'exclude_cat_shortcodes');
 
function exclude_cat_shortcodes($query_args){
 
    $query_args['tax_query'] =  array(array( 
            'taxonomy' => 'product_cat', 
            'field' => 'slug', 
            'terms' => 'custom', // slug category that I want to exclude
            'operator' => 'NOT IN'
        )); 
 
    return $query_args;
}

【问题讨论】:

  • 当使用NOT IN/IN 操作符时,terms 应该是一个数组。而不是'terms' => 'custom''terms' => ['custom']
  • 非常感谢您的评论,我按照您说的尝试过,但不幸的是没有工作,同样的问题!
  • 分类是product_cat还是别的什么?
  • 是的,代码可以正常工作,但不能正常工作,当我想展示另一个类别的产品时,让我们在带有短代码的容器上说“夏季销售”类别,它不工作它不t 显示与该类别相关的产品(“夏季销售”),但它向我显示了按最新排序的所有类别的所有产品,当我删除这部分代码时,我试图显示的短代码,例如“夏季销售”,工作完美?,!
  • 哦,好吧。发生这种情况是因为您覆盖了 tax_query 属性,使用代码创建了一个答案

标签: php wordpress woocommerce hook


【解决方案1】:

要防止 tax_query 覆盖,请执行此操作

$query_args['tax_query'][] = array( 
    'taxonomy' => 'product_cat', 
    'field' => 'slug', 
    'terms' => ['custom'], // slug category that I want to exclude
    'operator' => 'NOT IN'
); 

【讨论】:

    【解决方案2】:

    要从查询中排除类别或帖子类型,请尝试将 slug 类别放在数组中?这是为了允许排除多个类别/帖子类型。

    变化:

    'terms' => 'custom'

    到:

    'terms' => ['custom']

    【讨论】:

    • 非常感谢您的回答,我按照您说的进行了尝试,但不幸的是没有工作,同样的问题! – ,
    • 代码可以正常工作,但不能正常工作,当我想在带有短代码的容器上显示另一个类别的产品时,比如说“夏季销售”类别,它不工作它不显示相关产品到那个类别(“夏季销售”),但它向我展示了按最新订购的所有类别的所有产品,当我删除这部分代码时,我试图显示的短代码,例如“夏季销售”,工作得很好?,!
    • 也许是由于 product_cat ?您能否将功能分配给每个 product_category 而不是尝试从您不想要的功能中排除?
    • 非常感谢您的宝贵时间,我将此问题标记为已解决,Buttered_Toast 给了我解决方案
    猜你喜欢
    • 2019-02-06
    • 2018-05-17
    • 2018-05-18
    • 2019-08-05
    • 2018-11-09
    • 2013-08-11
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    相关资源
    最近更新 更多