Php 在日期之间获取帖子
我需要提取wordpress内部的所有帖子,这些帖子在过去6个月到今天之间已经发布 我正在使用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'
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';
date(发布日期)<'2017-03-09'
,但在WP\u查询中,如果'inclusive'=>true
小于或等于2017-03-09date(发布日期)='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'