Cambiar los enlaces permanentes: problemas y soluciones

6

Esta es una entrada mitad WordPress-fu, mitad desahogo. Avisados estáis 😉

Desde hace unos días venía notando que no funcionaban ni la paginación inferior, ni el Calendario del histórico de entradas, ni el combo de “Artículos Anteriores”. Seguro que los que venís por aquí habitualmente no los habéis utilizado jamás, pero a veces vienen lectores nuevos a los que les da por darse un garbeo por las entradas más antiguas… qué menos que tenerles la alfombra roja siempre preparada.

Así que aproveché estos días, en los que estoy muy perro para escribir, para averiguar qué estaba interfiriendo. Y puse en práctica esto que aconsejan en Primero de WordPress:

Efectivamente, al desactivarlos todos comprobé que volvían a funcionar las paginaciones, con lo que sólo quedaba ir activando cada uno de los plugins y verificando que seguían funcionando los enlaces antes de activar el siguiente. Un curro que me llevó su tiempo porque, a lo tonto, tengo casi 30 plugins activos.

Con este método tendría que haber localizado a la primera el plugin conflictivo, pero tuve tres o cuatro falsos positivos (debidos al caché) que me desviaron un poco. Al final conseguí encontrar el “culpable”: Redirection, un plugin de redirecciones automáticas que tenía activado desde hace unos años.

Resulta que allá por 2012 yo era un fan de las “direcciones amigables” y me dio por pensar que las mías eran demasiado complicadas. ¿Quién iba a ser capaz de aprenderse el /año/mes/nombre-de-la-entrada de su entrada favorita? Sin embargo, si dejaba las URLs como /blog/nombre-de-la-entrada se lo pondría más fácil a todos los que se aprenden y teclean directamente las direcciones para acceder a ellas.

Está muy bien que los perroflautas del “derecho a Googlear” os manifestéis y hagáis asambleítas. Pero yo también tengo que velar por esa mayoría silenciosa de “tecleadores de URLS”

Y eso hice. A través de los “Ajustes” de WordPress cambié los enlaces permanentes para que sólo fueran /blog/nombre-de-la-entrada.

Sin embargo, poco tiempo después caí en la cuenta de que esto provocaba un problema bastante gordo. Los enlaces externos seguían teniendo el formato antiguo… así que quien venía al blog a través de esos enlaces se encontraba con el clásico aviso de “página no encontrada“.

La solución que encontré fue buscar plugins que redireccionaran las antiguas URLs al nuevo formato. No me calenté mucho la cabeza e instalé el Redirection, muy completo y que, entre otras cosas, me permitía ver las URLs que utilizaba la gente para venir antes de toparse con el aviso.

Al principio iba poniendo a mano las redirecciones de las URLs que traían más tráfico, pero hace unos meses encontré una forma más genérica, a base de regular expressions. Después de pegarme un poco con ellas, conseguí que se hiciera la redirección como quería: que cuando entraras con /blog/número/número/nombre-de-entrada te llevara a /blog/nombre.

Y justo aquí es donde está el problema que descubrí el otro día: resulta que cuando haces una búsqueda de entradas por mes (por ejemplo, si quieres ver las entradas de marzo), la URL de la página “resultados de búsqueda” que WordPress te monta por defecto es, precisamente, /blog/año/mes. Al no haber /nombre, el plugin sustituía la dirección por /blog/  solamente… es decir, ¡¡te llevaba a la página principal!!. Y eso es exactamente lo mismo que pasaba con la paginación: si entras en la página blog/30, la regular expression hacía que el plugin redireccionara también a la página principal.

Total, que si quería que funcionaran las búsquedas y la paginación no me valía ese plugin. Lo borré y, tras una búsqueda en profundidad, al final he optado por instalar el Change Permalink Helper, que lo que hace es tomar únicamente el slug de la URL entrante, buscarla en el listado de entradas del blog y presentar la que coincida.

Es decir, al no tomar en consideración las fechas, no interfiere con las búsquedas por meses ni por páginas. ¡Yuju! Asunto resuelto.

Así que ya lo sé para otra vez: si hay algún problema en la navegación de WordPress, lo mejor es empezar cuestionándose las redirecciones.

Buey, y todo este rollopost… ¿pa qué? Sobre todo para desahogarme :-P. También para recordarme a mí mismo que paso bastante tiempo (tal vez demasiado) hurgando en las “tripas” del blog. Y además, para que le sea útil a quien llegue a esta página buscando una solución a este problema. Vamos, que espero no ser el único pardillo al que le ha pasado esto XDD

 EDITADO (20/02/2014): Desde Planetahuevo el maese Darkpollo propone una solución aún más sencilla que no necesita plugin ni nada. Basta añadir una línea de código en el archivo .htaccess para que se haga la redirección automática y permanentemente. Y para mí, todo lo que sea evitar la saturación de plugins, que frecuentemente se quedan obsoletos, es mucho más eficiente. ¡Muchísimas gracias, maese!

 

6 COMENTARIOS

  1. Pues sí quieres saber otro problema lla, en los RSS de esta entrada hay una inyección de spam de productos de farmacia ya sabes para qué, bastante chula.
    Por sí lo quieres revisar.

    • ¡Maldición! Pensaba que ya me había librado de ese Pharma Hack desde que me cambié de hosting… Juerrrr…

      ¡Gracias por comentarlo, maese!

      • Jajajjaa, qué va 😛

        Bueno, creo que ya está solucionado… de momento. Tiene pinta de que venía de alguno de mis plugins, aunque no sé de cuál. He hecho una purga y cruzo los dedos para que sea suficiente.

        ¡Gracias a los dos por avisar!

Deja un comentario