1

我有以下不太有效的循环。我只想显示即将发生的事件,包括今天发生的事件。

目前,它显示所有即将发布的帖子以及今天日期之前的帖子。

我哪里错了?

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

1 回答 1

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' );
?>
于 2013-06-27T13:35:54.283 回答