显示即将举行的活动(包括今天的活动)?

时间:2013-06-27 12:48:12

标签: php wordpress

我有以下循环不太有效。我想只展示即将举行的活动,包括今天发生的活动。

目前它显示了所有即将发布的帖子,但也显示了今天之前的帖子。

我哪里错了?

    <?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.  ?>

我会放手一搏:

// 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'
                )); ?>

1 个答案:

答案 0 :(得分:1)

我认为这可行:

<?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' );
?>