Marcelo Mesquita

Apenas mais um desenvolvedor WordPress

O Loop

Para quem desenvolve em WordPress o mais importante é entender como funciona o loop. O Loop é a estrutura responsável por carregar os posts no WordPress, ele funciona em todos os templates do tema, esse é o motivo de sua grande importância. O que alimenta a consulta do loop são os parâmetros passados no endereço do site, carregados cronológicamente por padrão.

Por exemplo: Ao acessar o endereço http://www.dominio.com/?cat=1, estaremos passando para o loop que a categoria é igual a 1, assim, o loop irá carregar os posts que estejam dentro dessa categoria apenas.

Todos os resultados obtidos com a consulta são armazenados em um array chamado $posts e a cada volta do loop a chave do array é incrementada. Dessa forma, precisamos somente de uma estrutura de repetição que monte o conteúdo de cada post dentro da nossa interface. Para facilitar ainda mais, o WordPress disponibiliza duas funções que fazem quase todo o trabalho para nós, são elas:

  • have_posts(), que verifica se ainda existem posts no array; e
  • the_post(), que carrega os dados do post da vez.

A estrutura mais utilizada nos temas do WordPress é:

<span style="color: #aa0000;">&lt;?php while(have_posts()) : the_post(); ?&gt;</span>
trecho da interface a ser repetido...
<span style="color: #aa0000;"> &lt;?php endwhile; ?&gt;</span>

Traduzindo para o programês, ficaria assim:

<span style="color: #aa0000;">&lt;?php enquanto(houverem_posts()) : carregue_o_post_da_vez(); ?&gt;</span>
trecho da interface a ser repetido...
<span style="color: #aa0000;">&lt;?php verifique_se_ainda_há_posts; ?&gt;</span>

Dentro do loop estarão disponíveis os atributos do post da vez, esses atributos podem ser acessados utilizando as funções the_title(), the_permalink(), the_content(), para citar algumas. Sabendo disso, para montar um template que mostre o título, o autor e a data de publicação de um post precisaríamos simplesmente adicionar as respectivas funções nos locais apropriados. Segue mais um exemplo:

&lt;?php the_permalink(); ?&gt;</span>"&gt;<span style="color: #aa0000;">&lt;?php the_title(); ?&gt;</span>&lt;/a&gt;&lt;/h2&gt;
&lt;p class=&quot;data&quot;&gt;<span style="color: #aa0000;">&lt;?php the_time(); ?&gt;</span>&lt;/p&gt;
&lt;p class=&quot;autor&quot;&gt;<span style="color: #aa0000;">&lt;?php the_author(); ?&gt;</span>&lt;/p&gt;
&lt;?php endwhile; ?&gt;

Nesse exemplo teríamos, para cada post, uma tag ‘h2’ com o título do post, linkando para a página do post; uma classe ‘data’ com a data do post; e uma classe ‘autor’ com o autor do post. A formatação do html vai depender da sua interface.

9 Comments

  • responder

    David

    8 anos atrás

    Muito bom esse seu post, para que esta começando como eu, é uma ajuda e tanto.
    Se caso eu queira limitar o loop as categorias como ficaria ?

    • responder

      Marcelo Mesquita

      8 anos atrás

      Olá David,
      obrigado pelo comentário.

      Eu achei a sua dúvida interessante então criei outro post para explicar detalhadamente como personalizar as consultas. Espero que seja isso mesmo o que você procura.

      Abraço,
      Marcelo Mesquita.

      • responder

        Everton de Paula

        4 anos atrás

        Muito obrigado mesmo cara, é muito dificil encontrar um tutorial simples que fale como funcionam as funções do wordpress.

        Ótimo trabalho, está me ajudando muito.

  • responder

    Multiplos Loops » Marcelo Mesquita

    8 anos atrás

    […] com ele podemos criar consultas no site que estarão amparadas por todas as funções presentes no Loop do WordPress facilitando todo o serviço de criação de novas colunas. A forma como ele funciona […]

  • responder

    Personalizando O Loop » Marcelo Mesquita

    8 anos atrás

    […] O Loop Após entender como O Loop funciona, já podemos começar a brincar com o WordPress controlando o conteúdo a ser caregado ou […]

  • responder

    Xemele » Multiplos Loops

    8 anos atrás

    […] com ele podemos criar consultas no site que estarão amparadas por todas as funções presentes no Loop do WordPress facilitando todo o serviço de criação de novas colunas. A forma como ele funciona […]

  • responder

    Multiplos Loops « Blog para testes

    8 anos atrás

    […] com ele podemos criar consultas no site que estarão amparadas por todas as funções presentes no Loop do WordPress facilitando todo o serviço de criação de novas colunas. A forma como ele funciona […]

  • responder

    Thomas Roodson

    2 anos atrás

    Olá amigo gostei muito do seu site ajuda bastante.
    Gostaria de saber se você poderia me ajudar estou montando um thema de filmes online e gostaria de saber se você saber me dizer se teria como eu chamar o loop mais que ele fizesse da seguinte forma.

    De cada três post que ele chama-se ele muda-se a classe por que meu css no ultimo bloco que são iguais a outras só que tira as margens

    • responder

      Marcelo Mesquita

      2 anos atrás

      Fala Thomas,

      No seu caso, acho mais fácil resolver com css. Basta usar o seletor :last-child no elemento do seu post. Por exemplo, se seu post fica numa tag com a classe ‘.post’ você pode adicionar no seu arquivo css:

      .post:last-child { margin: 0; }
      

      Caso prefira trabalhar com php, a forma mais simples que imaginei foi adicionar um contador dentro do loop e quando o contador for igual a três, você adiciona a classe desejada. Assim:

      <?php $i = 0; ?>
      <?php while( have_posts() ) : the_post(); $i++; ?>
        <article class="post <?php if( $i == 3 ) echo 'no-margin'; ?>">
          ...
        </article>
      <?php endwhile; ?>
      

      Espero ter ajudado.

Deixe uma resposta

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