Skip to content

Instantly share code, notes, and snippets.

@joshfeck
Created June 6, 2017 18:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshfeck/ae206b13b751743b08137e72dc55151e to your computer and use it in GitHub Desktop.
Save joshfeck/ae206b13b751743b08137e72dc55151e to your computer and use it in GitHub Desktop.
A WP_Query example for querying Event Espresso event posts, in a page template.
<?php
/**
* Template Name: My Custom Event Display Template
*
*/
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;
}
get_header(); ?>
<div id="primary">
<div id="content" class="clearfix">
<article>
<div class="entry-content clearfix">
<?php
add_filter( 'posts_join', 'my_posts_join' );
add_filter( 'posts_where', 'my_posts_where' );
$args = array(
'post_type' => 'espresso_events',
'post_status' => 'publish',
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page' => 100,
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
$event = $post->EE_Event;
$status = 'ee-event';
if( $event instanceof EE_Event && $event->is_sold_out() ) {
$status .= ' status-sold_out';
}
?>
<div class="<?php echo $status; ?>">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<div class="event_thumb">
<?php the_post_thumbnail( 'thumbnail' ); ?>
<div class="overlay"></div>
</div><!-- .event_thumb -->
</a></h3>
</div><!-- .ee-event -->
<?php endwhile;
else : ?>
<div>No Upcoming Events</div>
<?php endif;
remove_filter( 'posts_join', 'my_posts_join' );
remove_filter( 'posts_where', 'my_posts_where' );
wp_reset_postdata(); ?>
</div><!-- .entry-content -->
</article>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_footer(); ?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment