问题
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