我设置了一个查询来比较一些自定义字段的开始日期和结束日期。岗位需要填写开始日期;但是,结束日期不是。这会导致以下问题:
query_posts(
array (
\'meta_query\' =>
array(
array(
\'key\' => \'start_date\',
\'value\' => $date,
\'compare\' => \'>=\',
\'type\' => \'DATE\',
),
array(
\'key\' => \'end_date\',
\'value\' => $enddate,
\'compare\' => \'<=\',
\'type\' => \'DATE\',
),
)
)
);
当在帖子上设置了结束日期时,此查询工作正常;然而,如果没有,该帖子将根本不会被查询。在执行<;=日期比较?
最合适的回答,由SO网友:s_ha_dum 整理而成
我知道如何在纯SQL中做到这一点,但我无法让WP\\U查询以所需的方式嵌套条件。
如果可以接受的话,最简单的方法就是在数据保存到数据库时指定一个任意的未来结束日期。类似于strtotime("2038-01-01")
.
这有点像黑客,但核心函数应该可以工作,您不需要编写自己的SQL。使用这样的固定日期意味着,如果2038年到来,并且您发现需要,您可以很容易地找到并更改到期日期,或者如果WP_Query
修补以处理所需的查询逻辑。