¿Quieres personalizar la URL de búsqueda de WordPress de tu sitio? Puedes crear dinámicamente una URL personalizada basada en el término de búsqueda real que tus visitantes escriben en tu barra de búsqueda.
Con el fragmento de abajo, así se verá tu URL de búsqueda:
http://example.com/search/searchterm
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
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');
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera consultar cómo conectar Google Analytics a tu sitio, para que puedas rastrear tu búsqueda en el sitio con facilidad.
Gracias por el fragmento, pero hay un problema cuando intentas buscar palabras con acentos (á, é, í, ó, ú) u otras letras (ñ, ç, …)
Tienes que decodificar el término de búsqueda en query_vars y en search_query. Aquí está mi código
function you_search_filter($s) { return urldecode($s); }
add_filter(‘get_search_query’, ‘you_search_filter’);
add_filter(‘the_search_query’, ‘you_search_filter’);
add_action(‘parse_query’, ‘you_query_vars_search_filter’ );
function you_query_vars_search_filter( $qvars ) { $qvars->query_vars[‘s’] = urldecode($qvars->query_vars[‘s’]); return $qvars;
}
Espero que sea útil
¿Hay alguna ventaja SEO al usar esto en lugar de la URL predeterminada?
Buena función, por cierto, la usaré.
Para ser honesto, no creo que sea de gran ayuda para el SEO, sin embargo, si tienes enlaces bonitos habilitados, esto continúa esa apariencia en lugar de ?s=.