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

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');
Torna su