Posted on

Searching Bible verses

A common problem with Relevanssi is Bible verses. All that meaningful punctuation and single digits make exact matching of Bible verses really difficult for Relevanssi, and when searching for Bible verses, exact results are what matters – hitting something similar is generally not very helpful.

There’s an easy solution, though: use phrases. Wrapping the verse in quotes is going to result in an exact search that finds exactly what is required. Unfortunately expecting all your users to know that is not reasonable. Most users don’t even know what a phrase search is, let alone that you should use one for Bible verses.

The fix is simple: add some code that will automatically wrap all the Bible verse in quotes to make it a phrase. Add this to your theme functions.php and enjoy more precise Bible verse searches:

add_filter( 'relevanssi_modify_wp_query', 'rlv_bible_verse_handler' );
function rlv_bible_verse_handler( $query ) {
    $m = preg_match_all( '/(\d?\s?\w+ \d+:\d+-?\d+)/', $query->query_vars['s'], $matches );
    if ( $m ) {
        foreach ( $matches[0] as $match ) {
            $query->query_vars['s'] = str_replace( trim($match), '"' . trim($match) . '"', $query->query_vars['s'] );
        }
    }
    $query->query_vars['s'] = str_replace( '""', '"', $query->query_vars['s'] );
    return $query;
}

One comment Searching Bible verses

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.