Using Hooks and Filters
Smart Search
Hooks and Filters
wpe_smartsearch/extra_fields
Filters the post fields before indexing.
apply_filters( 'wpe_smartsearch/extra_fields', string $data, WP_Post $post )
Description
Use this filter to add or remove fields before an object is indexed.
Parameters
$data array
Contains all of the data before indexing.
$post WP_Post
The current post object being indexed.
Examples
Adding a custom field.
add_filter(
'wpe_smartsearch/extra_fields',
function( array $data, WP_Post $post ) {
$data['custom-field'] = 'custom field test';
return $data;
},
10,
2
);
Adding the post permalink.
add_filter(
'wpe_smartsearch/extra_fields',
function( array $data, WP_Post $post ) {
//sample value http://localhost:8000/hello-world
$data['url'] = get_permalink($post);
return $data;
},
10,
2
);
Adding the post locale with a language plugin, i.e. polylang
add_filter(
'wpe_smartsearch/extra_fields',
function( array $data, WP_Post $post ) {
//sample valus EN | ES
$data['locale'] = pll_get_post_language($post->ID);
return $data;
},
10,
2
);
wpe_smartsearch/extra_search_config_fields
Filters the search config fields.
apply_filters( 'wpe_smartsearch/extra_search_config_fields', array $fields, string $post_type )
Description
Use this filter to add or remove fields to the Search Config.
Parameters
$fields array
Contains all of the search config fields for the given $post_type
.
$post WP_Post
The current post_type being processed for Search Config fields.
Examples
Adding a custom search config field.
add_filter(
'wpe_smartsearch/extra_search_config_fields',
function ( $fields, $post_type ) {
if ($post_type === 'post' ) {
$fields[] = 'my-custom-field';
}
return $fields;
},
10,
2
);
NOTE: this hook will be ran multiple times for each post type that exists.
The following search config field will get added to all post types.
add_filter(
'wpe_smartsearch/extra_search_config_fields',
function ( $fields, $post_type ) {
$fields[] = 'all-post-types-custom-field';
return $fields;
},
10,
2
);
wpe_smartsearch/excluded_post_types
Filters the post types ban list.
apply_filters( 'wpe_smartsearch/excluded_post_types' );
Description
Filters a list of post types that won’t be considered for WP Engine Smart Search
Examples
add_filter(
'wpe_smartsearch/excluded_post_types',
function ( ) {
return array(
'zombie',
'rabbit',
'page'
);
},
10,
2
);
wpe_smartsearch/acf/excluded_field_names
Filter ACF fields from being indexed to WPE Engine Smart Search.
$excluded_field_names = apply_filters( 'wpe_smartsearch/acf/excluded_field_names', array() );
Description
This filter prevents ACF fields to be indexed using the field name. This is very useful for a number of reasons:
- Preventing unnecessary data from being indexed, increases performance.
- Prevents errors from being thrown when indexing data ( Errors like: Limit of total fields [1000] has been exceeded )
Examples
You would want to prevent ACF fields with names ‘acf_field_name1’, ‘acf_field_name2’, ‘acf_field_name3’ are not indexed.
add_filter( 'wpe_smartsearch/acf/excluded_field_names', function ( $excluded_field_names ) {
$custom_excluded_field_names= array(
'acf_field_name1',
'acf_field_name2',
'acf_field_name3',
);
return array_merge($excluded_field_names,$custom_excluded_field_names );
},
10,
1
);