I want to select posts and custom post type with a specific meta value (mb_home!=0), of last week and ORDER them by mb_home. If they have the same mb_home value, I want them to be ordered by date. Both order have to be DESC.
I am using this query but it just does not work:
$query = new WP_Query( array( 'post_type' => array ('post', 'aggregato'), 'posts_per_page' => 13, 'post__not_in' => $linked_posts, 'meta_key' => 'mb_home', 'orderby' => 'meta_value_num date', 'order' => 'DESC', 'meta_query' => array( array( 'key' => 'mb_home', 'value' => '0', 'compare' => '>', ) ), 'date_query' => array( 'after' => '1 week ago', ) ));
If I drop
date and use
'order by' => 'meta_value_num' the query gives me back the results correctly ordered by mb_home DESC. But if they have the same mb_home value, they are ordered by date ASC.
If I try to change the way I order stuff, using this syntax:
'orderby' => array( 'meta_value_num' => 'DESC', 'date' => 'DESC' ),
instead of the above orderby and order statements, it just falls back to date DESC ignoring completely the mb_home value.
All these results are the same with
meta_value instead of
meta_value_num. Nothing changes.
Please, give me some pointers, because I've been over this for almost a month, trying everything but not succeeding.
Oh masters of wordpress! I invoke your help!!