Hi,
I am trying to get a count of repeater sub fields e.g.
<?php if( have_rows('questions') ): ?>
<ul class="questions-answers">
<?php while( have_rows('questions') ): the_row(); ?>
<li><h3><a href="#"><?php the_sub_field('question_text'); ?></a></h3>
<p><?php the_sub_field('answer_text'); ?></p></li>
<?php endwhile; ?>
</ul>
is what I have now. I’d like to add a dynamically assigned class to the p element e.g.
<p class="class_<?php $the_sub_field('number'); ?>"><?php the_sub_field('answer_text'); ?></p>
The code might be different to what I’ve posted but basically this is what I need. Any help gratefully received.
Something like this? 🙂
<?php if( have_rows('questions') ): ?>
<?php $counter = 1; //this sets up the counter starting at 0 ?>
<ul class="questions-answers">
<?php while( have_rows('questions') ): the_row(); ?>
<li><h3><a href="#"><?php the_sub_field('question_text'); ?></a></h3>
<p class="class_<?php echo $counter; // Prints the number of counted row ?>"><?php the_sub_field('answer_text'); ?></p>
<p><?php the_sub_field('answer_text'); ?></p></li>
<?php $counter++; // add one per row ?>
<?php endwhile; ?>
</ul>
<?php endif; ?>
Or if you want to know the count before running through the array, try something like:
if( have_rows('questions') ):
$my_fields = get_field_object('questions');
$count = (count($my_fields['value']));
endif;
I’m trying to echo the count of the rows, but it keeps returning zero. Here is my code:
<?php if( have_rows('repeater_name') ):
$my_fields = get_field_object('repeater_name');
$count = (count($my_fields['value']));
echo $count;
endif;?>
I have 3 repeater rows but it keeps returning “0”. Any idea why?
@nicholaspetersen Try just counting $my_fields instead of $my_fields[‘value’].