Enlaces a entrada siguiente y anterior dentro de la misma categoría

Cuando estás viendo una entrada en un sitio creado con WordPress, los temas suelen incluir enlaces para navegar a las entradas anterior y siguiente, lo que es un modo estupendo de mantener a tus lectores visitando tus contenidos.

¿Hay algún problema?

Sin embargo, estos enlaces solo atienden, por defecto, al criterio cronológico, pues enlazan a las entradas anterior y siguientes por fecha de publicación, no tienen en cuenta ningún otro criterio de coherencia de contenidos.

Dicho esto, ¿a que tendría todo el sentido que estos enlaces se restringiesen a las entradas anterior y siguiente de la misma categoría?

De este modo el lector siempre tendría algo que leer relacionado con el contenido que inicialmente eligió.

La solución

Si esto supone un problema para ti, o simplemente quieres mejorar la relación semántica entre los contenidos que enlazas, la solución pasa por modificar las funciones que generan esos enlaces de navegación, que serán:

  1. O utiliza  previous_post_link y  next_post_link
  2. O usa  get_the_post_navigation
  3. O también puede usar get_adyacent_post

Dependiendo de tu tema se usará uno de los métodos anteriores para los enlaces, pero con cualquiera de ellos puedes aplicar el atributo in_same_term, para que el enlace a las entradas anteriores y posteriores se restrinjan a la taxonomía de la entrada actual.

Cambiarlo si el tema utiliza previous_post_link y next_post_link

De este modo, si quieres aplicarlo a las funciones previous_post_link o next_post_link se haría así:

En este ejemplo el enlace a la entrada anterior ( %link) tendrá el título de la entrada ( %title), y estará en la misma taxonomía ( TRUE).

La estructura de los argumentos que puedes utilizar sería esta:

En el caso de la función next_post_link se hace exactamente igual. Los argumentos serían los mismos, estos:

Si el tema utiliza get_the_post_navigation

En este caso debemos sustituir la función actual del tema por algo así:

Como hacerlo con get_adyacent_post

Si tu tema utiliza la función get_adyacent_post, tendrías que modificar la función incluida en tu tema a algo similar al siguiente código:

El patrón que se utiliza para incluir los atributos es:

Sea cual sea el método que use tu tema tienes la documentación completa sobre cada función en los enlaces que te he puesto la primera vez que los cito en el artículo.

¿No se puede hacer de otra manera?

¡Esto es una fiesta!, y en WordPress siempre hay varias maneras de hacer todo, es la gloria de tener todo el código libre y abierto.

Otra manera es sustituir la función que genere los enlaces a las entradas anterior y siguiente en tu tema por una nueva.

Para ello copia la plantilla single.php de tu tema al tema hijo y añade lo siguiente:

A continuación, si lo deseas, puedes añadir algo de CSS a la hoja de estilos del tema hijo, más que nada para hacer los enlaces más estilosos:

¿Y no hay plugins para esto?

Bueno sí, alguno hay.

Que yo sepa están estos dos plugins que permiten cambiar el comportamiento por defecto de los enlaces a entrada anterior y siguiente para que estén dentro de la misma categoría:

Verás que llevan tiempo sin actualizarse pero deberían funcionar igualmente.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(3 votos, promedio: 5)
¿Te gustó este artículo? ¡No sabes lo que te estás perdiendo en YouTube!

Autor: Fernando Tellado

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran. Mi último libro es WordPress - La guía completa. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera. Sigue a @fernandot en Twitter

Comparte esta entrada en
468 ad

Ir al contenido