Intereting Posts

$ post break контейнерный цикл

проблема

У меня есть петля захвата петли foreach внутри расширенного настраиваемого повторителя полей. Когда он завершает цикл сообщений, он прерывает повторитель. Я считаю, что проблема связана с $ post, насколько позволяют мои часы отладки. Если я удаляю цикл foreach, время цикла будет проходить правильно. Я использую поле ACF Object для получения сообщений.

Следует сделать:

date time event event event time event event event date time event event event time event event event 

Выполнение:

 date time event event event date time event event event 

Таким образом, с циклом foreach он разбивает следующий временной интервал. Таким образом, все даты показывают только один из временных интервалов. Если я удалю цикл для событий, тогда появятся все временные интервалы. Я попытался поставить петлю foreach в разных местах, и он разбивает другие петли, поэтому он не ограничивается этим.

Состав

Я создал расписание событий, используя два пользовательских типа сообщений «События» и «Расписание». В расписании есть сообщения под названием «Дата». Используя это и расширенные пользовательские поля, я составил список дат / времени для событий.

 $args = array ( 'post_type' => 'schedule', 'pagination' => false, ); $query_schedule = new WP_Query( $args ); if ( $query_schedule->have_posts() ) { ?> <div class="schedule-date" id="<?php // slug ?>"> <ul class="dates-list"> <?php while ( $query_schedule->have_posts() ) { $query_schedule->the_post(); ?> <?php $date = DateTime::createFromFormat('Ymd', get_field('schedule_date')); ?> <div class="date"> <h1><?php echo $date->format('D jS F' ); /* eg Mon 4th February */ ?></h1> <?php // check if the repeater field has rows of data if( have_rows('schedule_times') ): ?> <ol class="times"> <?php // loop through the rows of data while ( have_rows('schedule_times') ) : the_row(); ?> <li class="time-slot"> <h2 class="time"><?php the_sub_field('schedule_time'); ?></h2> <?php // Loop Help http://www.advancedcustomfields.com/resources/post-object/ $event_posts = get_sub_field('schedule_events'); if( $event_posts ): ?> <ul class="list-events"> <?php echo '<pre>'; print_r( get_sub_field('schedule_events', false, false ) ); echo '</pre>'; ?> <?php foreach( $event_posts as $post): ?> <?php setup_postdata($post); ?> <li class="event"> <h3 class="event-title"><?php the_title(); ?></h3> <p class="event-location"><?php the_field( 'event_location' ); ?></p> </li> <?php endforeach; ?> </ul> <?php wp_reset_postdata(); ?> <?php endif; ?> </li> <?php endwhile; ?> </ol><!-- .times --> <?php else : // no rows found endif; ?> </div><!-- .date --> <?php } ?> </ul> </div><!-- schedule-date --> <?php } else { // no posts found } // Restore original Post Data wp_reset_postdata(); ?>