WP-PageNavi

Descripción

¿Quieres reemplazar los viejos enlaces ← Entradas anteriores | Entradas siguientes → con enlaces a las páginas?

Este plugin dispone de la etiqueta de plantilla wp_pagenavi () que genera enlaces de paginación amigables.

Uso

En tu tema tienes que encontrar las llamadas a next_posts_link() y previous_posts_link() y reemplazarlas.

En el tema TwentyTen se ve así:

<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div>

Deberías reemplazar esas dos líneas con esto:

<?php wp_pagenavi(); ?>

En páginas con varias partes deberías ver el código así:

<?php wp_link_pages( ... ); ?>

y reemplazarlo con esto:

<?php wp_pagenavi( array( 'type' => 'multipart' ) ); ?>

Ve a WP-Admin -> Ajustes -> PageNavi para configurarlo.

Cambiando el CSS

Si necesitas configurar los estilos CSS de WP-PageNavi puedes copiar el archivo pagenavi-css.css del directorio del plugin al directorio de tu tema y hacer ahí tus modificaciones. De este modo no perderás los cambios cuando actualices el plugin.

Si lo prefieres puedes desmarcar la opción «¿Usar pagenavi.css?» de la página de ajustes y añadir los estilos al archivo style.css de tu tema directamente.

Cambiando los nombres de las clases

Hay filtros que se pueden utilizar para cambiar los nombres por defecto de las clases asignadas a los elementos de navegación de página.

Filtros

  • wp_pagenavi_class_pages
  • wp_pagenavi_class_first
  • wp_pagenavi_class_previouspostslink
  • wp_pagenavi_class_extend
  • wp_pagenavi_class_smaller
  • wp_pagenavi_class_page
  • wp_pagenavi_class_current
  • wp_pagenavi_class_larger
  • wp_pagenavi_class_nextpostslink
  • wp_pagenavi_class_last

Uso de filtros

// Simple Usage - 1 callback per filter
add_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_previouspostslink_class');
add_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_nextpostslink_class');
add_filter('wp_pagenavi_class_page', 'theme_pagination_page_class');

function theme_pagination_previouspostslink_class($class_name) {
  return 'pagination__control-link pagination__control-link--previous';
}

function theme_pagination_nextpostslink_class($class_name) {
  return 'pagination__control-link pagination__control-link--next';
}

function theme_pagination_page_class($class_name) {
  return 'pagination__current-page';
}


// More Concise Usage - 1 callback for all filters
add_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_class');
add_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_class');
add_filter('wp_pagenavi_class_page', 'theme_pagination_class');

function theme_pagination_class($class_name) {
  switch($class_name) {
    case 'previouspostslink':
      $class_name = 'pagination__control-link pagination__control-link--previous';
      break;
    case 'nextpostslink':
      $class_name = 'pagination__control-link pagination__control-link--next';
      break;
    case 'page':
      $class_name = 'pagination__current'
      break;
  }
  return $class_name;
}

Estado de desarrollo

Desarrollo

Agradecimientos

Donaciones

He pasado la mayoría de mi tiempo creando, actualizando, manteniendo y dando soporte a estos plugins. Si de verdad te gustan mis plugins y puedes pasarme un par de dólares lo apreciaré de verdad. Si no siéntente libre de usarlo sin obligación alguna.

Capturas

  • Con estilos personalizados
  • Administración - Página de opciones

Preguntas frecuentes

Error al activarlo: “Parse error: syntax error, unexpected…”

Asegúrate de que tu alojamiento funcione con PHP 5. El único modo seguro de hacerlo es añadir esta línea a wp-confing.php (después de la etiqueta de apertura <?php):

var_dump(PHP_VERSION);

¡Cuando voy a la página 2 veo las mismas entradas que en la página 1!

Estás utilizando mal query_posts(). Echa un vistazo al modo correcto de usar query_posts()

¿Funciona PageNavi con instancias secundarias de WP_Query?

Sí; lee este tutorial

¿Cómo ignoro la página de opciones?

Si estás usando un plugin multilingüe probablemente prefieras ignorar estas cadenas en la página de opciones.

