Exclure des pages et/ou articles de la recherche

Lors de la réalisation de votre site, vous pouvez avoir le besoin de supprimer des articles, catégories et/ou des pages de la recherche, pour cela vous devez ajouter un petit bout de code dans votre fichier functions.php ou dans votre plugin maison.

// Supprimer des pages et/ou articles de la recherche
function my_search_filter( $query )
{
    if ( $query->is_search )
    {
        $query->set( 'post_not_in',array( 102829 ) );
    }
    return $query;
}
add_filter('pre_get_posts','my_search_filter');

‘post__not_in’ concernera les pages et articles, si vous souhaitez supprimer une catégorie de la recherche il faudra utiliser ‘category__not_in’.

Restreindre la recherche

Au contraire pour limiter la recherche à une liste de catégorie ou de post, supprimez not_ de la requête, ce qui vous donnera ceci :

// Supprimer des pages et/ou articles de la recherche
function my_search_filter( $query )
{
    if ( $query->is_search )
    {
        $query->set( 'post_in',array( 102829 ) );
    }
    return $query;
}
add_filter('pre_get_posts','my_search_filter');