Il y a quelques jours, j’ai implémenté une recherche sur un WordPress from scratch, sur le moment j’ai estimé que ça ne valait la peine de mettre un plugin super méga lourd juste pour faire un %machintruc% en DB.
Il y a quelques jours, j’ai implémenté une recherche sur un WordPress from scratch, sur le moment j’ai estimé que ça ne valait la peine de mettre un plugin super méga lourd juste pour faire un %machintruc% en DB.
Mais le truc, c’est que j’avais besoin d’aller plus loin en recherchant dans des langues spécifiques et des champs ACF, j’ai donc décidé d’installer Relevanssi.
Après quelques tests, je suis plutôt satisfait du plugin. Simple à configurer, la recherche par ACF fonctionne, par langue aussi, en somme le plugin fait le boulot quoi.
Petit HIC ! Le plugin est incapable de rechercher dans des contenus non traduisibles.
Les options du plugin permettent de rechercher soit dans toutes les langues (donc pas de distinction de langue), soit dans la langue courante, il n’y a pas d’entre-deux.
Donc mon idée, c’est de repartir de la base. C’est-à-dire de faire une recherche par langue et d’utiliser un filtre de Relevanssi afin de modifier la requête en lui disant que je veux aussi rechercher dans les contenus qui n’ont pas de langue.
Voilà un peu à quoi ça ressemble :
function filter_search($query) {
$tax = $query->get("tax_query");
$tax["relation"] = "OR";
$tax[] = array(
'taxonomy' => 'language',
'operator'=> 'NOT EXISTS'
);
return $query;
}
add_filter( 'relevanssi_modify_wp_query', 'filter_search');
Alors oui et non…
Relevanssi a dû faire une modification pour faire en sorte que ça fonctionne, donc si tu utilises la version Premium 2.3.0 ou la Free 4.2.0 ou moins, ça ne marchera pas !
Pour faire tourner le petit bout de code ci-dessus, voici la modification à faire dans le fichier lib/search-tax-query.php, la source est le dépôt Github d’un développeur de chez Relevanssi (Mikko Saari).
Je mettrai à jour cet article si je vois que le plugin a intégré la modification.
Au passage, j’aimerais souligner la qualité du support technique (premium) de Relevanssi qui est vraiment exceptionnelle. Et la patience de Mikko pour avoir pris le temps d’analyser ma demande et de m’aider à venir à bout de ce problème.
21/07/2019
Plusieurs hooks Woocommerce pour étendre les possibilités de tri
Comment afficher des produits en choisissant précisément leur ordre
Un filtre pour changer le titre des pages dans l'administration de Wordpress