Fazendo a busca do WordPress funcionar apenas para algumas categorias

Me passou pela cabeça a seguinte questão: Como excluir algumas categorias da busca do WordPress ?

Passou pela sua também ? Então continue lendo esse post, a dica vem logo abaixo !

Adicione o código ao arquivo search.php:

<?php if( is_search() )  :
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("s=$s&paged=$paged&cat=9,11,16");
endif; ?>

A seleção das categorias que farão parte da busca se dá na terceira linha, onde se lê cat=9,11,16 , troque pelo ID das categorias que você deseja exibir. O ID das categorias, conforme já expliquei em outras postagens, pode ser obtido em Posts -> Categorias posicionando o mouse no nome da categoria e vendo na barra de status (no rodapé de seu navegador) o cat_ID exibido (Ex.:http://www.seusite.com.br/wp-admin/categories.php?action=edit&cat_ID=4).

Update:

Nosso leitor e agora colaborador Marcelo Torres enviou uma outra maneira de se fazer tal alteração, segue abaixo:

<?php get_header(); ?>
<div id=”conteudo”>
<?php if (have_posts()) : ?>

<h1>Resultado(s) da busca por: “<?php the_search_query();?>”</h1>
<div id=”box”>
<?php while (have_posts()) : the_post(); ?>
<div class=”box_busca”>
<?php if ( in_category(3) || in_category (13) || in_category (14) || in_category (15) ): ?>
<?php else : ?>
<a href=”<?php the_permalink() ?>” title=”<?php the_title(); ?>”><?php the_title(); ?></a>
<?php the_excerpt(); ?>
<?php endif; ?>
</div>
<?php endwhile; ?>
</div>
<?php else : ?>

<p>Nada encontrado. Verifique o termo de pesquisa e tente outra vez!</p>

<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

A linha:

<?php if ( in_category(3) || in_category (13) || in_category (14) || in_category (15) ): ?>

É aonde você escolhe a categoria que não quer que escolha no post, com a sintaxe: in_category(ID);

Além disso, contribuindo ainda mais com o conteúdo desta postagem, nos avisou de um plugin chamado Advanced Category Excluder que esconde todos os posts de uma determinada categoria, porém ele não esconde apenas dos resultados de busca, esconde também do feed, posts recentes, lista de categorias, entre outros.

Marcelo, obrigado pela colaboração ! Sempre que tiver algo a acrescentar assim, pode entrar em contato ou enviar você mesmo uma matéria, registrando-se no site e fazendo sua postagem. :D

Compartilhe o artigo com um colega!
Imagem padrão
Guga Alves
Analista de Sistemas, Pós graduado em Marketing Digital e idealizador dos sites Tudo Para WordPress e Remotamente. Possuo sólidos conhecimento de SEO, já trabalhei no maior projeto feito com WordPress no mundo, o WordPress.com e palestrei em diversos eventos como Campus Party e WordCamp Porto Alegre, São Paulo, Florianópolis, Fortaleza e Belo Horizonte. Organizador do WordCamp Rio de Janeiro 2014 e 2015.
Artigos: 274

8 comentários

  1. kra, foda essa dica sua…. tava procurando e achei em vários lugares, e só erro na hora de fazer…… mas essa veio pronta, parabéns….

    e agora vou perguntar, não sei se aqui seria o melhor lugar, mas aproveitando….

    sabe quando passa o mouse em cima das categorias, e aparece um texto, alt title…. “Ver todos os posts em…” ; “Ver todos os posts arquivados em….”

    eu precisava trocar esse texto ou então retirar essa função de mostrar o texto, dá uma força aí…. abs

  2. Tem como uma busca no wordpress pesquisar termos em outra página?
    Exemplo: o site http://www.X.com tem uma index, mas nesse site, tem varias vertentes, por exemplo X.com/lojadedoce e X.com/lojadebebidas.
    Com uma busca na index do X.com é possivel buscar nesses outros diretórios?
     
    valeuuuu!

  3. Legal, o problema seria se eu tivesse muitas categorias o codigo ficaria muito grande! como minimizar? em vez de colocar AND AND AND…
    ??
    valeuu

  4. Muito Show este post…Procurava outra coisa e acabei aprendendo outra…Será que alguem pode me ajudar. Preciso que a busca funcione pesquisando os campos personalizados de um post. Como fazer isto????

Deixe uma resposta