por Diego Eis Abril 28th, 2008
O LOOP do Wordpress
O Wordpress tem vários segredos. Um deles é muito interessante: The Loop.
O Loop é usado no Wordpress para mostrar os posts do site. O Wordpress procura os posts publicados no sistema e exibe na página seu conteúdo. Juntando isso com o resto das Template Tags você consegue ter qualquer informação relacionado ao conteúdo publicado no sistema.
Desenvolvedores que não trabalharam ainda com Wordpress, geralmente se assustam quando percebem a quantidade de arquivos utilizados para criar alguns temas. Se você é um deles, relaxe. Você precisa de apenas um arquivo para fazer um site inteiro no Wordpress, o index.php. E dentro deste index.php você coloca o código do LOOP.
<?php while (have_posts()) : the_post(); ?>
<!-- Template Tags e conteúdo -->
<?php endwhile; ?>
Os passos são os seguintes:
- Primeiro o have_posts() checa se há posts para serem exibidos.
- Se houverem posts, o Loop começa. Enquanto o loop continuar a executar, tudo o que você colocar dentro dele será repetido para cada um dos posts exibidos. Por exemplo: links de comentários, data, autor, e etc.
- Se não houverem mais posts, a função have_posts() retorna false e então o loop pára de ser executado.
Dentro deste while vai sua estrutura com as Template Tags. Fica mais ou menos assim:
<?php while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
A Template Tag the_content() exibe o conteúdo do post. Vamos rechear mais este código:
<?php while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<div id="texto">
<?php the_content(); ?>
</div>
<?php endwhile; ?>
Agora o conteúdo fica dentro de um div específico chamado #texto. E o Título do post foi colocado dentro de uma tag apropriada, H1.
Dentro deste loop você coloca tudo quanto é objeto que você queira que se repita em cada um dos posts que forem exibidos. Normalmente: data, autor, número de comentários, links para feeds ou qualquer outro elemento normal em blogs.
<?php while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<div id="texto">
<?php the_content(); ?>
<small><?php the_time('F jS, Y') ?> por <?php the_author() ?> </small>
</div>
<?php endwhile; ?>
Esse código puxa do banco: título do post, o conteúdo do post, o dia que foi publicado e o nome do autor. Recheando com mais códigos para inserir uma sidebar, cabeçalho e rodapé, já começamos a montar a estrutura de um site de verdade. Mesmo assim, o principal da informação do site, foi feito nestas poucas linhas.
Se quiser, pegue o arquivo de exemplo aqui.