在 Woocommerce 上的 WP_query 中获取目录中可见的产品

Posted

技术标签:

【中文标题】在 Woocommerce 上的 WP_query 中获取目录中可见的产品【英文标题】:Get products which are visible in catalog in a WP_query on Woocommerce 【发布时间】:2019-05-08 13:29:01 【问题描述】:

我目前正在尝试获取目录中可见的类别页面中的所有产品。我已经在这里尝试过,但我没有通过此查询获得任何产品:

$args = array(
    'post_type'   => 'product',
    'product_cat' => get_queried_object()->slug,
    'meta_query'  => array(
        array(
            'key'     => '_visibility',
            'value'   => array( 'catalog', 'visible' ),
            'compare' => 'IN',
        )
    )
);
$loop = new WP_Query( $args );

var_dump( $loop );

当我删除 meta_query 可见性部分时,我得到了所有产品,包括隐藏的产品,但我只需要可见的产品。这里有什么问题?

【问题讨论】:

【参考方案1】:

这需要改为税务查询(因为从 woocommerce 3 开始,它现在由 product_visibility custom taxonomy 处理)

$loop = new WP_Query(array(
    'post_type'   => 'product',
    'product_cat' => get_queried_object()->slug,
    'tax_query'   => array( array(
        'taxonomy'  => 'product_visibility',
        'terms'     => array( 'exclude-from-catalog' ),
        'field'     => 'name',
        'operator'  => 'NOT IN',
    ) )
) );

var_dump( $loop );

现在应该会更好。

【讨论】:

非常感谢您的帮助!

以上是关于在 Woocommerce 上的 WP_query 中获取目录中可见的产品的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce wp_query 按 ID 获取订单

WP_Query Woocommerce 产品仅属于不同的多个类别 tax_query

如何获取 woocommerce 订阅列表?

如何使用 'post_type' => 'product' 在 WP_Query 循环中显示 ACF

自定义帖子 wp_query 上的分页

使用 WC_Query 获取销售的 WooCommerce 产品