Just a couple of minor formatting changes: an extra nested array that can be deleted, and the incorrect 'value'
when using the '='
compare operator, and an unnecessary 'relation'
parameter.
$args['meta_query'] = array(
// array( <- an extra array you don't need
'relation' => 'OR',
array(
'relation' => 'AND',
array(
'key' => 'dummy',
'value' => [false, null], // <- When using the '=' compare operator, the value cannot be an array, use an 'IN' compare value instead to see if the value of 'dummy' is 'IN' this array
'compare' => '=',
),
array(
'key' => 'merk',
'value' => $machine['machine_merk'][0],
'compare' => 'LIKE',
),
array(
'key' => 'merk_type',
'value' => $machine['machine_type'][0],
'compare' => '=',
),
),
// array( <-------------------|
// 'relation' => 'AND', <-| Unnecessary as there is only one array being compared here
array(
'key' => 'dummy',
'value' => true,
'compare' => '=',
),
//)
//)
);
So it should look like this:
$args['meta_query'] = array(
'relation' => 'OR',
array(
'relation' => 'AND',
array(
'key' => 'dummy',
'value' => [false, null],
'compare' => 'IN',
),
array(
'key' => 'merk',
'value' => $machine['machine_merk'][0],
'compare' => 'LIKE',
),
array(
'key' => 'merk_type',
'value' => $machine['machine_type'][0],
'compare' => '=',
),
),
array(
'key' => 'dummy',
'value' => true,
'compare' => '=',
),
);
Source: WP_Meta_Query