apply_filters( 'relevanssi_highlight_regex', string $regex, string $term )

This filter hook filters the regular expression for adding highlights to the excerpt.


(string) The regular expression.

(string) The search term.

More information

When Relevanssi adds highlights to the excerpts, it uses a regular expression to find the search terms in the excerpt. This filter hook can be used to modify that regular expression.

The default value is /([\W])($term)([\W])/iu: the search term, with a word break (\W) on both sides. This looks for complete words. If partial matching is enabled, the regular expression is changed to /([\W]{$term}|{$term}[\W])/iu – the search term with a word break on either end. With the “Expand highlights” setting enabled, the expression is /([\w]*{$term}[\W]|[\W]{$term}[\w]*)/iu.

One use case for this filter would be to change the highlighting so that inside-word highlights are allowed. You can do that with this function:

add_filter( 'relevanssi_highlight_regex', function( $regex, $term ) {
  return "/($term)/iu"
}, 10, 2 );

relevanssi_highlight_regexIf whole-word matching is enabled, the regular expression needs three capture groups where the term is in the middle one, because this regex is replaced with '\\1' . $start_highlight_token . '\\2' . $end_highlight_token . '\\3'. For partial matching, one capture group for the term itself is enough.