X

Como redirecionar quando a pesquisa do WordPress retorna apenas uma correspondência

Snippets por IsItWP

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.

Comentários   Deixe uma resposta

  1. 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!

  2. Obrigado!

  3. 12 Not-So-Obvious WordPress Tweaks to Improve Posts and Pages - WPMU DEV March 27, 2015 at 8:10 am

    […] 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 […]

  4. WordPress Conditional Tags (And Snippets) for Beginners March 4, 2015 at 11:52 pm

    […] [Fonte] […]

  5. Cameron Coleman July 26, 2013 at 6:31 pm

    Bom código, mas eu faria uma melhoria… mude

    if ($wp_query->post_count == 1) para
    if ($wp_query->found_posts == 1)
    O 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.

    1. isso está funcionando corretamente, obrigado!

      1. Que bom que ajudou 🙂

  6. 29 Wordpress Tweaks to Improve Posts and Pages October 18, 2011 at 9:03 am

    […] [Fonte: WPSNIPP] […]

  7. Sua amostra funcionou bem para mim, tudo parece estar funcionando.

    1. Cliff Paulick July 25, 2011 at 6:37 pm

      Ei, eu também agora. Desculpe. Obrigado.

      1. sem problema 🙂

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!