apply_filters( 'relevanssi_fallback', array $params )
This filter can be used to implement a fallback search with adjusted parameters.
Parameters
$params
(array) The parameter array. The query parameters are stored in $params['args'].
More information
When Relevanssi does a search that finds no results, a fallback may be triggered. Relevanssi has a built-in fallback search that can be controlled from the settings: after an AND search fails to find anything, Relevanssi can fall back and do an OR search. After that, this filter hook offers another chance to do a fallback search.
When you want to implement a fallback search, you take the search parameters from $params['args'], adjust them the way you want, then do a search with relevanssi_search() and put the return value from that function to $params['return']. Then you just return the $params array.
∞ warning! Remember to disable the fallback filter in before running relevanssi_search(), otherwise you risk ending up in an infinite loop!
add_filter( 'relevanssi_fallback', 'rlv_fallback_search' );
function rlv_fallback_search( $params ) {
$args = $params['args'];
// Modify the arguments somehow.
remove_filter( 'relevanssi_fallback', 'rlv_fallback_search' );
$params['return'] = relevanssi_search( $args );
add_filter( 'relevanssi_fallback', 'rlv_fallback_search' );
return $params;
}Examples
For a real-life example of how this would work, you can take a look at this knowledge base entry about forcing a phrase search. Since the phrase search can fail to find results, there is also implemented a fallback search that disables the phrase search and tries without it.
You can also do a fallback search that automatically uses the “Did you mean” corrections to perform a search. For instructions of that, see this knowledge base entry.