接下来两个日期来自数组

时间:2016-01-17 09:34:08

标签: php wordpress

我的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;
}

1 个答案:

答案 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;
        }
    }
}