ACF Добавить класс, если первый элемент в массиве повторителей

Я пытаюсь создать сайт с использованием ACF, который имеет анимированные баннеры при загрузке страницы. Чтобы эффект сработал, мне нужно, чтобы первый элемент имел определенные классы, а затем его братья и сестры не имели этих классов. Я пробовал использовать счетчик, но я новичок в PHP / ACF, поэтому, хотя я могу делать основные вещи с повторителем, я немного застрял. То, что я пробовал, ниже

<?php if ( have_rows('homepage_tiles') ): 
                                $count = 0;
                            ?>

                            <div class = "hero-list-container">

                            <?php while( have_rows('homepage_tiles') ): the_row(); 

                                // vars
                                $image = get_sub_field('image');
                                $content = get_sub_field('content');
                                $link = get_sub_field('link');

                                ?>

                                <?php if ($count == 0): ?>
                                    <div class = "list-tile animate-up first">
                                        <div class = "module-background" style = "background-image: url('<?php the_sub_field('tile_bg_image') ?>'); background-size: cover;">
                                        </div>
                                    </div>
                                    <?php $counter++; ?>
                                <?php endif; ?>

                            <?php endwhile; ?>

                            </div>

                        <?php endif; ?>

Мне было бы хорошо, если бы он зацикливался и просто добавлял класс к первому или выводил полный html, необходимый для первого элемента, а затем другой html для остальных.

Спасибо за помощь!

Я использовал это, и он работает, но если у кого-то есть лучшее решение, я открыт для него.

<?php if ( have_rows('homepage_tiles') ): 
                                $count = 1;
                            ?>

                            <div class = "hero-list-container">

                            <?php while( have_rows('homepage_tiles') ): the_row(); 

                                // vars
                                $image = get_sub_field('image');
                                $content = get_sub_field('content');
                                $link = get_sub_field('link');

                                ?>

                                <?php if ($count == 1): ?>
                                    <div class = "list-tile animate-up first">
                                        <div class = "module-background" style = "background-image: url('<?php the_sub_field('tile_bg_image') ?>'); background-size: cover;">
                                        </div>
                                    </div>
                                <?php endif; ?>

                                <?php $count++; ?>

                                <?php if ($count > 2): ?>
                                    <div class = "list-tile">
                                        <div class = "module-background" style = "background-image: url('<?php the_sub_field('tile_bg_image') ?>'); background-size: cover;">
                                        </div>
                                    </div>
                                <?php endif; ?>

                            <?php endwhile; ?>

                            </div>

                        <?php endif; ?>

У меня было установлено значение> = 2, но по какой-то причине он повторял первый слайд.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
2 200
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я понимаю, что вопрос был опубликован несколько месяцев назад, но на случай, если вы захотите немного упростить свой код, вот мое решение.

<?php if ( have_rows('homepage_tiles') ): $counter = 0; ?>
    <div class = "hero-list-container">
        <?php
        while( have_rows('homepage_tiles') ): the_row();
            $tile_bg_image = get_sub_field('tile_bg_image');
            ?>
            <div class = "list-tile<?php if ( $counter == 0 ) { ?> animate-up first<?php } ?>">
                <div class = "module-background" style = "background-image: url('<?php echo $tile_bg_image; ?>'); background-size: cover;"></div>
            </div>
        <?php $counter++; endwhile; ?>
    </div>
<?php endif; ?>

Никогда не поздно выбрать другой вариант! Спасибо!

OMGDrAcula 01.10.2018 15:25

Не беспокойтесь @OMGDrAcula, было бы здорово, если бы мое решение было отмечено как принятый ответ. Поднимите мою репутацию и все такое.

morgyface 01.10.2018 16:31

Другие вопросы по теме