Oferta SiteGround Black Friday

Paginación en WordPress sin plugin

Ya sé que la mayoría de los que me leéis sois adictos a Pagenavi, ese maravilloso y bien construido plugin que ofrece paginación a nuestro WordPress de manera sencilla.

Pero ¿se puede añadir paginación sin instalar plugins? …

Pues claro, igual que añadimos paginación de comentarios sin plugin podemos añadir paginación a nuestra web sin usar Pagenavi o algún otro plugin, solo hay que usar una función interna de WordPress que lleva ahí desde la versión 2.1, paginate_links y sus posibles parámetros.

El código que nos ofrecerá esta maravilla es el siguiente:

// obtenemos el total de páginas
global $wp_query;
$total = $wp_query->max_num_pages;
// solo seguimos con el resto si tenemos más de una página
if ( $total > 1 )  {
     // obtenemos la página actual
     if ( !$current_page = get_query_var('paged') )
          $current_page = 1;
     // la estructura de “format” depende de si usamos enlaces permanentes "humanos"
     $format = empty( get_option('permalink_structure') ) ? '&page=%#%' : 'page/%#%/';
     echo paginate_links(array(
          'base' => get_pagenum_link(1) . '%_%',
          'format' => $format,
          'current' => $current_page,
          'prev_next' => True,
          'prev_text' => __('« Anterior'),
          'next_text' => __('Siguiente »'),
          'total' => $total,
          'mid_size' => 4,
          'type' => 'list'
     ));
}

La explicación de lo que hacen los distintos parámetros es la siguiente:

  • base
    Esta es la ruta de los enlaces de número de página, sin incluir la parte específica de paginación de la URL. Los caractes %_% se sustituirán en esa URL para la pa rte específica de la página de la URL.
  • format
    Esta es la parte de la «página» de la URL. %#% se sustituye pro el número de página.. Por ejemplo, page/%#% o ?page=%#%.
  • total
    El numéro total de páginas disponibles.
  • current
    El número de la página actual.
  • show_all
    Lista todos los enlaces a páginas en vez de limitarlo a un cierto número de enlaces a izquierda o derecha de la página actual..
  • prev_next
    Incluye los enlaces a «Anterior» y «Siguiente» (si procede), como harías normalmente con la función previous_posts_link(). Solo funcionará si también ponemos previamente la función prev_next en «True».
  • prev_text y next_text
    Texto que irá dentro de los enlaces «Anterior» y «Siguiente».
  • end_size
    El número de enlaces a páginas a mostrar al final. Por defecto está a 1 (por ejemplo: 1 2 3 … 10).
  • mid_size­
    El número de páginas a mostrar en cada lado de la página actual. Por defecto está puesto a 2 (ejemplo: 1 … 3 4 5 6 7 … 10).
  • type
    Te permite especificar el estilo de salida. Por defecto es «plain», o sea, una lista de enlaces. También puede establecerse a formatos de «list» (o sea, enlaces englobados en ul y li) o de «array» (lo que mostrará una selección de enlaces a páginas que pueden definirse como tu quieras).
  • También puedes añadir argumentos y fragmentos de query, a tu gusto.

El código del ejemplo generará un HTML como este:

<ul class='page-numbers'>
     <li><span class='page-numbers current'>1</span></li>
     <li><a class='page-numbers' href='http://miwordpress.com/page/2/'>2</a></li>
     <li><a class='page-numbers' href='http://miwordpress.com/page/3/'>3</a></li>
     <li><a class='page-numbers' href='http://miwordpress.com/page/4/'>4</a></li> 
     <li><a class='page-numbers' href='http://miwordpress.com/page/5/'>5</a></li>
     <li><span class='page-numbers dots'>...</span></li>
     <li><a class='page-numbers' href='http://miwordpress.com/page/10/'>10</a></li>
     <li><a class='next page-numbers' href='http://miwordpress.com/page/2/'>Next &raquo;</a></li>
</ul>

Una vez tengas el código a tu gusto solo tienes que incluirlo – preferentemente – en las primeras líneas del archivo footer.php de tu tema activo.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 3.8 / 5. Total de votos: 5

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

9 comentarios en “Paginación en WordPress sin plugin”

  1. Albert_oping2004

    A mi tambien me paso lo mismo..   alguna solucion porfa… estamos en linea.. ayuda.. se ve bueno.  gracias. !!!!!!

  2. Para solucionar la linea de $format agreguen esto estas lineas:
    $permalink_structure = get_option('permalink_structure');$format = empty( $permalink_structure ) ? '&page=%#%' : 'page/%#%/';

  3. El único problema que tuve con esta función y que todavia no pude corregir es que al hacer una busqueda no me detecta que no es un "pretty permanlink" (?s=palabra) y me agrega el paginado del tipo /page/%#%/. Esto hace que me tire un error

    1. Duban Alexei Suarez Mejia

      query_posts(array(‘category_name’ => $slug_name_category,’posts_per_page’=>2 ))

      reemplazas la variable con el slug de la categoria

  4. Carlos Javier Molina

    amigo, buen dia! como puedo modificar la paginacion pero dentro del backend en wordpress! es decir, yo necesito que en la pagina de productos de woocomerce se muestren 50 o 100 productos, no 20, es que llevo rato googleando pero todo lo que consigo es para la paginacion de post ya en las paginas publiadas, yo necesito es que me muestre mas produtos para poder modificarlos mas rapidamente, en este caso en particular necesito borrar todos los productos de una categoria! y consegui plugins para editarlas pero no permiten borrarlas!! por eso me serviria mucho poder escoger mas de 20 cada vez q borre!.. de ante mano muchas gracias por su ayuda

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio