Advanced Custom Fields (ACF) - Pola Powtarzalne i Stylowanie
PL

Advanced Custom Fields (ACF) - Pola Powtarzalne i Stylowanie

5.00 /5 - (27 głosów )
Spis treści

Pole Powtarzalne (Repeater Field) w ACF to potężne narzędzie. Pozwala klientowi dodać dowolną liczbę elementów (np. “Nasi Partnerzy”, “Agenda”, “Składniki”) bez konieczności tworzenia osobnych postów.

Ale jak to wyświetlić i ostylować?

Podstawowa Pętla

<?php if( have_rows('moj_repeater') ): ?>
    <ul class="slides">
    <?php while( have_rows('moj_repeater') ): the_row(); 
        $image = get_sub_field('obrazek');
        $content = get_sub_field('tekst');
        ?>
        <li class="slide">
            <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
            <p><?php echo $content; ?></p>
        </li>
    <?php endwhile; ?>
    </ul>
<?php endif; ?>

Wyzwanie: “Zebra” (Co drugi element inny)

Często designerzy chcą, aby np. co drugi blok miał ciemne tło. Jak to zrobić w pętli? Użyj zmiennej licznika ($i) i operatora modulo (%).

<?php if( have_rows('sekcje') ): 
    $i = 0; // Inicjujemy licznik
?>
    <div class="sections-container">
    <?php while( have_rows('sekcje') ): the_row(); 
        $i++; // Zwiększamy licznik
        // Sprawdzamy czy parzysty
        $klasa = ($i % 2 == 0) ? 'bg-dark' : 'bg-light';
    ?>
        
        <div class="row <?php echo $klasa; ?>">
            <!-- Treść sekcji -->
        </div>

    <?php endwhile; ?>
    </div>
<?php endif; ?>

CSS n-th child (Alternatywa)

W 2026 roku często lepiej zrobić to w CSS, jeśli różnice są czysto wizualne:

.row:nth-child(even) {
    background-color: #333;
    color: #fff;
}

Używaj rozwiązania PHP tylko wtedy, gdy parzystość wpływa na strukturę HTML lub ładowane zasoby.