Skip to content

Instantly share code, notes, and snippets.

@jchristopher
Last active February 23, 2021 02:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jchristopher/a84281eec28ebea0daa9ae7c9d95678a to your computer and use it in GitHub Desktop.
Save jchristopher/a84281eec28ebea0daa9ae7c9d95678a to your computer and use it in GitHub Desktop.
Adding extra data to indexed entries in SearchWP
<?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 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment