I know many people asked for this question but I didn’t find a proper way to do it. How to add a simple meta_query (product_cat) before the execution of the shop page’s query.
Maybe by using a filter ?
Regards,
Adrien
I know many people asked for this question but I didn’t find a proper way to do it. How to add a simple meta_query (product_cat) before the execution of the shop page’s query.
Maybe by using a filter ?
Regards,
Adrien
You must be logged in to post a comment.
The shop page is actually an archive page for posts of type ‘product’. Its template is in woocommerce/archive-product.php.
You need to use the pre_get_posts action to preprocess the query before the loop, conditional_tags to recognize that you are in the product archive page, and a taxonomy query to filter the product categories, which belong to the taxonomy ‘product_cat’.
For example, the following (placed in your theme’s functions.php or in a plugin) will display only products with product category ‘type-1’:
You can also exclude categories by using ‘operator’ => NOT IN, and ‘terms’ can be an array of product category slugs.
A good introduction to query customization is http://www.billerickson.net/customize-the-wordpress-query/
This worked for me:
If you want to show products from a specific category on your shop page you can insert the below code in your themes
function.php
file.