从 WooCommerce 3+ 中的轮播中排除“隐藏”查询的产品
Posted
技术标签:
【中文标题】从 WooCommerce 3+ 中的轮播中排除“隐藏”查询的产品【英文标题】:Exclude 'hidden' queried products from carousel in WooCommerce 3+ 【发布时间】:2019-09-15 04:58:05 【问题描述】:我有一个轮播插件,它可以做各种事情,它只显示已发布的产品:
$common_args = array(
'post_type' => 'product',
'posts_per_page' => !empty($posts_per_page) ? intval($posts_per_page) : 4,
'post_status' => 'publish',
'ignore_sticky_posts' => true,
'no_found_rows' => true,
);
但我需要它来排除“隐藏”产品,这些产品在技术上仍然发布,只是不可见。或者,如果它排除特定类别的产品(我所有隐藏的产品都在两个特定类别中),我可以使用它。
请问我该怎么做?
【问题讨论】:
【参考方案1】:从 Woocommerce 3 开始,产品可见性由分类法 product_visibility
处理,用于术语 exclude-from-catalog
,因此您需要添加如下税务查询:
$common_args = array(
'post_type' => 'product',
'posts_per_page' => !empty($posts_per_page) ? intval($posts_per_page) : 4,
'post_status' => 'publish',
'ignore_sticky_posts' => true,
'no_found_rows' => true,
'tax_query' => array( array(
'taxonomy' => 'product_visibility',
'terms' => array('exclude-from-catalog'),
'field' => 'name',
'operator' => 'NOT IN',
) ),
);
它应该工作。用 WordPress get_post()
函数测试了这个参数数组(它有效)。
相关:Database changes for products in woocommerce 3
【讨论】:
@Lyall 我已经在WP_Query
上使用get_posts()
进行了测试,它运行良好……
你说得对,它工作得很好,我只需要在我的特定设置中解决问题。所有排序,感谢您的快速回答:)以上是关于从 WooCommerce 3+ 中的轮播中排除“隐藏”查询的产品的主要内容,如果未能解决你的问题,请参考以下文章