我用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时间?
最合适的回答,由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\',
);