¿Quieres redirigir tu búsqueda a la publicación si solo hay un resultado de búsqueda? Este fragmento mejora la experiencia de búsqueda en el sitio al eliminar la necesidad de hacer clic.
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:
add_action('template_redirect', 'single_result');
function single_result() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
}
}
}
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 echar un vistazo a nuestros otros artículos en el sitio como: Mejora la experiencia de búsqueda predeterminada de WordPress: la reseña completa de Search WP.
Obtengo un error de sintaxis, inesperado ' $wp_query ' (T_VARIABLE) cuando copio y pego tu código en el archivo functions.php. Tengo un tipo de publicación personalizado llamado 'cars' con 4 taxonomías y he creado una página de archivo que utiliza el plugin 'grid' y el plugin 'search and filter pro'. Todo funciona bien, pero quiero que se redirija a la página de la publicación en lugar de eso si solo tengo un resultado en el archivo. ¿Puedes darme alguna pista? ¡Gracias!
¡Gracias!
[…] realmente me gusta este – ¡gracias WP Snipp! Cuando un usuario busca en tu sitio web y solo hay un resultado, el usuario es llevado directamente a la […]
[…] [Fuente] […]
Buen código, pero haría una mejora… cambia
if ($wp_query->post_count == 1)aEl código original rompe la paginación cuando solo queda una publicación en la siguiente página y redirige a ella en lugar de mostrarla. por ejemplo. Si un archivo de publicación está configurado para mostrar 10 publicaciones por página y se devuelven 11 resultados, en lugar de mostrar la última publicación, redirige a ella.if ($wp_query->found_posts == 1)
¡esto está funcionando correctamente, gracias!
Me alegra que haya ayudado 🙂
[…] [Fuente: WPSNIPP] […]
Tu ejemplo funcionó bien para mí, todo parece estar funcionando.
Hola, yo también ahora. Lo siento. Gracias.
no hay problema 🙂