1

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',
            )
             );
1
  • Looks sensible to me. I'd probably try and find the SQL that WordPress is using, e.g. from the Query Monitor plugin, and work out what's wrong with it.
    – Rup
    Commented Mar 22, 2021 at 0:10

1 Answer 1

0

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',
            )
        );

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.