Blog do MX Cursos

Pesquisar em todos os tipos personalizados no WordPress

Pesquisar em todos os tipos personalizados no WordPress

No WordPress, temos os tipos personalizados, onde podemos definir o tipo de informação que queremos cadastrar. Essa opção nos permite diversificar, e customizar muito nossos projetos.

Por padrão, a busca realizada no WordPress, é feito no tipo Post, mas as vezes você deseja que seja pesquisada em todos os tipos personalizados, e públicos, que você criou.

Para realizar esse procedimento, você poderá fazer dessa forma:

Acesse o arquivo functions.php do seu tema, e vamos agora criar uma função (O código estará comentado, para uma facilitar o entendimento):

//Cria uma função  
function enable_search_all_type($query){
	
	//Verifica se na página de busca, e se é o loop principal
	if(is_search() && is_main_query()){
		//Retorna todos os tipos personalizados }
		$types = get_post_types(array('public' => true, 'exclude_from_search' => false), 'objects');
		//Inicia um array
		$searchable = array();
		//Verifica se retornou algum tipo personalizado
		if($types) {
			//Percorre os elementos
			foreach( $types as $type) {
				//Atribui o nome do Tipo ao array
				$searchable[] = $type->name;
			}
		}
		//Passa os tipos personalizados públicos ao loop
		$query->set('post_type', $searchable);
	}
	
	return $query;
}
//Atribuir a função ao gancho pre_get_posts para alterar a consulta
add_action('pre_get_posts', 'enable_search_all_type');

Pronto, dessa forma é possível, você consegue definir no WordPress, que a pesquisa seja realizada em todos os tipos públicos.

Você deseja aprender mais sobre personalizar consultas, criação de temas no WordPress, nós temos um excelente curso, que ajudará no seu aprendizado.