Фон - Создан веб-сайт WordPress и использованы расширенные пользовательские поля ACF для создания полей ввода на моих страницах.
Затем я заполнил поля страниц, чтобы я мог создать / использовать эту переменную:
<?php
$case_study_image_gallery = get_field('case_study_image_gallery');
?>
Затем я вызываю подполе в цикле while, затем вызываю ['url'] при использовании переменной, чтобы разбить массив изображений.
<?php if( $case_study_image_gallery ) : ?>
<div class="case-study-slider">
<?php
while (have_rows('case_study_image_gallery')): the_row();
$case_study_image = get_sub_field('case_study_image');
?>
<div class="case-study-slide">
<img class="case-study-slider-image" src="<?php echo $case_study_image['url']; ?>">
</div>
<?php endwhile; ?>
</div>
<div class="case-study-slider-nav">
<?php
while (have_rows('case_study_image_gallery')): the_row();
$case_study_image = get_sub_field('case_study_image');
?>
<div class="case-study-nav-slide">
<img class="case-study-slider-nav-image" src="<?php echo $case_study_image['url']; ?>">
</div>
<?php endwhile; ?>
</div>
<?php endif; ?>
Как вы можете видеть, я разбил свое время на несколько разделов, поскольку мне нужно использовать одинаковые значения как для изображений слайдера, так и для уменьшенных изображений. При этом я должен поместить этот код между двумя использованиями изображения подполя.
<?php endwhile; ?>
</div>
<div class="case-study-slider-nav">
<?php
while (have_rows('case_study_image_gallery')): the_row();
$case_study_image = get_sub_field('case_study_image');
?>
Это ЯВНО не будет работать, так как первый цикл прожег экземпляры изображений.
По сути, я ищу способ сделать разрыв в цикле, не перезапуская и не повторяя его и не вызывая следующую строку данных. Как это:
<?php if( $case_study_image_gallery ) : ?>
<div class="case-study-slider">
<?php
while (have_rows('case_study_image_gallery')): the_row();
$case_study_image = get_sub_field('case_study_image');
?>
<div class="case-study-slide">
<img class="case-study-slider-image" src="<?php echo $case_study_image['url']; ?>">
</div>
<?php
HAVE A BREAK FROM THE WHILE;
?>
</div>
<div class="case-study-slider-nav">
<?php
CONTINUE WHILE
?>
<div class="case-study-nav-slide">
<img class="case-study-slider-nav-image" src="<?php echo $case_study_image['url']; ?>">
</div>
<?php endwhile; ?>
</div>
Я ценю, что есть способы сбросить цикл после его завершения, но я чувствую, что должен быть способ использовать код, как я пытаюсь здесь.
В ответ на Simonw16:
<div class="cs-slider">
<div class="case-study-slider">
<div class="case-study-slide"><img class="case-study-slider-image" src="https://localhost/materialshub/wp-content/uploads/2018/09/silicone-elastomer-tube.png"></div>
<div class="case-study-slide"><img class="case-study-slider-image" src="https://localhost/materialshub/wp-content/uploads/2018/09/silicon-sputtering-target.jpeg"></div>
<div class="case-study-slide"><img class="case-study-slider-image" src="https://localhost/materialshub/wp-content/uploads/2018/09/zirconium-lump.jpg"></div>
</div>
<div class="case-study-slider-nav">
<div class="case-study-nav-slide"><img class="case-study-slider-nav-image" src="https://localhost/materialshub/wp-content/uploads/2018/09/silicone-elastomer-tube.png"></div>
<div class="case-study-nav-slide"><img class="case-study-slider-nav-image" src="https://localhost/materialshub/wp-content/uploads/2018/09/silicon-sputtering-target.jpeg"></div>
<div class="case-study-nav-slide"><img class="case-study-slider-nav-image" src="https://localhost/materialshub/wp-content/uploads/2018/09/zirconium-lump.jpg"></div>
</div>
</div>