WP_QUERY日期范围结果不匹配循环

时间:2015-01-28 作者:Davies-Barnard

我编写了一个带有日期范围的WP\\u查询。

            $args = array( 
                \'date_query\' => array( 
                    array(
                        \'column\' => \'post_date_gmt\',
                        \'after\' => array(\'year\' => $after[0], \'month\' => $after[1], \'day\' => $after[2])
                    ),
                    array (
                        \'column\' => \'post_date_gmt\',
                        \'before\' => array(\'year\' => $before[0], \'month\' => $before[1], \'day\' => $before[2])
                    )
                ),
                \'posts_per_page\' => -1,
                \'inclusive\' => false,
            );

            $posts = new WP_Query( $args ); 
当我输出sql并在phpmyadmin中运行它时,它可以很好地工作。

SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND ( wp_posts.post_date_gmt > \'2015-01-11 23:59:59\' 
AND wp_posts.post_date_gmt < \'2015-01-17 00:00:00\' ) AND wp_posts.post_type = \'post\' AND (wp_posts.post_status = \'publish\' OR wp_posts.post_status = \'private\') 
ORDER BY wp_posts.post_date DESC
然而,循环打印出更多的帖子

if ( $posts->have_posts() ) : 
   while ( $posts->have_posts() ) : $posts->the_post();
我尝试过使用重置循环功能,但没有成功。我做错了什么。这是在一个试图模拟存档的页面模板中。

谢谢

克里斯

1 个回复
最合适的回答,由SO网友:Anton Timmermans 整理而成

尝试使用运行查询

"suppress_filters" => true
WP_Query 允许在查询运行后添加帖子。found\\u posts是实际查询的帖子数量,post\\u count在运行筛选器后更新。

如果这修复了它,请搜索您的代码(任何活动代码,也请检查网络激活插件)以查找the_postsposts_results 过滤并检查是否是原因。

另一个原因可能是我们在评论中发现的粘性帖子,可以使用

"ignore_sticky_posts" => true
默认情况下,WP\\u Query会将粘性帖子添加到归档文件的第一页,其中is_home() 是真的。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post