Rewrite en los resultados de búsqueda

Esta es de las cosas que da gusto compartir, pues abren luz a cuestiones a veces oscuras, hasta incomprensibles de WordPress. Porque nuestro querido CMS tienes muchas virtudes pero también hay cosas que, sinceramente, no se entiende como se han pasado, y esta es una de ellas.

Y me refiero al hecho de que, aunque tengas los enlaces permanentes «bonitos» (del inglés «pretty permalinks«) las URLs de los resultados de búsqueda siempre son horribles. Es como una rémora del pasado, máxime cuando en realidad WordPress si está preparado para ofrecer buenos permalinks incluso en esto.

Vamos a verlo …

Por ejemplo, si haces una búsqueda aquí mismo por «bbpress» lo que obtienes es esta URL:

https://ayudawp.com/?s=bbpress

Pero, haz la prueba, teclea esto otro también aquí mismo:

https://ayudawp.com/search/bbpress

¡Te sale lo mismo!

Entonces ¿por qué los resultados de búsqueda que te dan el formulario nativo ofrecen los permalinks horribles?. El caso es que la función para darte el resultado con los buenos permalinks existe en WordPress pero el rewrite no funciona.

Afortunadamente todo tiene solución, y Bavota ha escrito una función que, añadida al fichero functions.php de tu tema activo consigue que el rewrite funcione como debe, esta:

function search_url_rewrite_rule() {
	if ( is_search() && !empty($_GET['s'])) {
		wp_redirect(home_url("/") . 'search/' . str_replace(' ', '+', str_replace('%20', '+', get_query_var('s'))));
		exit();
	}
}
add_action('template_redirect', 'search_url_rewrite_rule');

Guardas y ya está, a partir de ahora todos tus permalinks de resultados de búsqueda serán del tipo tusitio.com/search/palabra

(0 votos, promedio: 0) Valora este artículo para ayudar a mejorar la calidad del blog

¿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

10 comentarios en “Rewrite en los resultados de búsqueda”

  1. Error HTTP 404.11 – Not Found

    El módulo Solicitar filtrado está configurado para denegar una solicitud que contiene una secuencia de doble escape.Error cuando se buscan 2 palabras en el input de búsqueda

  2. Antonio Rodriguez Du

    Este codigo tiene otro problema, y es que si buscas una palabra con ñ no te devuelve resultados y modifica el termino, por ejemplo si buscas bañera buscara baera

  3. Hola, muchas gracias por el aporte, ya lo tengo implementado, pero quisiera saber si hay alguna forma de cambiar donde dice Search/ por alguna otra palabra como busqueda/ o lo que sea, gracias por su timepo.

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

 

Ir arriba Ir al contenido