O que você está procurando?

Aperte Enter para buscar ou ESC para fechar

Como excluir as páginas do resultado de busca ?

1 min de leitura

Uma maneira de se excluir as páginas do resultado de busca é usar o plugin Search Exclude.

Entretanto, como sou adepto da filosofia “Quanto menos plugins melhor”, outra solução interessante é adicionar um filtro no functions.php que adicione na busca apenas as categorias desejadas, excluindo assim todo o restante:

//Alter the WordPress search to return ONLY posts, no pages (For non-admins only)
function search_filter_pages($query) {
  if (!is_admin()) {
    if ($query->is_search) { 
      $query->set('post_type', 'post');
    }
  return $query;
  }
}

add_filter('pre_get_posts','search_filter_pages');
Compartilhar este artigo
Guga Alves

Guga Alves

• WordPress e web

Desbravando o mundo WordPress desde 2007, me especializei também em SEO e entreguei grandes projetos no mercado brasileiro para a partir de 2015 me dedicar ao mercado fora do Brasil. Trabalhei na empresa do criador do WordPress por 4 anos (no WordPress.com, da Automattic) e mais 4 anos em uma das maiores empresas de hospedagens do mundo, a Liquid Web, gerenciando uma equipe de suporte do plugin The Events Calendar. No Brasil, atendi grandes marcas como canal Futura, Corpo Perfeito, Catraca Livre, Hostgator Brasil e Hostnet, também palestrei em diversos eventos e dei aula em cursos livres e pós-graduação (no Rio de Janeiro e em Brasília). Trabalho remoto, viajo bastante, mas minha base é no Rio de Janeiro/RJ.

X GitHub Sobre mim
Leituras Complementares

Continue lendo

Ver todos em Dicas WordPress →

Discussão & Respostas (12)

Espaço moderado para debates técnicos
  1. Renata Tibiriçá
    ↳ Responder

    Muitooooo legal essa dica! Eu que o diga, ne! hahaha
    Uma coisa bem legal que descobri tb é que, ao invés de vc setar os IDs das categorias, vc pode definir que apareçam somente posts assim:
    $query->set('post_type', 'post');
    Dae não precisa ficar pondo número de categoria lá toda hora q vc quiser excluir uma nova! =D

    1. Vanessa
      Vanessa
      ↳ Responder

      Isso é bem mais fácil!!! Pq se vc criar categorias novas não precisa alterar o tema o tempo todo.

      Obrigada Renata

  2. Adriano
    Adriano
    ↳ Responder

    Esse código está incorreto amigo, ele não exlclui essas páginas, ele busca apenas nelas.

  3. Marcelo Torres
    ↳ Responder

    Colocando query_posts('post_type', 'post'); antes do loop no arquivo search.php também da certo, se no caso a ideia for exibir apenas os posts.

    1. Kevin Oliveira
      ↳ Responder

      Eu fiz do jeito que o Marcelo disse, coloquei antes do loop do search.php.

      Ótimo artigo, Guga. 😉

  4. Ricardo Junior
    Ricardo Junior
    ↳ Responder

    Olá!

    Obrigado mesmo pela dica, vai me ajudar muito, sucesso em seu blog. Grato

  5. kauan
    kauan
    ↳ Responder

    cara eu coloco o código no functions.php mais da é um erro (Erro de análise : erro de sintaxe, inesperado T_STRING em / home/ceara536/public_html/wp-content/themes/site-ceara-parapente/functions.php na linha 22) e ai o que é que eu caço?

  6. Paulo Cesar
    Paulo Cesar
    ↳ Responder

    Simples e objetivo, resolveu meu problema, obrigado!

  7. Patrick
    ↳ Responder

    Olá, boa tarde, tem alguma maneira de desativar as postagens e deixar os resultados apenas para paginas?

Deixe sua contribuição técnica

Seu e-mail não será publicado. Blocos de código em markdown são aceitos com crases triplas.