WordPress: includere tutti i tipi di post nei risultati della ricerca

Come fare in modo che WordPress includa tutti i tipi di post nei risultati della ricerca.

WordPress di Gabriele Romanato

WordPress non include tutti i tipi di post nei risultati della ricerca. Possiamo tuttavia modificare questa impostazione andando ad operare sulla query al database prima che questa venga utilizzata nel Loop. Vediamo come fare.

Aggiungete il seguente codice al file functions.php:


function my_include_post_types_in_search($query) {
	if(is_search() && is_main_query()) {
		$post_types = get_post_types(array('public' => true, 'exclude_from_search' => false), 'objects');
		$searchable_types = array();
		if($post_types) {
			foreach( $post_types as $type) {
				$searchable_types[] = $type->name;
			}
		}
		$query->set('post_type', $searchable_types);
	}
	return $query;
}
add_action('pre_get_posts', 'my_include_post_types_in_search');