get_row_layout()

Last updated Apr 4, 2024

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; ?>
Supercharge Your Website With Premium Features Using ACF PRO

Speed up your workflow and unlock features to better develop websites using ACF Blocks and Options Pages, with the Flexible Content, Repeater, Clone, Gallery Fields & More.

Explore Features View Pricing

PRO Features
ACF Blocks
Options Pages
PRO Fields
Repeater
Flexible Content
Gallery
Clone