更新到Wordpress 4.1后,我注意到我的一个更复杂的post查询已经停止工作。它从一个事件帖子类型进行查询,并返回标准时间戳为今天午夜后的帖子,或结束时间戳为今天午夜后的帖子(对于多日事件)。以下是查询:
query_posts(
array(
\'post_type\' => \'events\',
\'showposts\' => -1,
\'order\' => \'ASC\',
\'orderby\' => \'meta_value_num\',
\'meta_key\' => \'_ecmb_datetime\',
\'meta_value\' => strtotime(\'today midnight\'),
\'meta_compare\' => \'>=\',
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'_ecmb_datetime_end\',
\'value\' => strtotime(\'today midnight\'),
\'compare\' => \'>=\'
)
)
)
);
我根据
this answer. 我看了一下
this answer 但我没有使用
\'meta_key\' => \'meta_value\'
, 对于回答者说“如果你有一个meta\\u查询参数,就不需要meta\\u键”的部分,我不确定这是否适用于场景,因为我确实想查询这两个键/值。
非常感谢您的帮助!!
SO网友:Jody Heavener
我根据this answer.
我觉得这已经不是解决问题的办法了。。。我重新格式化了查询,如下所示:
query_posts(
array(
\'post_type\' => \'events\',
\'showposts\' => -1,
\'order\' => \'ASC\',
\'orderby\' => \'meta_value_num\',
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'_ecmb_datetime\',
\'value\' => strtotime(\'today midnight\'),
\'compare\' => \'>=\'
),
array(
\'key\' => \'_ecmb_datetime_end\',
\'value\' => strtotime(\'today midnight\'),
\'compare\' => \'>=\'
)
)
)
);
这似乎解决了问题!如果有任何其他建议,请随时分享:)