Querying Two Custom Post Types with OR Not Working
-
26-04-2021 - |
Вопрос
I'm trying to query two custom post types - I want all research_article
to return, but only events
that are in the future. My events are working as expected, but I'm not getting any research_article posts appearing. What's going wrong here?
$today = date( 'Y-m-d' );
$args = array(
'post_type' => array('research_article', 'events'),
'meta_key' => 'wpcf-date_time',
'post_status' => 'publish',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_query' => array(
array( // THIS ONE WORKS
'key' => 'wpcf-date_time',
'value' => $today,
'compare' => '>=',
'type' => 'DATE',
),
array(
'key' => 'pub_date', // THIS DOESNT WORK
'compare' => 'EXISTS'
),
'relation' => 'OR',
)
);
Решение
So the issue seemed to be with my second meta_query array - instead of checking if pub_date EXISTS, I decided to check if wpcf-date-time DOESNT EXIST:
$today = date( 'Y-m-d' );
$args = array(
'post_type' => array('research_article', 'events'),
'posts_per_page' => 10,
'post_status' => 'publish',
'orderby' => 'meta_value date',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'wpcf-date_time',
'value' => $today,
'compare' => '>=',
'type' => 'DATE',
),
array(
'key' => 'wpcf-date_time',
'compare' => 'NOT EXISTS'
),
'relation' => 'OR',
)
);
Не связан с wordpress.stackexchange