DATE_QUERY未返回日期范围内的某些帖子

时间:2015-03-04 作者:Chris Rae

我用get\\u posts的date\\u查询参数得到了一些非常奇怪的结果。我有一个职位:

date(\'Y-m-d H:i\', get_post_time(\'U\', false, $postid))
返回值:

2014-04-03 10:42
get\\U posts返回此post时,返回的参数如下:

$args = array(
    \'post_type\' => \'post\',
    \'cat\' => 41,
    \'fields\' => \'ids\'
);
但不是这些:

$args = array(
    \'post_type\' => \'post\',
    \'date_query\' => array(
        \'after\' => \'1980-01-01\',
        \'before\' => \'2100-01-01\',
    ),
    \'cat\' => 41,
    \'fields\' => \'ids\',
);
其他帖子似乎恢复良好。会发生什么事?date\\u query是否查询其他内容以获取\\u post\\u时间?

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

您的语法对于date_query. 它应该是一个数组中的一个数组,而不仅仅是一个数组。

我还怀疑您的问题可能与PHP有关,而与Wordpress无关。

你的before 日期无效。PHP只支持1901年12月13日至2038年1月19日之间的日期,因此您的日期需要介于这两个日期之间。有关参考,请参见date

您还需要包括“inclusive”参数并将其设置为true 用于精确匹配

您的查询应该类似于

$args = array(
\'post_type\' => \'post\',
\'date_query\' => array(
    array(
        \'after\' => \'1980-01-01\',
        \'before\' => \'2038-01-01\',
        \'inclusive\' => true,
    ),
),
\'cat\' => 41,
\'fields\' => \'ids\',
);

结束

相关推荐