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 に答える