Ajouter du poids aux entrées (publications) dans une catégorie spécifique (terme de taxonomie)
Par défaut, SearchWP prend en compte le contenu réel des termes de taxonomie lors des recherches. Selon la façon dont vous avez configuré votre site, vous pourriez vouloir donner un poids supplémentaire aux entrées, quel que soit le terme de taxonomie, mais plutôt ajouter le poids à toutes les entrées qui se sont vu attribuer un terme de taxonomie spécifique.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // Add Weight to Entries (posts) within a Specific Category (taxonomy term) in SearchWP. | |
| // @link https://searchwp.com/documentation/knowledge-base/add-weight-category-tag-term/ | |
| add_filter( 'searchwp\query\mods', function( $mods ) { | |
| global $wpdb; | |
| // Taxonomy bonus weight Mods. | |
| $bonuses = [ [ | |
| 'term_id' => 37, // Term ID to receive extra weight. | |
| 'weight' => 100, // How much extra weight for this term. | |
| ], [ | |
| 'term_id' => 82, // Term ID to receive extra weight. | |
| 'weight' => 200, // How much extra weight for this term. | |
| ] ]; | |
| $term_mods = []; | |
| foreach ( $bonuses as $bonus ) { | |
| $mod = new \SearchWP\Mod(); | |
| $index_alias = $mod->get_foreign_alias(); | |
| $mod->relevance( "IF(( | |
| SELECT {$wpdb->prefix}posts.ID | |
| FROM {$wpdb->prefix}posts | |
| LEFT JOIN {$wpdb->prefix}term_relationships ON ( | |
| {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id | |
| ) | |
| WHERE {$wpdb->prefix}posts.ID = {$index_alias}.id | |
| AND {$wpdb->prefix}term_relationships.term_taxonomy_id = {$bonus['term_id']} | |
| LIMIT 1 | |
| ) > 0, {$bonus['weight']}, 0)" ); | |
| $term_mods[] = $mod; | |
| } | |
| $mods = array_merge( $mods, $term_mods ); | |
| return $mods; | |
| } ); |

