NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Le Search WordPress
Intermédiaire
Hébergement Web Canada

Publié le : 06 février 2016 - Modifié le : 18 janvier 2022

Temps de lecture : 1 minute, 35 seconds - 129 mots

Il est naturel que des problèmes de requêtes Search ne soient exécutées surtout en direction des Custom Post Type.
De temps en temps, nous partageons certaines solutions.
Voici une fonction filtre qui fera une recherche poussée pour optimiser les recherches de vos utilisateurs dans votre site Web….
Tout d’abord s’assurer que votre searchform.php soit bien initialisé… Le voici

<form id="searchform" role="search" action="<?php echo home_url( '/' ); ?>" method="get"><input id="s" name="s" type="text" value="<?php the_search_query(); ?>" /> <input id="searchsubmit" type="submit" value="" /></form>

Ensuite vous devez intégrer une fonction filtre à intégrer dans votre functions.php

///////////////////////////////////////
// Requete de recherche mots clés tous post
///////////////////////////////////////
function searchfilter($query) {
 
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('post','recettes'));
}
 
return $query;
}
add_filter('pre_get_posts','searchfilter');

Vous remarquerez que dans ce filtre, nous effectuons une requête sur les posts généraux mais aussi sur le Custom Post Type du nom de recettes. Remplacer le par le vôtre.

Maintenant, imaginons que vous ayez un autre Custom Post Type du nom de portfolio, alors comment le rajouter après recettes…

///////////////////////////////////////
// Requete de recherche mots clés tous post
///////////////////////////////////////
function searchfilter($query) {
 
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('post','recettes','portfolio'));
}
 
return $query;
}
add_filter('pre_get_posts','searchfilter');

Votre search.php qui servira d’afficher les résultats.

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>