digisavvy
6/19/2016 - 8:47 AM

From https://codex.wordpress.org/Class_Reference/WP_Meta_Query

add_action( 'pre_get_posts', 'some_like_it_neat_filter_expired_posts' );

function some_like_it_neat_filter_expired_posts( $query ) {

	// doesn't affect admin screens
    if ( is_admin() )
        return;
    // check for main query
	$key = 'some_like_it_neat_expire_post';
	$expire_date = get_post_meta( get_the_id(), $key, true );
	$today = current_time( 'timestamp', true );

    if ( $query->is_main_query() && ( $expire_date !='' )  ) {

        //filter out expired posts
        $metaquery = array(
            array(
                 'key' => 'some_like_it_neat_expire_post',
                 'value' => $key,
                 'compare' => '<',
                 'type' => 'NUMERIC',
            )
        );
        $query->set( 'meta_query', $metaquery );
    }
}