Ajouter du poids de pertinence aux champs de cases à cocher Vrai/Faux ACF
Advanced Custom Fields est un plugin formidable qui facilite grandement la personnalisation de votre site. Non seulement il facilite la saisie de contenu, mais il peut également vous aider à simplifier la gestion d'autres détails pour les gestionnaires de contenu. L'utilisation conjointe d'ACF et SearchWP est quelque chose que de nombreux clients exploitent !
Une chose que vous pouvez faire est de configurer ACF avec un champ de case à cocher qui détermine si un attribut de l'article actuel est vrai ou faux. Par exemple, peut-être que certains de vos articles sont considérés comme propriétaires et que vous souhaitez vous assurer que ces articles reçoivent plus de poids lors des recherches.
Voir aussi : Advanced Custom Fields et SearchWP
En utilisant quelques-uns des hooks de SearchWP, c'est facilement réalisable !
All hooks should be added to your custom SearchWP Customizations Plugin.
En supposant que votre champ Case à cocher ACF ait un nom de proprietary, un poids bonus de 1000 sera ajouté à tout article ayant cette case à cocher Vrai/Faux d'Advanced Custom Field cochée :
| <?php | |
| // Add Relevance Weight to ACF True/False Checkbox Fields in SearchWP. | |
| // @link https://searchwp.com/documentation/knowledge-base/add-relevance-acf-checkbox/ | |
| add_filter( 'searchwp\query\mods', function( $mods ) { | |
| global $wpdb; | |
| $my_meta_key = 'proprietary'; // ACF True/False name. | |
| $bonus_weight = 1000; // Extra weight to add when checkbox is ticked. | |
| $mod = new \SearchWP\Mod(); | |
| $mod->set_local_table( $wpdb->postmeta ); | |
| $mod->on( 'post_id', [ 'column' => 'id' ] ); | |
| $mod->on( 'meta_key', [ 'value' => $my_meta_key ] ); | |
| $mod->weight( function( $runtime_mod ) use ( $bonus_weight ) { | |
| $local_alias = $runtime_mod->get_local_table_alias(); | |
| return "IF({$local_alias}.meta_value+0 = 1, {$bonus_weight}, 0)"; | |
| } ); | |
| $mods[] = $mod; | |
| return $mods; | |
| } ); |
Vous pouvez personnaliser les hooks pour utiliser n'importe quel nom de champ ACF en modifiant la ligne 9 avec le nom de champ applicable, et si vous souhaitez ajuster le poids bonus utilisé, vous pouvez modifier la ligne 10.

