Ministério da Cultura

Loop no WordPress

Fonte: Blog do Marcelo Mesquita

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:

<?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.

3 Comentarios

  • Roberto

    03/02/2009 às 19:01

    Resposta »

    Excelente matéria, obrigado pela dica ajudou bastante! Abraços e muito sucesso

  • Kleber

    17/04/2009 às 00:19

    Resposta »

    Gostaria de tirar um dúvida que me surgiu.

    Quando tento publicar post de uma determinada categoria em uma pagina do site/blog( exemplo: pagina ‘Noticias’ [?page_id=4] ), eu tenho que criar a pagina, sendo um arquivo php (Painel Admin =>Aparencia =>Editor), ou posso usar o recurso de paginas(Painel Admin =>Paginas =>Editar), para publicar os posts relacionados a uma determinada categoria.

    Agradeço a todos que puderem nos ajudar.

  • Loops « Re..

    14/02/2010 às 14:05

    Resposta »

    [...] Loop no WordPress [...]

Deixe seu comentário