I have a query as follows:
$wp_query = new WP_Query(
'meta_key' => 'end_date',
'meta_value' => 'today',
'meta_compare' => '>=',
'post_type' => 'vehicle'
);
I want to show only those posts of the vehicle post type that have the meta key end_date which contains a date that is later than today’s date.
How can this be accomplished?
First, your date format has to be in descending order from largest to smallest units, i.e.: year, month, day, hour, minute, second, etc., otherwise MySQL can’t query or order on the field. In this example I use year – month – day:
$today = date( 'Y-m-d' );
$args = array(
'post_type' => 'vehicle',
'meta_query' => array(
array(
'key' => 'end_date',
'value' => $today,
'compare' => '>=',
'type' => 'DATE'
)
)
):
$query = new WP_Query( $args );