Uma das tarefas mais comuns para programadores WordPress é exibir uma lista de posts de uma categoria específica.
Método 1: Get_posts() – Rápido e simples
<?php
$args = array(
'posts_per_page' => 5,
'category_name' => 'news',
'orderby' => 'date',
'order' => 'DESC',
);
$posts_array = get_posts( $args );
foreach ( $posts_array as $post ) : setup_postdata( $post ); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach;
wp_reset_postdata();
?>
Método 2: Wp_Query – Controlo total
Para casos de uso avançados com paginação e filtros complexos.
<?php
$the_query = new WP_Query( array(
'cat' => 12,
'posts_per_page' => 3,
) );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endwhile;
wp_reset_postdata();
endif;
?>
Dicas de otimização
- Cache: Usa Transient API para resultados de consultas.
- Limitar campos:
'fields' => 'ids'se só precisas de IDs. - no_found_rows:
'no_found_rows' => truesem paginação.



