Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Paginar un listado de entradas en una page template usada como portada en WordPress

Para paginar un loop en una page template usada como portada en WordPress se puede usar el mismo procedimiento que para un loop en cualquier otra plantilla. Lo único que hay que cambiar el el nombre de la variable, que en este caso no se llama paged sino page. Una de estas cosas que te pueden hacer perder medio día hasta que des con ello.

Entonces, para mostrar las entradas de la página actual de un loop paginado dentro de una plantilla de página (page template) en la portada (front page):

$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
$query = new WP_Query( array( 'paged' => $paged ) );

Todo está documentado en el codex de WordPress.

Entendiendo el sistema de paginación de WordPress: paginando el archivo, los resultados de búsqueda o un custom post type

Imago voragine.net
• Por

La función que ofrece WordPress para introducir una barra con enlaces a las diferentes páginas de resultados es paginate_links, es decir, un paginador de resultados del tipo "Anterior, 1, 2, 3, ..., Siguiente".

Esta función se encarga de construir las URLs para cada página de resultados, y es eficaz, salvo si entran en juego otros parámetros en la URL, por ejemplo s si queremos paginar los resultados de una búsqueda o post_type si estamos paginando un loop para un post type diferente a post. En estos casos, tendremos que ayudar a paginate_links a construir las URLs.

Para ello tenemos que darle a WordPress la siguiente información:

  • El loop a paginar.
  • El número total de páginas, en función de la cantidad de posts en el loop y la página actual en la que se está.
  • Los parámetros de la URL que queremos mantener en los enlaces a las distintas páginas.

Cómo conseguir un loop con offset y paginación

Imago voragine.net
[actualizado el ] • Por
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á. Para que funcione debemos relacionar los dos atributos de la siguiente manera.

Dos plugins de paginación al estilo flickr o digg para WordPress

Imago voragine.net
[actualizado el ] • Por
PageNavi. Muy configurable. Funciona añadiendo if(function_exists(’wp_pagenavi’)) { wp_pagenavi(); } al código de la página donde se quiera mostrar. No he conseguido que funcione en WordPress 2.7 y no sé por qué. Digg Style Pagination. También muy configurable, pero no se puede hacer desde el gestor, hay que añadir las directivas en el código. El código base para hacerlo funcionar es if(function_exists("pagination")) pagination());.

Dos plugins de paginación para WordPress

Imago voragine.net
[actualizado el ] • Por
jQuery-Pagebar. Utiliza jQuery y el estilo es fácilmente configurable desde el gestor. Muy versátil, con opciones interesantes como sustituir la barra de navegación de WordPress automáticamente. Paginator. Tiene únicamente dos opciones de configuración: cuántas páginas mostrar en la barra y si mostrar el número total de páginas. Muy, muy sencillo y con una visualización que escapa a lo convencional.