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.:https://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. 😀

Posts Similares

  • Como exibir o número de resultados na busca do WordPress

    Abra o arquivo search.php. Nele, procure pela seguinte linha: <h2 class=”pagetitle”>Resultado da busca</h2> E a substitua pela linha abaixo: <h2 class=”pagetitle”>Resultado da busca por <?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(‘ — ‘); echo $count . ‘ ‘; _e(‘artigos’);…

  • Exibindo as últimas postagens de outro blog WordPress

    Para exibir as últimas postagens de outro site WordPress, você deve adicionar o código abaixo no local desejado. Você pode adicionar no sidebar.php para exibir em sua barra lateral. <?php include_once(ABSPATH.WPINC.’/rss.php’); $feed = fetch_rss(‘https://feeds.feedburner.com/tudoparawordpress’); $items = array_slice($feed->items, 0, 5); ?> <?php if (!empty($items)) : ?> <ul> <?php foreach ($items as $item) : ?> <li> <a…

  • Loops personalizados no WordPress

    Em muitas situações precisamos modificar a query natural do WordPress, para eliminar categorias ou posts da listagem, para exibir um tipo de post específico, enfim para várias finalidades. Se você quer, por exemplo, listar apenas posts das categorias 2 e 6 ou esconder os psts da categoria 15… não há um link natural para essas…

  • Elimine ou altere o "\author\" da página de autores no WordPress

    Por padrão o WordPress cria uma URL para cada autor, seguindo a estrutura /author/nome-do-usuario. Alguns podem querer modificar esta palavra author, pois se pensarmos em sites em português a expressão não se encaixa muito bem. Teremos também aqueles que, de acordo com o projeto desenvolvido, poderão querer apagar esta palavra e deixar o site mostrando…

  • Erro Warning: sprintf() nos menus da atualização do 3.6

    Quem atualizou o WordPress semana passada, usando a linguagem pt_BR, com certeza viu o erro “Warning: sprintf(): Argument number must be greater than zero in …….\wp-admin\nav-menus.php on line 478” na tela de administração de menus. Após algumas horas de luta, consegui achar o problema que era um arquivo corrompido pela tradução do WordPress para português do Brasil. Esse erro…

  • Como restaurar as colunas no dashboard do WordPress?

    Com o lançamento do WordPress 3.8, tivemos uma sensível diferença no dashboard para quem utiliza monitores com grandes resoluções: o Dashboard agora é responsivo, tendo eliminado a opção de definir quantas colunas devem aparecer nesta tela inicial. Quem usa grandes resoluções pode ter achado estranho ver o painel com 4, 5 colunas e não ter…

Deixe um comentário

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

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. 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????