我有以下循环不太有效。我想只展示即将举行的活动,包括今天发生的活动。
目前它显示了所有即将发布的帖子,但也显示了今天之前的帖子。
我哪里错了?
<?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'
)); ?>
答案 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' );
?>