How to do a wp_query using “BETWEEN” with two meta_values?

I’m starting with WordPress, already achieved some queries, but this one… ugh! It’s being a pain to me!

What i want to do is this part of query:

" ... WHERE "VALUE_THAT_I_WANT" BETWEEN event_start_date AND event_end_date ..."

Where “event_start_date” and “event_end_date” are meta keys ( i want to use their values, not mine!)

This is what i had so far..

$tEA = array(
    'post_type' => 'event',
    'meta_key' => $metaKey,
    'orderby' => 'meta_value',
    'order' => $order,
    'posts_per_page' => $postPerPage,
    'meta_query' => array(
        array(
            'key' => $metaKey,
            'value' => $today,
            'compare' => "=",
            'type' => 'DATE'
        ),
        array(
            'key' => '_event_end_time'
        )
    )
);

3 s
3

This should work for you:

$tEA = array(
    'post_type' => 'event',
    // you dont need meta_key as you use meta_query
    //'meta_key' => $metaKey,
    'orderby' => 'meta_value',
    'order' => $order,
    'posts_per_page' => $postPerPage,
    'meta_query' => array(
        array(
            'key' => $metaKey,
            // value should be array of (lower, higher) with BETWEEN
            'value' => array('START_DATE', 'END_DATE'),
            'compare' => 'BETWEEN',
            'type' => 'DATE'
        ),
    )
);

Note that START_DATE and END_DATE should be in MySQL date format YYYY-MM-DD

Leave a Comment