get_row_layout()

Description

Returns the current row layout name within a have_rows() loop.

This function becomes necessary when displaying values from a Flexible Content field as each row may be of a different layout type.

Return

(string) The name of the layout as defined in the Flexible Content field settings.

Examples

Basic usage

This example shows how to loop through a Flexible Content field and load the row layout for each row.

if( have_rows('content') ) {
    while( have_rows('content') ) {
        the_row();

        // Get the row layout.
        $layout = get_row_layout();

        // Do something...
    }
}

Display layouts

This example shows how to loop through a Flexible Content field and generate HTML for different layouts.

<?php if( have_rows('content') ): ?>
    <?php while( have_rows('content') ): the_row(); ?>
        <?php 

        //Paragraph layout.
        if( get_row_layout() == 'paragraph' ): ?>
            <?php the_sub_field('paragraph'); ?>
        <?php 

        // Image layout.
        elseif( get_row_layout() == 'image' ): 
            $image = get_sub_field('image');
            ?>
            <figure>
                <?php echo wp_get_attachment_image( $image['ID'], 'full' ); ?>
                <figcaption><?php echo $image['caption']; ?></figcaption>
            </figure>
        <?php 

        // Posts.
        elseif( get_row_layout() == 'posts' ): 
            $posts = get_sub_field('posts');
            ?>
            <div class="featured-posts">
                <h2><?php the_sub_field('title'); ?></h2>
                <?php the_sub_field('content'); ?>
                <?php if( posts ): ?>
                    <ul>
                    <?php foreach( $posts as $post ):
                        setup_postdata($post); ?>
                        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
                    <?php endforeach; ?>
                    <?php wp_reset_postdata(); ?>
                    </ul>
                <?php endif; ?>
            </div>
        <?php endif; ?>
    <?php endwhile; ?>
<?php endif; ?>

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 Cookie Policy. If you continue to use this site, you consent to our use of cookies.