douyongdao4046 2018-12-06 19:30
浏览 114
已采纳

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

I'm currently trying to get all products in a category page which are visible in catalog. I've tried this here but I'm getting no products with this query:

$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 );

When I remove the meta_query visibility part I'm getting all products including the hidden ones but I just need the visible ones. Whats wrong here?

  • 写回答

1条回答 默认 最新

  • dongqiao8421 2018-12-06 23:43
    关注

    This need to be a tax query instead (as since woocommerce 3 it is now handled by 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 );
    

    This should better work now.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?