Hay veces que al buscar en un blog de WordPress, solo aparece un elemento / artículo en el resultado. Dependiendo de la organización de su sitio, este debería ser el elemento / artículo que el usuario estaba buscando de todos modos. Uno de nuestros usuarios preguntó si había una manera de redirigir a la entrada si la consulta de búsqueda da como resultado solo una coincidencia. En este artículo, vamos a mostrarle cómo redirigir a los usuarios a la entrada cuando la consulta de búsqueda solo devuelve una coincidencia.
Todo lo que tienes que hacer es abrir el archivo functions.php de tu tema y pegar el siguiente fragmento de código.
add_action('template_redirect', 'one_match_redirect'); function one_match_redirect() { if (is_search()) { global $wp_query; if ($wp_query->post_count == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); } } }
Ahora debes tener en cuenta que algunos usuarios no esperarán esta funcionalidad. Así que puede asustarlos.
Casey Lessard
Worked for me. I run a local search engine using WordPress and I have been trying to find this solution for some time. Does exactly as described. Thank you so much!
Eric
I want to make it so when some searches a specific phrase it redirects to an easter egg, like if someone searches “I see dead people” specifically it’ll redirect them to a URL I can define.
Nebulas Website Design
Thanks for this piece of code it made my client very happy and I didn’t thnk it could be done. However it’s not working for us we are using the Relevanssi search plugin should it work with this?
carlos
What if I want to redirect any search query to the most relevant post no matter what the number of posts the search returns? I’d really like to be able to do that.
Editorial Staff
Get rid of the if conditional from the code above, and it should do it.
Administrador
CalebZahnd
This is handy. Thanks!