Hi,
I’m trying to display a repeater using the code supplied…
<?php
// check if the repeater field has rows of data
if( have_rows('repeater_field_name') ):
// loop through the rows of data
while ( have_rows('repeater_field_name') ) : the_row();
// display a sub field value
the_sub_field('sub_field_name');
endwhile;
else :
// no rows found
endif;
?>
I’ve replaced “repeater_field_name” with the name of my repeater “hero_slides” and the “sub_field_name” with one of the sub fields I have…”slide_title”.
It’s set to display on a home options page and I’ve added some rows there. But when I put that php into my front-page.php nothing appears. I echoed something in the // no rows found bit and that appeared so it’s obviously not finding any rows.
I’m using PHP7, could that be causing issues?
Barney
This reply has been marked as private.
I worked it out…I needed to add
, option
after the repeater name!
B
Hi @pixelanddot
I am glad you were able to have it fixed.
Feel free to let me know in case something else comes up.
Actually I did have another question related to that…
my repeater is slides for a carousel…the content of each slide is wrapped with
<div class="active item"><div class="home-headlines">
Only the first slide has the active class on it. Is there a simple way to add that in based on which row number it is?
B
Hi @pixelanddot
I believe the easiest way would be something like this:
// check if the repeater field has rows of data
if( have_rows('repeater_field_name', 'option') ): $i = 0;
// loop through the rows of data
while ( have_rows('repeater_field_name', 'option') ) : the_row(); $i++; ?>
<div class="<?php if ($i == 1){echo "active ";} ?>item">
<?php
// display a sub field value
the_sub_field('sub_field_name');
?>
</div>
<?php
endwhile;
else :
// no rows found
endif;
I hope this helps.