I have created a shortcode to display products by category with the query below:
$atts = shortcode_atts( array (
\'type\' => \'product\',
\'po
When you use custom sorting for Woocommerce products, it set some values for each product in wp_posts
database table under menu_order
column.
Then you just need to add 'orderby' => 'menu_order',
in your WP_Query
, so in your code:
$atts = shortcode_atts( array (
'type' => 'product',
'posts' => -1,
'category' => '',
), $atts, 'list_products' );
$query = new WP_Query( array(
'post_type' => $atts['type'],
'posts_per_page' => $atts['posts'],
'tax_query' => array( array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $atts['category'],
) ),
'orderby' => 'menu_order',
// 'order' => 'DESC',
) );
It will work (by default the order
sorting argument is set to ASC
normally).