get_row_layout()

Описание

Возвращает имя текущего макета строки в цикле have_rows().

Эта функция необходима при отображении значений поля Flexible Content, поскольку каждая строка может иметь свой тип макета.

Возвращаемое значение

(string) Имя макета, заданное в настройках поля Flexible Content.

Примеры

Базовое использование

В этом примере показано, как пройти в цикле по полю Flexible Content и получить макет каждой строки.

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

        // Получить макет строки.
        $layout = get_row_layout();

        // Выполнить действие...
    }
}

Отображение макетов

В этом примере показано, как пройти в цикле по полю Flexible Content и сгенерировать HTML для разных макетов.

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

        // Макет абзаца.
        if( get_row_layout() == 'paragraph' ): ?>
            <?php the_sub_field('paragraph'); ?>
        <?php 

        // Макет изображения.
        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 

        // Записи.
        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; ?>

Обновлено: 30.09.2026