These queries use an ACF field named start_datetime
to query today’s events, this week’s events and this month’s events. You then feed the $args
variable to your new WP_Query
Today’s events
$today = date('Ymd');
$args = array(
'post_type' => 'events',
'meta_key' => 'start_datetime',
'posts_per_page' => 18,
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'start_datetime',
'value' => $today,
'compare' => '=',
'type' => 'DATE'
)
)
);
This week’s events
$day = date('w');
$week_end = date('Ymd', strtotime('+' . (6 - $day) . ' days'));
$today = date('Ymd');
$args = array(
'post_type' => 'events',
'meta_key' => 'start_datetime',
'posts_per_page' => 18,
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_datetime',
'value' => $today,
'compare' => '>=',
'type' => 'DATE'
),
array(
'key' => 'start_datetime',
'value' => $week_end,
'compare' => '<=',
'type' => 'DATE'
)
)
);
This month’s events
$today = date('Y-m-d');
$end_date = date( 'Y-m-t' );
$args = array(
'post_type' => 'events',
'meta_key' => 'start_datetime',
'posts_per_page' => 18,
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_datetime',
'value' => $today,
'compare' => '>=',
),
array(
'key' => 'start_datetime',
'value' => $end_date,
'compare' => '<=',
),
),
);