Muitas vezes na nossa página inicial queremos ter apenas uma categoria de artigos, e não os últimos artigos de todas as categorias pois nem todas podem interessar, e é isto que vou explicar como se faz hoje, mostrar os últimos artigos de uma especifica categoria.
Para conseguirmos isto necessitamos de usar a função query posts e esta função é a nossa maneira de conseguir alterar os posts que o WordPress coloca na página, pode ser usado para diversas coisas mas neste casos vamos falar das categorias e numero de posts por página.
Começamos com um loop de WordPress completamente normal:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <small><?php the_date('d/m/Y') ?> by <?php the_author_posts_link() ?></small> <div class="artigo"> <?php the_content(); ?> </div> <p class="postmetadata">Na categoria <?php the_category(', '); ?></p> <h6><?php comments_popup_link('Sem Comentários »', '1 Comentário »', '% Comentários »'); ?></h6> <?php endwhile; else: ?> <p>Não existe nenhum post.</p> <?php endif; ?> |
Mas isto mostrará os últimos posts que houve em todas as categorias, e é nesta parte que o query_posts entra em ação, limitando o numero de posts que são mostrados na página e a categoria a que eles pertencem, depois do if e antes do while adicionamos
1 | <?php query_posts("category_name=atuacategoriaaqui&posts_per_page=3"); ?> |
Como podem ver aqui apenas colocamos a categoria da qual queríamos ver os artigos e colocamos um máximo de 3 posts por página e um & entre os dois. Após isto temos que fazer um reset ao loop do WordPress para o query_posts não entrar em conflitos mais tarde com outras páginas, então no final do nosso loop, depois do end if colocamos:
1 | <?php wp_reset_query();?> |
O código completo é:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php if ( have_posts() ) : ?> <?php query_posts("category_name=atuacategoriaaqui&posts_per_page=3"); ?> <?php while ( have_posts() ) : the_post(); ?> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <small><?php the_date('d/m/Y') ?> by <?php the_author_posts_link() ?></small> <div class="artigo"> <?php the_content(); ?> </div> <p class="postmetadata">Na categoria <?php the_category(', '); ?></p> <h6><?php comments_popup_link('Sem Comentários »', '1 Comentário »', '% Comentários »'); ?></h6> <?php endwhile; else: ?> <p>Não existe nenhum post.</p> <?php endif; ?> <?php wp_reset_query();?> |
E está concluído, de uma maneira mais simples que secalhar muitos de vocês pensaram. Na nossa página inicial só irá mostrar no máximo 3 posts e todos da mesma categoria, se quiserem mais alguns artigos sobre alterar o loop do WordPress coloquem nos comentários 🙂
[…] Fonte: Sara Vieira/DicasWP […]
Boa Noite,
Como seria se eu quisesse mostrar o último post de cada categoria na home ?
Cumps.
Muito obrigado parceiro, sua dica me salvou, eu consegui exibir no site uma seção onde mostra apenas os ultimos mangás lançados graças a sua dica, Deus o abençõe.
Não tens Gravatar? Clica aqui para saberes como ter o teu avatar pessoal(gravatar)!
14 de Março de 2012 ás 13:45