Rewrite en las búsquedas de WordPress

Una de las características de WordPress, que además lo aventaja en temas de posicionamiento de cara a buscadores, es que maneja (haciendo rewrite) todas las direcciones de sus páginas mediante URLs amigables, sin parámetros. Pero ésto no se cumple en el caso de las búsquedas internas de WordPress, cuyos resultados se muestran en direcciones del tipo dominio.com/?s=busqueda

En bavotasan.com han publicado una forma muy sencilla de resolver este problema, haciendo que los resultados de las búsquedas se muestren sin parámetros en URLs de la forma dominio.com/search/busqueda

Para ello editamos el fichero functions.php de nuestro tema, y añadimos el siguiente código:

function search_url_rewrite_rule() {
if ( is_search() && !empty($_GET[‘s’])) {
wp_redirect(home_url(«/search/») . urlencode(get_query_var(‘s’)));
exit();
}
}
add_action(‘template_redirect’, ‘search_url_rewrite_rule‘);

A partir de ahora nuestras búsquedas internas en WordPress se mostrarán en URLs amigables del tipo dominio.com/search/busqueda . Y nótese que podemos cambiar la palabra search de la URL por otra que mejor nos convenga.