从 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+ 中的轮播中排除“隐藏”查询的产品的主要内容,如果未能解决你的问题,请参考以下文章

在轮播中反应原生视频

单击下一个/上一个图像时,将滑块移动到反应光滑的轮播中

如何从 vuetify 轮播中向上移动箭头

bootstrap 获得轮播中的索引 getActiveIndex

[JavaScript]记录完成轮播过程中的几个点

我正在尝试将 Vue 数据实现到 Bootstrap 轮播中