Faire apparaître un type de publication avant tout autre
Par défaut, SearchWP renvoie les résultats triés par pertinence en utilisant les poids tels que définis dans la configuration de votre moteur.
Il y a des cas où vous voudrez qu'un type de publication spécifique apparaisse en premier, même si son poids de pertinence n'est pas le plus élevé.
Nous pouvons y parvenir en personnalisant la façon dont SearchWP calcule la pertinence, et en accordant un « poids bonus » extraordinaire à tout produit renvoyé, le faisant ainsi remonter en tête des résultats.
Ce poids bonus sera appliqué à tous les produits, le tri des produits respectera donc toujours la pertinence calculée. Tout résultat autre qu'un produit sera trié par sa pertinence en dessous de tout produit ayant reçu le poids bonus.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // Give Products extraordinary weight boost to ensure Products show up first. | |
| // @link https://searchwp.com/documentation/knowledge-base/post-type-first-top/ | |
| add_filter( 'searchwp\query\mods', function( $mods ) { | |
| $post_type = 'product'; // Post type name. | |
| $source = \SearchWP\Utils::get_post_type_source_name( $post_type ); | |
| $mod = new \SearchWP\Mod( $source ); | |
| $mod->relevance( function( $runtime ) use ( $source ) { | |
| global $wpdb; | |
| return $wpdb->prepare( | |
| "IF( {$runtime->get_foreign_alias()}.source = %s, '999999999999', '0' )", | |
| $source | |
| ); | |
| } ); | |
| $mods[] = $mod; | |
| return $mods; | |
| } ); |
Note : le nom du type de publication name à la ligne 7 peut être modifié pour n'importe quel nom de type de publication enregistré afin d'obtenir le même résultat.
Voir aussi : Regrouper les résultats de recherche par source (type de publication) et définir leur ordre

