我的Wordpress主题允许在“事件”自定义帖子类型中添加日期。股票主题显示输入的所有日期,但我限制为两个日期。不幸的是,前两个日期不是所选事件的下两个日期。
因此,当年过去了,我希望php查看当前日期,然后显示即将发生的事件......即数组中接下来的两个事件日期。
这是我的代码:
<div id="event-days">
<ul>
<?php
global $va_locale;
$days = va_get_the_event_days();
$i = 0;
$len = count($days);
foreach( $days as $date_U => $term ) { ?>
<?php $date = $term->slug; ?>
<?php $display_date = $va_locale->date( apply_filters( 'va_single_event_dates_date_format', get_option( 'date_format' ) ), strtotime( $date ) );?>
<?php $times = va_get_the_event_day_times( $date ); ?>
<li><?php echo html_link( va_event_day_get_term_link( date( 'Y-m-d', strtotime( $date ) ) ), $display_date ); ?><?php echo va_get_the_event_day_time( $times, ' - ', ' @ ' );
if ($i == 0) { ?>
<meta itemprop="startDate" content="<?php echo date( 'c', strtotime( $date ) ); ?>" />
<?php } ?>
</li>
<?php $i++;
if($i==2) break;
} ?>
</ul>
</div>
提前感谢您的帮助。
编辑 - 这里我们去gavriel。欢呼声
function va_get_the_event_days( $event_id = 0 ) {
$event_id = $event_id ? $event_id : get_the_ID();
$terms = get_the_terms( $event_id, VA_EVENT_DAY );
if ( !$terms )
return array();
$days = array();
foreach ( $terms as $term_id => $term ) {
if ( $term->parent != 0 ) {
$days[ strtotime($term->slug) ] = $term;
}
}
return $days;
}
答案 0 :(得分:0)
最简单的更改是仅将未来事件添加到数组中:
$now = time();
foreach ( $terms as $term_id => $term ) {
if ( $term->parent != 0 ) {
$term_timestamp = strtotime($term->slug);
if ($term_timestamp > $now) {
$days[ $term_timestamp ] = $term;
}
}
}