Ajouter des données supplémentaires aux entrées indexées
Souvent, le contenu à indexer est visible/modifiable sur l'écran de modification des entrées avec lesquelles vous travaillez, mais il arrive aussi que vous souhaitiez ajouter des données supplémentaires aux entrées au fur et à mesure que SearchWP les indexe, afin de rendre ces données consultables également.
Nous pouvons utiliser quelques hooks de SearchWP pour inclure des données arbitraires avec le contenu de vos entrées lorsque l'indexeur de SearchWP s'exécute.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // @link https://searchwp.com/documentation/knowledge-base/adding-extra-data-to-indexed-entries/ | |
| // Adding extra data to indexed entries in SearchWP. | |
| add_filter( 'searchwp\entry\data', function( $data, \SearchWP\Entry $entry ) { | |
| $my_extra_meta_key = 'my_extra_meta'; | |
| // SearchWP can index any data type, array/object values will all be processed. | |
| // For this example we will use a string: | |
| $my_extra_meta = 'This content will be searchable!'; | |
| // Store custom Custom Field along existing postmeta. | |
| $data['meta'][ $my_extra_meta_key ] = $my_extra_meta; | |
| return $data; | |
| }, 20, 2 ); | |
| // Add 'extra' meta as available option for your Source Attributes. | |
| add_filter( 'searchwp\source\attribute\options', function( $keys, $args ) { | |
| if ( $args['attribute'] !== 'meta' ) { | |
| return $keys; | |
| } | |
| // This key is the same as the one used in the searchwp\entry\data hook above, they must be the same. | |
| $my_extra_meta_key = 'my_extra_meta'; | |
| // Add "Extra Meta" Option if it does not exist already. | |
| if ( ! in_array( | |
| $my_extra_meta_key, | |
| array_map( function( $option ) { return $option->get_value(); }, $keys ) | |
| ) ) { | |
| $keys[] = new \SearchWP\Option( $my_extra_meta_key, 'Extra Meta' ); | |
| } | |
| return $keys; | |
| }, 20, 2 ); |
Avec ces hooks ajoutés à votre plugin SearchWP Customizations, vous verrez le champ personnalisé « Meta supplémentaire » apparaître lorsque vous recherchez extra car il correspond au nom de l'option personnalisée que nous avons créée dans l'extrait ci-dessus.


