我正在处理即将到来的活动列表。我创建了一个自定义的帖子类型,带有一个自定义字段:[event\\u start\\u date]。我还有一些多日扩展事件,由一个额外的自定义字段定义:[event\\u end\\u date]。然后,我有两种事件(示例):
生日开始日期:2012年8月13日,结束日期:“空”假日开始日期:2012年8月5日,结束日期:2012年8月30日我想显示“开始”或“结束日期”晚于当前时间的事件,但我失败了。
我认为我的日期格式是正确的,因为我已经开始使用其他“查询”,它只使用[开始日期]就可以完美地工作。我的问题是合并“OR”end\\u date条件。我尝试使用带有“或关系”的meta\\u查询,但不起作用:
$args = array(
\'post_type\' => \'eventos2\',
\'posts_per_page\' => 4,
\'meta_key\' => \'event_start_date\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\',
\'meta_query\' => array(
\'relation\' => \'OR\',
array(\'key\' => \'event_start_date\',
\'value\' => date(\'Y/m/d\', strtotime(\'-1 day\')),
\'compare\' => \'>=\')
array(\'key\' => \'event_end_date\',
\'value\' => date(\'Y/m/d\', strtotime(\'-1 day\')),
\'compare\' => \'>=\')
)
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$end = DateTime::createFromFormat(\'Y/m/d\', get_field(\'event_end_date\'));
$start = DateTime::createFromFormat(\'Y/m/d\', get_field(\'event_start_date\'));
if ($end !=\'\') { /*print events with start and end_date*/
echo "<li>";
echo the_title(), "</br>";
echo $start-> format(\'Y/m/d\')," ". to . " ". $end-> format(\'Y/m/d\');
echo "</li>";
}
else { /*print events with only start_date*/
echo "<li>";
echo the_title(), "</br>";
echo $start-> format(\'Y/m/d\');
echo "</li>";
}
endwhile;
?>
它显示了以下结果:
事件2 2012/08/08至2012/08/15。此外,事态混乱。
我将感谢您对这个问题的任何指导。