Unfortunately, meta queries do not support a combination of AND
& OR
. But what you can do, is make two queries, one for each rule, then combine the results.
$group_1 = get_posts(
array(
'posts_per_page' => -1,
'fields' => 'ids',
'meta_query' => array (
array (
'key' => 'field1',
'value' => 'data1',
),
array (
'key' => 'field2',
'value' => 'data2',
),
),
)
);
$group_2 = get_posts(
array(
'posts_per_page' => -1,
'fields' => 'ids',
'meta_query' => array (
array (
'key' => 'field1',
'value' => 'data2',
),
array (
'key' => 'field2',
'value' => 'data1',
),
),
)
);
$query = new WP_Query(
array(
'post__in' => array_merge( $group_1, $group_2 ),
)
);