Skip to content

Instantly share code, notes, and snippets.

@joshfeck
Created October 4, 2016 15:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshfeck/103efd299ce615188e978293a1254eeb to your computer and use it in GitHub Desktop.
Save joshfeck/103efd299ce615188e978293a1254eeb to your computer and use it in GitHub Desktop.
Query Event Espresso events and order by start date time. You can use this in a custom template for displaying a list of Event Espresso events.
<?php
function my_event_list_query_template_function( $query ) {
if ( ( $query->is_main_query() ) && ( 'espresso_events' == get_post_type() ) ){
$query->set( 'posts_per_page', 10 ); // or other value
add_filter( 'posts_fields', 'my_posts_fields' );
add_filter( 'posts_join', 'my_posts_join' );
add_filter( 'posts_where', 'my_posts_where' );
add_filter( 'posts_orderby', 'my_posts_orderby' );
}
}
function my_posts_fields( $sql ) {
$sql .= ', ' . EEM_Datetime::instance()->table() . '.* ' ;
$sql .= ', MIN( ' . EEM_Datetime::instance()->table() . '.DTT_EVT_start ) as event_start_date ' ;
return $sql;
}
function my_posts_join( $sql ) {
$sql .= ' INNER JOIN ' . EEM_Datetime::instance()->table() . ' ON ( ' . EEM_Event::instance()->table() . '.ID = ' . EEM_Datetime::instance()->table() . '.' . EEM_Event::instance()->primary_key_name() . ' ) ';
return $sql;
}
function my_posts_where( $sql ) {
$sql .= ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_end > "' . current_time( 'mysql', true ) . '" ';
return $sql;
}
function my_posts_orderby( $sql ) {
$sql = ' event_start_date ASC ';
return $sql;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment