Personalizando a busca do WordPress – Filtrando por categorias

Personalizando a busca do wordpress - Filtranto por categoriasO WordPress a cada versão fica mais completo e mais seguro, porém existe uma deficiência que persiste desde o começo, sua busca. Ao longo dos 4 anos de desenvolvimento com WordPress aqui na Contagia, nossa maior preocupação era como vamos personalizar a busca para que se adeque a necessidade do projeto, um site de imobiliária ou um site que necessite de uma busca de produtos por código. Fizemos muitos sites que precisavam de uma busca personalizada e tivemos que usar nossa criatividade e muita pesquisa para conseguir adequar a necessidade do cliente.

Depois de muitas cabeçadas agora digo que é possível personalizar a busca da forma que você precisar. Por isso resolvi fazer uma série de artigos mostrando como fazemos pra personalizar a busca do WordPress.

Filtrar a busca do WordPress por categoria

O primeiro exemplo que vou dar é muito simples, digamos que você tenha uma categoria de notícias e deseja colocar uma busca dentro dessa categoria para retornar apenas as notícias. Como é o caso desse site onde realizamos esse trabalho.

Criando o formulário de busca

Crie o formulário com um campo tipo hidden com o ID da categoria que deseja realizar as buscas.

 <form id="searchform" action="<?php bloginfo('home'); ?>/" method="get">
  <input id="s" type="text" name="s" value="<?php echo wp_specialchars($s, 1); ?>" />
  <input type="hidden" name="cat" value="Id da categoria" />
  <input id="searchsubmit" type="submit" value="Buscar" />
 </form>

Quando você cria um campo com o name igual cat o WordPress entende que a busca será realizada apenas na categoria do ID passado no value.

Adicionando um campo select com categorias na busca do WordPress

Outra maneira é disponibilizar que o usuário escolha a categoria que deseja fazer a busca, como realizamos para este projeto. Para isto basta adicionar a tag abaixo dentro do formulário no lugar do campo tipo Hidden que adicionamos no formulário anterior.

<?php wp_dropdown_categories('show_option_none=Selecione a categoria'); ?>

A tag wp_dropdown_categories busca todas as categorias existentes e cria um campo tipo select já com o name igual cat, que por padrão o WordPress entende que será realizada a busca por categoria. Consultando a documentação você pode fazer várias configurações como excluir ou incluir apenas categorias específicas.

Você deve estar me perguntando o que tem de novo nesse artigo? Eu lhes digo, vamos com calma :). Vamos entender desde o começo como funciona a busca e o que é possível fazer, darei vários exemplos e verás que é possível fazer muita coisa. Tenho certeza que este artigo já irá ajudar muita gente, é só pegar e usar, testei na última versão do WordPress (3.6.1).

Qualquer dúvida ou algo para acrescentar só deixar um comentário e terei prazer em responder. Pra continuar acompanhando os posts sobre como Personalizar a Busca do WordPress é só assinar nossa newsletter ai embaixo. Até aproxima!

Newsletter

Cadastre-se Agora!

Artigos Similares

Djalma Toledo

Técnico em eletrônica formado pelo CEPHAS de São José dos Campos. Autodidata em XHTML, CSS e WordPress no qual se especializou nos últimos anos. As vezes arrisca uns códigos PHP e jQuery. Também é montanhista e músico.

2 respostas para “Personalizando a busca do WordPress – Filtrando por categorias”

  1. Rayanne disse:

    Boa noite!
    Este filtro por categoria é praticamente o que preciso para o site que estou fazendo, porém preciso de um pouco mais… Preciso além de filtrar por categoria, filtrar também por tag, ao mesmo tempo.
    Pesquisei e encontrei pouca coisa sobre isso, mas informando que posso utilizar a mesma função wp_dropdown_categories com taxonomy=post_tag e até que ele lista as tags direitinho, mas a busca não funciona. Nem somente filtrando por tag, muito menos filtrando os dois juntos. Somente o que funcionou foi o que vc explicou nesse post mesmo.
    Sabe como me ajudar?
    Como consigo fazer esses dois filtros ao mesmo tempo???
    Obrigada!!!

  2. daniel disse:

    e se eu quiser excluir algumas categorias da consulta??

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *