I need to create a very complex post query, but I don't know if such a query can exist, or if I have to write PHP code to combine the results of two different queries...
Let me please describe the situation first, and then write what I've done so far.
So, I need to return results from a CPT. The CPT has its own taxonomy, where I've inserted the necessary terms. The terms have to do with different genre of the CPT itself. There is a specific term, that I don't want results from, there is the majority of the terms that I want to retrieve the results of a given date, and there are 3 specific terms, that I want results from the last 5 days of that same given date.
If that was the case, I'd simply write two different queries, and merge the results in a single array for display.
The problem is that ALL returned posts (the ones of that given date, and those from the last 5 days) need to be sorted by a custom field. In my individual queries I took that sorting into consideration using the appropriate orderby arguements, but when combined, the total sorting is gone, because I get the results of the first query sorted alone, and then the results of the second query sorted alone; where I need them to be sorted combined. So let me write the code of the queries...
This is the first excluding the 4 specific terms:
$args1 = array(
'post_type' => 'frontpage',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_key' => 'frontpage_order',
'posts_per_page' => -1,
'date_query' => array(
array(
'year' => date('Y', $date),
'month' => date('m', $date),
'day' => date('d', $date),
),
),
'tax_query' => array(
array(
'taxonomy' => 'newspaper_genre',
'field' => 'term_id',
'terms' => array(
7670,
7674,
7684,
7686,
),
'operator' => 'NOT IN',
),
),
);
And the second that includes only the 3 specific terms:
$args2 = array(
'post_type' => 'frontpage',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_key' => 'frontpage_order',
'posts_per_page' => -1,
'date_query' => array(
array(
'after' => array(
'year' => date('Y', $date_minus_five),
'month' => date('m', $date_minus_five),
'day' => date('d', $date_minus_five),
),
'before' => array(
'year' => date('Y', $date),
'month' => date('m', $date),
'day' => date('d', $date),
),
'inclusive' => true,
),
),
'tax_query' => array(
array(
'taxonomy' => 'newspaper_genre',
'field' => 'term_id',
'terms' => array(
7674,
7684,
7686,
),
'operator' => 'IN',
),
),
);
So, the question is, am I missing a query setup where I can somehow combine specific date_query params with speecific tax_query params, and also other date_query params with other tax_query params and all these in a single query?
Or do I have to merge, the two retrieved resultsets, and then redo the sorting programmatically?
TIA