Restreindre la recherche à un custom post type spécifique

Quand on gère plusieurs type de contenu personnalisés on pourrait avoir besoin de restreindre les résultats de recherche à certains d’entres eux et donc évincer les autres.

Comment n’afficher que les résultats de recherche de customs posts spécifiques ?

Ajoutez la fonction suivante à votre fichier functions.php : (notez que nous restreignons l’action aux « non admins » pour vous permettre de toujours avoir les résultats ignorés).

// restreindre la recherche à un type de customs posts
function wpln_limit_search_to_customs_types( $query ) {
    if ( $query->is_search && !is_admin() ) {
        $query->set( 'post_type', 'portofolio' );
    }
    return $query;
}
add_filter( 'pre_get_posts', 'wpln_limit_search_to_customs_types' );

Dans cet exemple nous afficherons uniquement les articles du portofolio.
Vous pouvez également sélectionner plusieurs customs posts type en mettant un array()

exemple :

$query->set( 'post_type', array( 'portofolio', 'actualites' ) );