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;
}

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

FAQ

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

17 de agosto de 2023
Simples e totalmente funcional. Resolvendo o problema de paginação com extrema facilidade. Parabéns aos devs.
22 de noviembre de 2022
I am using this plugin + Divi. It works just fine, but there is a bug with the slugs of the pages and the post types. If you have, for example, a post type with the slug "speakers" and your page is also call "speakers", both slugs will be the same and this is causing the plugin to break. Most people on the internet are looking for this error as the page/2 error. Be sure the slugs does not match and it will work just fine.
17 de agosto de 2022
A simple and excellent plugin. The display of the blog list becomes much smarter, so it is very useful. Currently, I've been using in combination with "Styles For WP Pagenavi Addon".
24 de junio de 2022
Pure code and so simple to customize. The simplest plugin I ever installed. A couple of minutes to get it working. Couldn't be happier 🙂 I only added this snippet to replace my Woocommerce pagination: remove_action('woocommerce_pagination', 'woocommerce_pagination', 10); function woocommerce_pagination() { wp_pagenavi(); } add_action( 'woocommerce_pagination', 'woocommerce_pagination', 10);
9 de mayo de 2022
Thanks for that plugins I use till long years to add a navigation bar box inside my blog including more than 2000 entries 😉
Leer todas las 146 reseñas

Colaboradores y desarrolladores

«WP-PageNavi» es un software de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

«WP-PageNavi» está traducido en 53 idiomas. 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.1

  • CORREGIDO: Advertencias con PHP 8.2

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

  • CORREGIDO: Actualizar el entorno de trabajo de SCB para que sea 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
  • CORREGIDO: 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

  • CORREGIDO: argumentos antes y después

2.89

  • NUEVO: 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. Gracias a @Mahjouba91.

2.88

  • NUEVO: Añadidos filtros para alterar los nombres de las clases. Gracias a @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