Exibir Termo de Pesquisa e Contagem de Resultados no WordPress

Neste tutorial, compartilharemos como você pode adicionar uma função simples à sua página de busca que exibirá o termo de busca e o número de resultados. Este recurso foi um pedido especial de um de nossos usuários por e-mail. Se você quiser que abordemos um tópico, sinta-se à vontade para fazer uma sugestão.

Exibindo termo de pesquisa e contagem de resultados na pesquisa do WordPress

Abra seu arquivo search.php em seu tema e adicione o seguinte código:

<h2 class="pagetitle">Search Result for <?php /* Search Count */ $allsearch = new WP_Query("s=$s&showposts=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(''); _e('<span class="search-terms">'); echo $key; _e('</span>'); _e(' &mdash; '); echo $count . ' '; _e('articles'); wp_reset_query(); ?></h2>

O código acima exibirá algo como isto:

Resultado da busca por twitter — 15 artigos

Você também pode destacar o termo de busca adicionando a classe CSS .search-terms à folha de estilo do seu tema. Aqui está um CSS simples para começar:

.search-terms {
background-color:yellow;
color:blue;
}

Esta é apenas uma das coisas legais que você pode fazer para sua Página de Busca ao personalizá-la. Você também pode destacar termos de busca nos resultados, e até mesmo adicionar um recurso de busca por categoria à sua busca no WordPress.

Fonte: Michael Martin

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

15 CommentsLeave a Reply

  1. Posso usar este código no arquivo sidebar.php? Como preciso mostrar o termo de busca e a contagem de resultados na barra lateral. Por favor, ajude.

  2. thanks a lot for this snippet! :)

    de acordo com o codex do wp, a função wp_specialchars está obsoleta. diz que você deve usar esc_html em vez disso.

    atenciosamente,
    marco

    • Da próxima vez darei uma olhada mais atenta nos comentários. CHADHAYTON já postou um link de como você pode lidar com isso agora.

  3. echo $wp_query->found_posts;
     
    Adicionar isto no topo da sua página de busca exibirá o número de posts encontrados para uma busca específica.
     
    echo get_search_query();
     
    Isto exibirá o termo de busca (inserido na caixa de busca pelo visitante do seu site).
     
    timer_stop(1);
     
    Isto exibirá o tempo que levou para executar a busca.
     
    Juntos, você pode exibir algo como:
     
    Sua busca por “café em grão” retornou “16” posts em “0.87” segundos.

  4. Uau. É muito mais simples do que isso contar os resultados da busca do WordPress, aqui:

        global $wp_query;
        $count = sizeof( $wp_query->posts );
        echo"<pre>";
        //var_dump($wp_query);// The WP Query Object
        var_dump($wp_query->posts); // The WP Query Object's 'posts' property (note the plural)
        echo"</pre>";
    

    Se você inserir esse trecho no seu template de busca, ele exibirá as propriedades da variável ‘$wp_query’, especificamente a propriedade ‘posts’ do objeto. Este é um array que armazena uma coleção dos posts retornados pela consulta de busca, com os quais você pode fazer várias coisas assim que acessá-lo, incluindo (*tambores*), *contar* o número de posts nesse array usando a função ‘count()’ ou ‘sizeof()’ do PHP.

    • Seu código está um pouco cortado. Há alguma maneira de você nos enviar o trecho por e-mail para que possamos testá-lo e escrever sobre ele. Obviamente, o crédito total será dado a você.

      Admin

    • Chris,

      Isso não vai funcionar. O objetivo é descobrir o número total de resultados que correspondem à consulta — não o número atualmente buscado. Se houver mais resultados do que cabem em uma página, seu código obterá apenas o número de elementos em uma página.

  5. Boa ideia. Má execução.
    Por que diabos você iria querer traduzir uma tag span???
    E a minha favorita: _e(''); Hã??
    Por que você iria querer consultar a mesma busca duas vezes?
    Não faz sentido nenhum.

    Mas eu não quero odiar, é assim que deveria ser feito (na minha humilde opinião):


    post_count); ?>

Deixar uma resposta

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.