Debes indicarle a tu consulta realizada con WP_Query la cantidad que deseas mostrar con el parámetro
posts_per_page. Un ejemplo:
Código PHP:
Ver original$mi_consulta = new WP_Query
( array( 'posts_per_page' => 5 ) );
Eso devolvería las últimas 5 entradas. Para paginar debes indicar además el parámetro
paged indicando la página en la que estas. Por ejemplo para mostrar la segunda página con los siguientes 5 posts habría que escribir:
Código PHP:
Ver original$mi_consulta = new WP_Query
( array( 'posts_per_page' => 5, 'paged' => 2 ) );
Si juegas con estos dos parámetros puedes hacer la paginación que desees. Para obtener la página actual (el parámetro paged) hazlo de la siguiente forma:
Código PHP:
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$query = new WP_Query( array( 'posts_per_page' => 5, 'paged' => $paged ) );
Y los enlaces para mostrar las siguientes 5 entradas y las 5 anteriores créalos utilizando las funciones
previous_posts_link() y
next_posts_link(). Un ejemplo de todo esto funcionando:
Código PHP:
<?php if ( $mi_consulta->have_posts() ) : ?>
<?php while ( $mi_consulta->have_posts() ) : $mi_consulta->the_post(); ?>
<?php the_title(); ?>
<?php endwhile; ?>
<?php
next_posts_link( '5 Anteriores', $mi_consulta->max_num_pages );
previous_posts_link( '5 Siguientes' );
?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'No hay resultados para mostrar.' ); ?></p>
<?php endif; ?>
Documentación de todo esto: