Remover categorias do resultado de busca no WordPress

Em determinadas situações você pode precisar retirar uma categoria ou categorias das páginas de busca no WordPress.

Remover uma categoria da página de resultados de busca do WordPress é bem simples e prático, basta apenas adicionar utilizar a função add_filter com o hook pre_get_posts.

No exemplo abaixo removemos todos os posts associados com a categoria que possui o ID 3.

<?php

add_filter( 'pre_get_posts', 'filtrar_busca' );

/*-----------------------------------------------------
Nome: filtrar_busca($q)
Sinopse: Remove a categoria com o id 3 do resultado de busca.
        do resultado da busca
Parametros: $q (WP_Query)
Retorno: $q (WP_Query)
Autor: Gabriel Fróes - codigofonte.com.br
'-----------------------------------------------------*/
function filtrar_busca($q){
	if ( $q->is_search && !is_admin() )
		$q->set( 'cat','-3' );

	return $q;
}

Sobre Gabriel Fróes

Apaixonado por tecnologia, desde que me entendo por gente gosto de computadores e afins. Aprendi sistema binário aos 9 anos (usando caixinha de fósforos e ervilhas) e desde então nunca mais parei de estudar e aprender coisas novas sobre tecnologia. Sou operário da codificação desde 1996 onde tive oportunidade de trabalhar em projetos sensacionais dentro da GE, Xerox, BNDES entre outras empresas. Atualmente estou envolvido na área de desenvolvimento de negócios.

Queremos saber sua opinião