WP_QUERY返回比SQL查询更多的结果。帖子计数>找到的帖子

时间:2017-09-27 作者:Adam

如果将fields参数指定为“ids”,则我的WP\\U查询工作正常(但我需要所有文件)。

    $query3 = new WP_Query(array(\'post_type\' => array(\'post\'),
    \'posts_per_page\' => -1,
    \'fields\'         => \'ids\',
    \'date_query\' => array(
        array(
            \'column\' => \'post_modified_gmt\',
            \'after\'  => \'1 month ago\'
            )
        )
));

  [request] => SELECT   x_posts.ID FROM x_posts  WHERE 1=1  AND ( 
   x_posts.post_modified_gmt > \'2017-08-27 12:02:06\'
 ) AND x_posts.post_type = \'post\' AND (x_posts.post_status = \'publish\')  
 ORDER BY x_posts.post_date DESC 
[post_count] => 14
[found_posts] => 14
[max_num_pages] => 0
[max_num_comment_pages] => 0
如果我不使用fields参数。我明白了。

    [post_count] => 215
    [found_posts] => 14
但SQL查询是正确的。

[request] => SELECT   x_posts.* FROM x_posts  WHERE 1=1  AND ( 
   x_posts.post_modified_gmt > \'2017-08-27 12:02:06\'
 ) AND x_posts.post_type = \'post\' AND (x_posts.post_status = \'publish\')  
 ORDER BY x_posts.post_date DESC 
我怎样才能修复它?

1 个回复
SO网友:Adam

post\\u status=\'publish\'是默认的yo WP\\u查询,因此不需要指定。正如您所看到的,真正的SQL查询是可以的。所有返回的结果均为状态发布。看起来只有post\\u modified\\u gmt>“xxx”是不尊重的。

当前使用结构

 \'fields\'         => \'ids\',
因此,只需获取14个帖子id,然后

 foreach($query3->posts as $id) {
                $post = get_post($id);
 // ...
但我不知道这是否是最佳的方式

结束

相关推荐

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

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