Como mostrar os ultimos posts de uma categoria

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&aacute;rios &#187;', '1 Coment&aacute;rio &#187;', '% Coment&aacute;rios &#187;'); ?></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&aacute;rios &#187;', '1 Coment&aacute;rio &#187;', '% Coment&aacute;rios &#187;'); ?></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 🙂


Eu sou uma Webdesigner e programadora baseada em espinho com uma paixão pelas novas vertentes do webdesign como o Wordpress, HTML5 e CSS3, neste momento podes-me encontrar no Plus Coding.


Com um total de 9 posts.

3 Comentários

  1. […] Fonte: Sara Vieira/DicasWP […]

  2. Rogério
    1 de Julho de 2013 ás 22:50

    Boa Noite,

    Como seria se eu quisesse mostrar o último post de cada categoria na home ?

    Cumps.

  3. Ricardo
    20 de Agosto de 2015 ás 15:50

    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.

Comenta com força que é de graça!