У меня есть петля захвата петли 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(); ?>