CPT Event Queries
2020-07-20
Custom Loops For Events
Get all events ordered by 'Start Date' custom field
$event_query = new WP_Query(array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value',
'order' => 'ASC',
));
Get all events ordered by 'Start Date' custom field where 'Start Date' is in the future
$event_past_query = new WP_Query(array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_value' => date( "Ymd" ),
'meta_compare' => '>',
));
Get all events ordered by 'Start Date' custom field where 'Start Date' is in the past
$event_past_query = new WP_Query(array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_value' => date( "Ymd" ),
'meta_compare' => '<',
));
Get all events with custom taxonomy 'event-category' , where 'event-category' id = 8
$event_featured_query = new WP_Query(array(
'post_type' => 'event',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'event-category', // taxonomy name
'field' => 'term_id', // term_id, slug or name
'terms' => 8, // term id, term slug or term name
)
)
));
Get all events published before today
$today = getdate();
$event_past_query = new WP_Query(array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'date_query' => array(
array(
'before' => array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
),
)
));
Get all events published today
$today = getdate();
$event_past_query = new WP_Query(array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'date_query' => array(
array(
'before' => array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
),
)
));
Get all events published between 2 dates
$today = getdate();
$event_past_query = new WP_Query(array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'date_query' => array(
array(
'after' => 'January 1st, 2013',
'before' => array(
'year' => 2013,
'month' => 2,
'day' => 28,
),
'inclusive' => true,
),
)
));
Get all compositions ordered by year latest to oldest where year is an ACF field
$args = array(
'post_type' => 'compositions',
'genres' => $term->slug,
'meta_key' => 'year',
'orderby' => 'meta_value_num',
'order' => 'DESC',
);
$query = new WP_Query( $args ); ?>