Lo puedes hacer así:

<?php wp_pagenavi( array( 'options' => PageNavi_Core::$options->get_defaults() ) ); ?>

Reseñas

7 de octubre de 2021
After all these years of using Comic Easel, I noticed this plugin was built-in as part of that theme. Now that I'm aware, I've installed this and customized it to my liking.
10 de agosto de 2021
I would welcome a bit more customization but it works well
23 de junio de 2021
This plugin works great, and the support is top class Thank you to the developer for contributing this excellent plugin for the community !!
18 de marzo de 2021
You would think such page navi feature would be part of WP core already instead of the lame Previous and Next links the system offers. If you have lots of content available for visitors search on your site, this plugin is a must to make the pagination nav the way it should be. One line of code replacement on the template, and it just works.
25 de julio de 2020
I have been using this plugin years ago on a news website, and always been happy with it. Didn't have another website suitable for this kind of navigation until now, just set it up (easy!) and loving it again. (Also, the second website is ClassicPress -- no issues.) Thank you!
Leer todas las 139 reseñas

Colaboradores y desarrolladores

Este software es de código abierto. Las siguientes personas han contribuido a este plugin.

Colaboradores

"WP-PageNavi" ha sido traducido a 52 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce "WP-PageNavi" a tu idioma.

¿Interesado en el desarrollo?

Revisa el código, echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

2.94.0

  • NUEVO: Añadido el parámetro “args” en el filtro `wp_pagenavi`. Gracias a @asadowski10
  • NUEVO: Mejorada la accesibilidad de los enlaces de navegación. Gracias a @carlabobak

2.93.4

  • CORRECCIÓN: Actualización al marco de referencia SCB para hacerlo compatible con PHP 8.

2.93.3

  • CORREGIDO: Actualizado el marco de trabajo SCB para eliminar `contextual_help`

2.93.2

  • NUEVO: Compatible con WordPress 5.4
  • CORRECCIÓN: Asegurar que los enlaces de acción son siempre un array

2.93.1

  • CORREGIDO: Avisos de administración duplicados de ajustes guardados

2.93

  • Se elimina el screen_icon de SCB.

2.92

  • Añadido el atributo title a los enlaces de las páginas. Gracias a @Mahjouba91

2.91

  • Valida las opciones de texto con kses
  • Actualiza el Framework SCB

2.90

  • Retirados los archivos po/mo del plugin
  • Usa translate.wordpress.org para traducir el plugin

2.89.1

  • FIXED: before and after args

2.89

  • NUEVA: opción wrapper_tag para permitir otra etiqueta HTML además de DIV y la opción wrapper_class para permitir otro nombre de clase además de wp-pagenavi. Créditos par @Mahjouba91.

2.88

  • NUEVO: Añadidos filtros para alterar los nombres de las clases. Créditos para @bookwyrm

2.87

  • NUEVO: Uso del archivo nativo de WordPress «uninstall.php»

2.86

  • NUEVO: Actualización a 4.0
  • NUEVO: Añadidas «rel=next» y «rel=previous»

2.85

  • CORREGIDO: Las opciones «Usar pagenavi-css.css» y «Mostrar siempre la navegación de la página» no se guardan.

2.84

  • CORREGIDO: Se actualizó el marco de trabajo «scb» para corregir el error de incompatibilidad con «scbAdminPage»

2.83

  • Añadido parámetro «echo»
  • añadidas traducciones al estonio y bengalí
  • actualizado scbFramework

2.82

  • corregidos los enlaces «prev/next» que no aparecían en algunas condiciones
  • añadidas traducciones al hebreo, georgiano y azerbaiyano
  • actualizado scbFramework

2.81

  • requieren un tipo explícito; corrige errores con páginas de múltiples partes

2.80

  • compatibilidad para páginas de múltiples partes y consultas de usuarios
  • movidos los enlaces «anterior/siguiente», «antes/después», «primero/último»
  • más información

2.74 (2011-02-17)

  • Añadidas las clases ‘smaller’ y ‘larger’
  • Añadidos argumentos de $query a wp_pagenavi()
  • Traducciones actualizadas
  • más información