Showing upcoming events (including todays event)?

I have the following loop that doesn’t quite work. I want to only show upcoming events including events that are taking place today.

At the moment it shows all the upcoming posts but also the posts before todays date.

Read More

Where am I going wrong?

    <?php 
    $today = date('Ymd');
    $portfolioloop = new WP_Query(
    array(
    'post__not_in' => array(4269),
    'paged' => get_query_var('paged'),
    'meta_key' => the_date(),
    'post_status' => 'future,publish',
    'post_type' => 'whatson',
    'exclude' => '4269',
    'posts_per_page' => 20,
    'order' => 'ASC',
    'meta_query' => array(
    array('key' => the_date(),
    'value' => $today,
    'compare' => '>=')
    ),
    )); ?>
    <?php while ( $portfolioloop->have_posts() ) : $portfolioloop->the_post(); ?>
    // content here.
    <?php endwhile; // end of the loop.  ?>

I’ll give this a go:

// Create a new filtering function that will add our where clause to the query
function filter_where( $where = '' ) {
    $today = date('Ymd');
    $where .= " AND post_date >= '$today' ";
    return $where;
}

add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );
remove_filter( 'posts_where', 'filter_where' );

                <?php 
                $query = new WP_Query(
                array(
                    'post__not_in' => array(4269),
                    'paged' => get_query_var('paged'),
                    'post_type' => 'whatson',
                    'exclude' => '4269',
                    'posts_per_page' => 20,
                    'order' => 'ASC'
                )); ?>

Related posts

Leave a Reply

1 comment

  1. I think this might work:

    <?php 
    
    function filter_where( $where = '' ) {
    $where .= " AND post_date >= '" . date("Y-m-d") . "'";
    return $where;
    }
    
    add_filter( 'posts_where', 'filter_where' );
    
    $query = new WP_Query(
        array(
            'post__not_in' => array(4269),
            'paged' => get_query_var('paged'),
            'post_type' => 'whatson',
            'exclude' => '4269',
            'posts_per_page' => 20,
            'order' => 'ASC'
        )
    );
    
    remove_filter( 'posts_where', 'filter_where' );
    ?>