Advanced Custom Fields

have_rows()

Esta função verifica se o campo (repetidor ou conteúdo flexível) tem quaisquer linhas de dados para executar um loop. Esta é uma função booleana, ou seja, ele retorna VERDADEIRO ou FALSO.

Esta função é uma substituição para a função has_sub_field, no entanto, tem algumas diferenças pequenas mas significativas. A principal diferença é que esta função não percorre as linhas por si só, por isso, para percorrer as linhas, você também deve usar a função the_row.

Utilizar have_rows e the_rows juntos segue a mesma lógica de usar have_posts e the_post no Loop padrão do WP.

Parâmetros

<?php have_rows($field_name, $post_id); ?>
  • $field_name: nome do campo repetidor / conteúdo flexível (obrigatório)
  • $post_id: Especifica o ID do post  onde o seu valor foi digitado. O padrão é pegar o do post atual, do loop que você está. Você também pode passar ID de uma página de opções, taxonomias, usuários, etc. (opcional)

Como utilizar

Loop Básico

<?php
if( have_rows('parent_field') ):
    while ( have_rows('parent_field') ) : the_row();
        // Your loop code
        the_sub_field('sub_field');
    endwhile;
else :
    // no rows found
endif; 
?>

Loop para um Campo Repetidor

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

Loop para um campo de conteúdo flexível

<?php if( have_rows('flexible_content') ): ?>
<ul class="slides">
    <?php while( have_rows('flexible_content') ): the_row(); ?>
        <li class="slide">
	    <?php if( get_row_layout() == 'image_slide' ): 
	        $image = get_sub_field('image'); ?>
	        <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt'] ?>" />
	    <?php elseif(get_row_layout() == 'video_slide' ):
	        the_sub_field('iframe');
  	    endif; ?>
	</li>
    <?php endwhile; ?>
</ul>
<?php endif; ?>

Loop Aninhados

Este exemplo mostra um campo repetidor (locations) que contém um título, descrição e um outro campo repetidor dentro dele (staff_members) contendo membros da equipe.

have_rows function irá  detectar a troca de $field_name e iniciar um novo loop instantâneamente!

<?php // test loop #1
if( have_rows('locations') ): ?>
    <div class="locations">
    <?php // loop #1
    while( have_rows('locations') ): the_row(); ?>
        <div class="location">
	    <h3><?php the_sub_field('title'); ?></h3>
	    <p><?php the_sub_field('description'); ?></p>
	    <?php // loop #2 (aninhado)
	        <?php if( have_rows('staff_members') ): ?>
		    <ul class="staff-members">
		        <?php while( have_rows('staff_members') ): the_row();
  		        $image = get_sub_field('image'); ?>
			<li>
			    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt'] ?>" />
			    <h4><?php the_sub_field('name'); ?></h4>
			</li>
 		       <?php endwhile; ?>
   	           </ul>
	       <?php endif; ?>
	    </div>
	<?php endwhile; ?>
    </div>
<?php endif; ?>

Posts Similares

  • Campo Verdadeiro ou Falso (booleano)

    O campo Verdadeiro ou Falso cria um seletor com estas duas opções, onde 1 é verdadeiro e 0 é falso. Campos adicionais deste tipo de campo Mensagem: Texto descritivo exibido perto do checkbox. Valor padrão: você pode definir se o valor padrão será verdadeiro ou falso. Como utilizar este campo em um template WP? A API…

  • Campo de Texto

    O campo de texto cria um input básico para digitar texto. Este tipo de campo é indicado para armazenar strings simples. Campos adicionais deste tipo de campo Valor Padrão: determina o valor padrão que este campo terá quando um novo post for criado, podendo ser alterado quando quiser. Texto Placeholder: Texto padrão que aparece quando…

  • Campo de Área de Texto

    O Campo de Área de texto (Textarea) cria áreas de texto adicionais. Este campo é bem útil para armazenar parágrafos simples a serem utilizados em seu tema.

  • Campo de Checkboxes

    O campo de checkboxes cria uma lista de opções selecionáveis. Útil para escolher categorias ou informações que podem possuir multiplicidade. Campos adicionais deste tipo de campo Escolhas: Aqui você vai popular a lista de valores selecionáveis. Cada item desta lista deverá estar em uma linha,  e deverá ser preenchido no formato ‘valor : label’. Se você…

  • Campo de Mapa (Google Maps)

    Campo de Mapa (Google Maps)

    O campo Google Map fornece uma interface de mapa interativa para selecionar um local. Este tipo de campo usa a API Javascript do Google Maps para fornecer pesquisa de preenchimento automático, pesquisa de geocodificação reversa e um marcador interativo. Campos adicionais deste tipo de campo Requisitos Para usar a API JavaScript do Google Maps, você…

  • Criando grupos de campos e novos campos com o ACF

    Criando grupos de campos e novos campos com o ACF

    Agora que já vimos toda teoria sobre o que é o Advanced Custom Fields, vamos começar a falar de forma mais prática sobre o uso do plugin. O ACF trabalha com o conceito de Campos e Grupos de Campos, que são a primeira coisa que você deve entender. Digamos que você precisa criar campos que…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *