Tenho um loop have_rows(). Como dou uma cor diferente a cada segundo elemento? Uso do operador módulo (%) e variáveis de contador em PHP.
PT-PT

Advanced custom fields (ACF) - Campos repetíveis e estilização

5.00 /5 - (25 votes )
Última verificação: 1 de março de 2026
Experiência: 19+ anos de experiência
Índice

O Repeater Field do ACF é uma ferramenta poderosa. Permite aos clientes adicionar qualquer número de elementos (ex: “Nossos Parceiros”, “Agenda”, “Ingredientes”) sem ter de criar posts separados.

Mas como exibir e estilizar isto?

Loop básico

<?php if( have_rows('meu_repeater') ): ?>
    <ul class="slides">
    <?php while( have_rows('meu_repeater') ): the_row(); 
        $image = get_sub_field('imagem');
        $content = get_sub_field('texto');
        ?>
        <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; ?>

Desafio: “Zebra” (cada segundo elemento diferente)

Os designers frequentemente querem, por exemplo, que cada segundo bloco tenha um fundo escuro. Como fazer isso num loop? Usa uma variável de contador ($i) e o operador módulo (%).

<?php if( have_rows('seccoes') ): 
    $i = 0; // Inicializar contador
?>
    <div class="sections-container">
    <?php while( have_rows('seccoes') ): the_row(); 
        $i++; // Incrementar contador
        // Verificar se é par
        $classe = ($i % 2 == 0) ? 'bg-dark' : 'bg-light';
    ?>
        
        <div class="row <?php echo $classe; ?>">
            <!-- Conteúdo da secção -->
        </div>

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

CSS nth-child (alternativa)

Em 2026, é frequentemente melhor fazer isto em CSS, se as diferenças forem puramente visuais:

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

Usa a solução PHP apenas quando a paridade afeta a estrutura HTML ou os recursos carregados.

O que é Advanced custom fields (ACF) - Campos repetíveis e estilização?
Advanced custom fields (ACF) - Campos repetíveis e estilização é relevante quando pretende um WordPress mais estável, melhor desempenho e menos falhas em produção.
Como implementar Advanced custom fields (ACF) - Campos repetíveis e estilização?
Comece com uma auditoria de base, defina âmbito e restrições, e implemente alterações em passos pequenos e testáveis.
Porque é que Advanced custom fields (ACF) - Campos repetíveis e estilização é importante?
Os maiores ganhos vêm, normalmente, da qualidade técnica, de uma estrutura de conteúdo clara e de verificação regular.

Precisa de FAQ adaptado ao setor e mercado? Criamos uma versão alinhada com os seus objetivos de negócio.

Fale connosco

Artigos Relacionados