Multiplos Loops
10/02/2009 Por: Guilherme Aguiar em: Nos blogs
Fonte: Blog do Marcelo Mesquita (equipe Web MinC)
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.










Kaleb Martins
06/03/2009 às 16:27
Muito Perfeito..muito bom esse post..
Para mim vai servir muito.
Kaleb Martins
06/03/2009 às 20:22
Certo.. muito bom, grande dica. Contudo gostaria de saber como inserir imagem.
the_thumb(‘thumbnail’,'width=”100″‘); ?> esse codigo não deu certo. e agora?
benedito gonzalez
19/03/2009 às 02:16
eu uso o wp 2.7 e aqui soh instalou mas nao consigo criar novas areas e capas, gostaria de 1 ajuda pois achei bem interessante o tema
WP_Query «..
14/02/2010 às 14:00
[...] Multiplos Loops (http://xemele.cultura.gov.br/blog/2009/02/10/multiplos-loops/) [...]