Я пытаюсь создать сайт с использованием 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 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, было бы здорово, если бы мое решение было отмечено как принятый ответ. Поднимите мою репутацию и все такое.
Никогда не поздно выбрать другой вариант! Спасибо!