
Hi there!
I wrote the code below to loop trough a repeater field called “contentblock” with 4 subfields. The problem is, that if one of the subfields is empty, the containing <div> is not closed and thus the repeating content blocks get nested into each other, causing multiple layout problems.
So, how can I close the containing div, e.g. the image gallery (“repeaterimages”), if no images are chosen?
<?php
function my_repeater() {
if( have_rows('repeater_field') ):
while ( have_rows('repeater_field') ) : the_row();
<div class="contentblock">
<?php $ankerlink = get_sub_field('_repeater_anker'); ?>
<div style="position: relative;">
<?php if( $ankerlink ): ?>
<div id="<?php echo $ankerlink ?>" class="anchorposition"></div>
</div>
<?php endif; ?>
<h3>
<?php the_sub_field('_repeater_headline'); ?>
</h3>
<div class ="repeaterimages">
<?php $images = get_sub_field('_repeater_bild');
if( $images ):?>
<?php foreach( $images as $image ): ?>
<div class="imageblock fitimagecontainer">
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></div>
<?php endforeach; ?>
</div>
<div class="textblock">
<?php the_sub_field('_repeater_text'); ?>
</div>
</div>
<?php endif;
endwhile;
else :
// no rows found
endif;}