Get products which are visible in catalog in a WP_query on Woocommerce

[亡魂溺海] 提交于 2020-01-03 19:24:20

问题


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:


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.



来源:https://stackoverflow.com/questions/53658379/get-products-which-are-visible-in-catalog-in-a-wp-query-on-woocommerce

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!