Você quer redirecionar sua pesquisa para o post se houver apenas um resultado de pesquisa? Este snippet melhora a experiência de pesquisa no site, eliminando a necessidade de um clique.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
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 ) );
}
}
}
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: Melhore a Experiência de Busca Padrão do WordPress – a Análise Completa do Search WP.
Eu recebo um erro de sintaxe, inesperado ‘$wp_query’ (T_VARIABLE) quando copio e colo seu código no arquivo functions.php. Então, o que eu tenho é um tipo de post personalizado chamado carros com 4 taxonomias e eu fiz uma página de arquivo que usa o plugin grid e o plugin search and filter pro. Tudo funciona bem, mas eu quero ser redirecionado para a página do post em vez disso, se eu tiver apenas um resultado no arquivo. Você pode me dar algumas dicas? Obrigado!
Obrigado!
[…] realmente gostei deste – obrigado WP Snipp! Quando um usuário pesquisa em seu site e há apenas um resultado, o usuário é levado diretamente para o […]
[…] [Fonte] […]
Bom código, mas eu faria uma melhoria… mude
if ($wp_query->post_count == 1)paraO código original quebra a paginação quando há apenas um post restante na próxima página e redireciona para ele em vez de mostrá-lo. Ex: Se um arquivo de post é configurado para mostrar 10 posts por página e 11 resultados são retornados, então em vez de mostrar o último post, ele redireciona para ele.if ($wp_query->found_posts == 1)
isso está funcionando corretamente, obrigado!
Que bom que ajudou 🙂
[…] [Fonte: WPSNIPP] […]
Sua amostra funcionou bem para mim, tudo parece estar funcionando.
Ei, eu também agora. Desculpe. Obrigado.
sem problema 🙂