Parece fácil y la solución lo es por su sencillez, pero llegar a ella cuesta mucha búsqueda e intentos fallidos.
Para conseguir un loop con offset paginado utilizaremos query_posts
. Si lo utilizamos asignando un valor directo al atributo offset no funcionará:
<?php $paged = (get_query_var( 'paged' )) ? get_query_var( 'paged' ) : 1; query_posts( "offset=5&paged=paged" ); if ( have_posts() ) : while ( have_posts() ) : the_post(); // código del loop endwhile ; else : endif ; wp_reset_query(); ?> |
Para que funcione debemos relacionar los dos atributos de la siguiente manera:
$offset = ( 5 * $paged ) - 5; |
De manera que el loop quedaría:
<?php $paged = (get_query_var( 'paged' )) ? get_query_var( 'paged' ) : 1; $offset = ( 5 * $paged ) - 5; query_posts( "offset=$offset&paged=paged" ); if ( have_posts() ) : while ( have_posts() ) : the_post(); // código del loop endwhile ; else : endif ; wp_reset_query(); ?> |
La solución definitiva la encontré gracias a los chicos de The Boring Group. Por el camino quedaron muchas otras, entre ellas un hilo de los foros oficiales de WordPress que plantea una solución bella pero que a mí no me sirvió.
1 comentario