Por defecto el buscador de WordPress busca en todos los tipos de contenido: posts, páginas, adjuntos, etc. Para poder personalizar los resultados de búsqueda tenemos que acotar la query de la misma. Para ello ejecutaremos una función con el hook de activación pre_get_posts:
add_action('pre_get_posts', 'modifica_busqueda');
La función que modificará la query de la búsqueda seguirá de la siguiente manera:
function modifica_busqueda ( $query ) {
// En este caso limitamos la búsqueda a los
// posts de la categoría "noticias"
if( $query->is_main_query() && $query->is_search ) {
$query->set('category_name', 'noticias');
}
return $query;
}
En este caso, tal como está comentado en la función, conseguimos que solo se busque en los posts de la categoría «noticias».
Otro ejemplo muy útil sería acotar la búsqueda a solo los posts:
function modifica_busqueda ( $query ) {
// Limitamos la búsqueda a solo posts
if( $query->is_main_query() && $query->is_search ) {
$query->set('post_type', 'post');
}
return $query;
}

Deja un comentario