Si, dans WordPress, vous vous demandez comment exclure des pages / articles de la recherche, voici la réponse.
De base WordPress propose une recherche sur l’ensemble des posts du site : post simple, page, type de page personnalisé … Pour supprimer, exclure ou retirer des éléments de la recherche, voici comment procéder.
Ajoutez cette fonction dans le fichier functions.php de votre thème.
// search filter
function my_search_filter( $query )
{
if ( $query->is_search )
{
$query->set( 'post__not_in',array( 12, 23, 65 ) );
}
return $query;
}
add_filter('pre_get_posts','my_search_filter');
$query->set( );
permet d’exécuter une requête avec des valeurs en paramètres.
Dans l’exemple ci-dessus, je demande de rechercher les posts dont l’identifiant n’est pas 12, 23 ou 65 : post__not_in
Pour exclure une catégorie, mettre category__not_in et en valeur les identifiants de catégorie.
Restreindre la recherche
Au contraire pour limiter la recherche à une liste de catégorie ou de post, supprimez not_ de la requête.




bonjour,
je cherche desespérement à limiter ma fonction de recherche aux seuls titres et je ne trouve pas la solution (je débute sur wp il faut dire). savez vous comment faire , pour l’instant le code que j’ai installé est :
<form method="get" id="searchform" action="/ »>
<input type="text" value=" » name= »s » id= »s » />
Salut,
Si c’est pour limiter la fonction de recherche, ajoute ce code dans le fichier functions.php de ton théme:
add_filter(‘posts_where’, ‘limit_search_where_to_title’ );
function limit_search_where_to_title( $where )
{
global $wpdb;
if( is_search() ) {
$where = « AND `post_status` = ‘publish’ AND `post_title` LIKE ‘% ». mysql_real_escape_string( $_GET['s'] ) . »%’ »;
}
return $where;
}
Si c’est pour limiter l’affichage des resultats, Il faut regarder si dans ton dossier de thèmes WordPress il y a un fichier search.php
Si il existe, il faut modifier le code qui se trouve entre le < ?php if ( have_posts() ) : ?> et < ?php else : ?>
C’est a cet endroit que se trouve le code qui permet d’afficher les informations de l’article.
Si le fichier search.php n’existe pas, le plus simple est de recopier le fichier index.php et de le renommer search.php. En suite effectuer les modifications précédemment exposées.
Ne pas hésiter si tu as besoin de plus d’informations.
@+
Thierry
Très utile si on veut soulager la requête, ça tourne très bien merci
!
Super utile et simple à mettre en place.
Perso, j’ai malheureusement un conflit avec un plugin en place… Ah les vilains plugins…
Merci pour le code.
Je voulais simplement vous remercier à nouveau pour ce site Web étonnant que vous avez fait ici. Il est plein d’idées pour ceux qui sont sérieusement intéressés par ce sujet, plus précisément cet article très instructif.
Merci le spécialiste wordpress