Adicionando dados extras a entradas indexadas
Muitas vezes o conteúdo a ser indexado é visível/editável na tela de edição das entradas com as quais você está trabalhando, mas também há momentos em que você deseja anexar dados extras às entradas à medida que o SearchWP as indexa, para tornar esses dados pesquisáveis também.
Podemos usar alguns dos hooks do SearchWP para incluir dados arbitrários junto com o conteúdo da sua entrada quando o indexador do SearchWP estiver em execução.
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 ); |
Com esses hooks adicionados ao seu plugin de Personalizações do SearchWP, você verá o Campo Personalizado 'Meta Extra' aparecer quando você pesquisar por extra, pois ele corresponde ao nome da Opção personalizada que criamos no trecho acima.


