Created
October 4, 2016 15:22
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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