Я создаю канал "сейчас играет" для веб-сайта кинотеатра. Каждое «событие» - это фильм, показанный в кинотеатре. Каждый показ настраивается как серия событий, в Tribe Events Calendar Pro.
У меня есть собственный плагин, который отображает список всех событий на следующие 7 дней. Он проверяет дату и последовательно отображает события 7 дней отдельно.
Это прекрасно работает, пока у меня не появится повторяющееся событие с 2 или более моментами начала в один и тот же день. Что я хочу сделать, так это как-то проверить, есть ли у события несколько раз в один и тот же день. Если да, то покажите событие ОДИН РАЗ в день, но покажите оба времени начала под ним.
Например: Фильм 1, повторяющееся событие. Начало мероприятия:
- 11 февраля 18: 00
- 11 февраля 19: 00
- 11 февраля 22: 00
- 12 февраля 10:00
В настоящее время оно отображает одно и то же событие 3 раза до 11 февраля, отдельно, а затем один раз 12 февраля. Я хочу, чтобы оно отображалось ОДИН РАЗ 11 февраля, но с 3 время начала внизу, а затем снова 12-го числа в виде отдельного списка.
Вот код:
foreach( range(0,6) as $cnt ){
echo strtoupper( date('D d',strtotime( "today + $cnt day") ) ) . " / ";
$start_date = strtoupper( date('Y-m-d',strtotime( "today + $cnt day") ) ) . "00:01";
$end_date = strtoupper( date('Y-m-d',strtotime( "today + $cnt day") ) ) . "23:59";
$args = array(
'start_date' => $start_date,
'end_date' => $end_date
);
$events = tribe_get_events( $args );
echo '<div class="flex">';
foreach ( $events as $event ) { global $post; ?>
<div class="one-fourth">
<?php echo tribe_event_featured_image( $event->ID, 'medium' ); ?>
<h4><?php echo $event->post_title; ?></h4>
<div class="start-times">
<?php echo tribe_get_start_date($event, false, $format= 'h:i A');?>
</div>
</div>
<?php }
echo '</div>';
}