Ministério da Cultura

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 é:

<?php while(have_posts()) : the_post(); ?>
trecho da interface a ser repetido...
 <?php endwhile; ?>

Traduzindo para o programês, ficaria assim:

<?php enquanto(houverem_posts()) : carregue_o_post_da_vez(); ?>
trecho da interface a ser repetido...
<?php verifique_se_ainda_há_posts; ?>

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:

<prelt;?php while(have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>“><?php the_title(); ?></a></h2>
<p class="data"><?php the_time(); ?></p>
<p class="autor"><?php the_author(); ?></p>
<?php endwhile; ?>

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.

6 Comentarios

  • David

    02/01/2009 às 20:32

    Resposta »

    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 ?

  • Multiplos Loops ..

    27/01/2009 às 00:38

    Resposta »

    [...] 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 [...]

  • Personalizando O..

    27/01/2009 às 00:42

    Resposta »

    [...] 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 [...]

  • Xemele » M..

    10/02/2009 às 15:30

    Resposta »

    [...] 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 [...]

  • Richard

    13/10/2009 às 17:14

    Resposta »

    Pessoal to adorando o blog, entendi bem o loop, queria saber se vcs podem me ajudar com algo, criei uma página de modelo para o WP, uso ela como home, dai no fim dela eu uso um loop para uma categoria epecífica, funciona blz, o único problema é que ele subistitui o da página pelo nome da categoria, alguem sabe como tirar isso? alguem pode me ajudar? ficarei muito agradecido mesmo, abs a todos, ahh eu uso aquele plugin platinum seo pack, será que é por isso?

  • Marcelo Mesquita

    03/01/2009 às 00:47

    Resposta »

    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.

Deixe seu comentário