Uma maneira de se excluir as páginas do resultado de busca é usar o plugin Simply-Exclude plugin.
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:
// Remove pages from search
function mySearchPostsFilter($query)
{
if ($query->is_search)
{
$query->set(‘cat’,’12,14,16,17,18′); // your category IDs
}
return $query;
}
add_filter(‘pre_get_posts’,’mySearchPostsFilter’);
Só lembre de substituir os IDs das categorias, em $query->set(‘cat,’‘12,14,16,17,18′) pelos IDs correspondentes as categorias de seu blog, ok ? Estes números são apenas exemplos.
Update: uma forma mais simples: $query->set(‘post_type’, ‘post’); Com isso você deixará claro que apenas postagens devem ser exibidas na busca, excluindo as páginas e eliminando a necessidade de colocar os ids de cada categoria do blog.
Dica retirada do site Web-Kreation
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
Isso é bem mais fácil!!! Pq se vc criar categorias novas não precisa alterar o tema o tempo todo.
Obrigada Renata
Esse código está incorreto amigo, ele não exlclui essas páginas, ele busca apenas nelas.
Ele não exclui as páginas, mas faz com que a busca seja feita apenas nas categorias.. alguma diferença nisso meu amigo ?
muito bom o código, obrigado
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.
Eu fiz do jeito que o Marcelo disse, coloquei antes do loop do search.php.
Ótimo artigo, Guga. ;)
Olá!
Obrigado mesmo pela dica, vai me ajudar muito, sucesso em seu blog. Grato
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?
Simples e objetivo, resolveu meu problema, obrigado!
Olá, boa tarde, tem alguma maneira de desativar as postagens e deixar os resultados apenas para paginas?
Na verdade o que eu queria não era isso. Mas encontrei uma solução bem interessante pra remover da busca as páginas e até mesmo determinados tipos de post, que era o que eu precisava.
Postei a solução no meu site, caso alguém também esteja com o mesmo problema.
Olha só como é: http://lucianobragaweb.com.br/remover-paginas-da-busca-wordpress/