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