查询元数据表的速度很慢,而且因为它也用于一般数据,所以如果在那里存储日期,则需要注意日期格式。例如,使用dmY
格式:
01112014(2014年11月1日)
11012014(2014年1月11日)12052014(2014年5月12日)$args = array(
\'post_type\' => \'event\',
\'posts_per_page\' => 1,
\'meta_query\' => array(
array(
\'key\' => \'date\', //or whatever key you\'re using
\'value\' => date_i18n( \'Ymd\' ),
\'compare\' => \'>=\'
)
),
\'orderby\' => \'meta_value\',
\'meta_key\' => \'date\', //or whatever key you\'re using
\'order\' => \'asc\',
);
$events = get_posts( $args );
if( $events ){
$next_event = array_pop( $events );
}else{
//no event found
}
也就是说,最好避免发布元数据(出于性能考虑,如果需要的话,对于重复发生的事件更糟糕)。此外,还有大量不同的事件管理插件(
我构建了:Event Organiser),它不仅为您处理所有这些,而且为用户提供了一个UI,而不是使用自定义字段。
使用活动组织者,您可以通过以下方式获得下一个活动:
$events = eo_get_events( array(
\'event_start_after\' => \'now\',
\'posts_per_page\' => 1
));
if( $events ){
$next_event = array_pop( $events );
}