Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在日期之间获取帖子_Php_Wordpress - Fatal编程技术网

Php 在日期之间获取帖子

Php 在日期之间获取帖子,php,wordpress,Php,Wordpress,我需要提取wordpress内部的所有帖子,这些帖子在过去6个月到今天之间已经发布 我正在使用WP\u Query来执行此操作 $today = new \DateTime(); $prev = new \DateTime(); $interval = new \DateInterval('P6M'); $prev->sub( $interval ); $args = [ 'post_type'

我需要提取wordpress内部的所有帖子,这些帖子在过去6个月到今天之间已经发布

我正在使用
WP\u Query
来执行此操作

    $today      = new \DateTime();
    $prev       = new \DateTime();
    $interval   = new \DateInterval('P6M');

    $prev->sub( $interval );

    $args = [
        'post_type'     => 'post',
        'date_query'    => [
            [
                'before'    => $today->format('Y-m-d H:i:s'),
                'after'     => $prev->format('Y-m-d H:i:s'),
                'inclusive' => true
            ]
        ]
    ];
echo '[POST] Today: ' . $today->format('Y-m-d') . "\n";
echo "[POST] Count:" . $wpQuery->post_count . "\n";
echo '[POST] Start date: ' . $prev->format('Y-m-d') . "\n";
输出

Today: 2017-03-09
Count: 7
Start date: 2016-09-09
+-----------+
| count(ID) |
+-----------+
|      2086 |
+-----------+
如果我在wordpress数据库中进行选择,在相同的截止日期内,我会得到2086行

SELECT COUNT(ID)
    -> FROM wp_posts
    -> WHERE DATE(post_date) >= '2016-09-09' AND DATE(post_date) < '2017-03-09' 
    ->    AND post_type = 'post';
我在WP_查询中做错了什么?为什么我得到了两个不同的结果

谢谢。

选择计数(ID)
SELECT COUNT(ID)
FROM wp_posts
WHERE DATE(post_date) >= '2016-09-09' AND DATE(post_date) < '2017-09-09' 
   AND post_type = 'post';
来自wp_的职位 其中日期(发布日期)>='2016-09-09'和日期(发布日期)<'2017-09-09' 和post_type='post';

  • 在sql查询中,您将发布日期设置为小于2017-03-09
    date(发布日期)<'2017-03-09'
    ,但在WP\u查询中,如果
    'inclusive'=>true
    小于或等于2017-03-09
    date(发布日期)='2016-09-09 15:19:39'和wp_posts.post_date我得到了与post_date相同的结果数据类型?我认为这是你代码new\DateInterval('P6M')中的时间戳
    2017-02-02 09:39:55
    ;这意味着6个月,在查询中,你做了12个月的差异,即1年……因此,你的计数去varyIt并不重要,因为我今天之后没有任何发布的帖子@Naincy。从发布日期介于('2016-09-09 00:00:00'和'2017-09-10 00:00:00')和发布类型='post'之间的wp_帖子中选择计数(ID)@用户1544541您的查询将显示wordpress中的所有帖子。从发布日期介于('2016-09-09 00:00:00'和'2017-09-10 00:00:00'之间)和发布类型为'post'的wp_帖子中选择count(*);我正在统计2016年9月9日至2017年9月9日(为期1年)的所有职位。
    echo $wpQuery->request;
    
    SELECT COUNT(ID) FROM wp_posts WHERE wp_posts.post_date >= '2016-09-09 15:19:39' AND wp_posts.post_date <= '2017-03-09 16:19:39' AND wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish'