Multiplos Loops

Para deixar seu blog com mais cara de site um dica é mudar o modelo de apresentação das notícias nas áreas principais. Ao invés da lista corrida dos últimos posts na home do blog, colunas organizam melhor as notícias além de permitir uma visão mais ampla do conteúdo, por exemplo, você pode dividir seu site em sessões e então listar na home as últimas notícias de cada sessão, deixando a disposição mais equilibrada. Dessa forma também é possível agrupar uma quantidade maior de posts evitando que os visitantes fiquem rolando o site ou procurando o conteúdo através da paginação.

O ‘WP_Query’ é a classe responsável pelos loops no WordPress, 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 é semelhante ao ‘query_posts‘, inclusive os argumentos são os mesmos.

Aqui vai um exemplo:

<?php $noticias = new WP_Query("category_name=noticias&showposts=3"); ?>
<?php if($noticias->have_posts()) : ?>
<div class="noticias">
<?php while($noticias->have_posts()) : $noticias->the_post(); ?>
trecho da interface a ser repetido...
<?php endwhile; ?>
</div>
<?php endif; ?>
 
<?php $artigos = new WP_Query("category_name=artigosamp;showposts=3"); ?>
<?php if($artigos->have_posts()) : ?>
<div class="artigos">
<?php while($artigos->have_posts()) : $artigos->the_post(); ?>
trecho da interface a ser repetido...
<?php endwhile; ?>
</div>
<?php endif; ?>

Notem que utilizando o ‘WP_Query’, as funções ‘have_posts()’ e ‘the_post()’ devem ser precedidas pelo objeto instanciado. Como ‘$noticias’ e ‘$artigos’ do exemplo mostrado acima.

Nesse exemplo eu também adicionei a condicional if para mostrar como alterar a formatação dos posts das diferentes sessões. No programês:

<?php $noticias = consulte_posts("quantidade_de_posts=3 e categoria_de_nome=noticias"); ?>
<?php se(houverem_posts_em_noticias()) : ?>
<div class="noticias">
<?php enquanto(houverem_posts_em_noticias()) : carregue_o_post_da_vez(); ?>
trecho da interface a ser repetido…
<?php verifique_se_ainda_há_posts; ?>
</div>
<?php fim_das_noticias; ?>

O importante é que tenham em mente que as tags abertas entre o ‘if’ e o ‘while’ devem ser fechadas entre o ‘endwhile’ e o ‘endif’, ok.


Deixe um Comentário










Comentários RSS

5 comentários

Marcelo Mesquita

E aê David, mais uma vez, uma boa pergunta que você fez que mereceu mais um post.

Obrigado pela participação!


Marcelo Mesquita

Allan,
seria muito complicado criar um script para a sua query. Eu sugiro criar um WP_Query para cada categoria mesmo.

Obrigado pela participação!


Allan

Marcelo, quem sabe você não possa me ajudar,
estou precisando fazer um query que seja mais ou menos o seguinte…
Tenho uma categoria que é pai de outras 5, e preciso pegar o ultimo posto de cada uma das 5.. mas preciso mostrar a ultima de cada uma… alguma ideia de como faze-lo?


David

Muito boa essa dica. Agora como fazer para exibir uma coluna dos post mais recentes em um loop e uma coluna de uma determinada categoria em outro loop sem que os posts não se repitam.


TrackBack

TrackBack

Evitando posts repetidos » Marcelo Mesquita

[...] Multiplos Loops [...]