Home › Forums › Add-ons › Flexible Content Field › count get_row_layout to add odd / even class
Hi,
I am using flexible content with several layouts. Is there a way to count the number of a specific layout?
For example, I have a layout called staff_member which contains several fields. I want to know how many staff_member layouts there are so I can add a class of odd or even to a div with class of “staff”. Or maybe there’s a more simple way to add a class of odd or even. CSS nth formatting doesn’t work because staff members divs are interrupted by department title divs.
Here is the page: http://jarrow.org/staff/
Thanks
/* Staff Custom Fields
------------------------------------------------------------ */
function wnd_staff() {
// check if the flexible content field has rows of data
if( have_rows('staff_content') ): ?>
<div class="staff-content">
<?php // loop through the rows of data
while ( have_rows('staff_content') ) : the_row();
if( get_row_layout() == 'staff_member' ): // start staff row ?>
<div class="staff">
<div class="swrap">
<?php if( get_sub_field ('name')): // get staff name ?>
<h3><?php the_sub_field('name'); ?></h3>
<?php endif; ?>
</div><!-- end swrap -->
</div>
<?php elseif( get_row_layout() == 'department_layout' ): //start department row ?>
<div class="dep">
<?php if( get_sub_field ('department')): // get dep head ?>
<h2><?php the_sub_field('department'); ?></h2>
<?php endif;
if( get_sub_field('department_text') ): // get dep text
the_sub_field('department_text');
endif; ?>
</div>
<?php endif;
endwhile; ?>
</div><!-- end staff-content -->
<?php else :
// no layouts found
endif;
}
Because you have different types of layouts the solution would be to keep a running total of each type of layout.
$layout_counts = array();
// ... some time later
while (have_rows('staff_content')) {
the_row();
$layout = get_row_layout();
if (!isset($layout_counts[$layout])) {
$layout_counts[$layout] = 0;
}
$layout_counts[$layout]++;
$class = 'even';
if ($layout_counts[$layout] % 2) {
$class = 'odd';
}
//... some time later
if ($layout == 'staff_member') {
?>
<div class="staff <?php echo $class; ?>">
/// etc...
</div>
<?php
}
}
The topic ‘count get_row_layout to add odd / even class’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.