Posted on

The Events Calendar: The event search

The event search from The Events Calendar does not work when Relevanssi is enabled. In regular use, it works, but if you try to access the event list directly with a search term in the URL, the search finds nothing.

One solution is to make Relevanssi index the tribe_events post type. Then you can enable Relevanssi in the event search by adding this snippet to your site:

add_action( 'pre_get_posts', function( $q ) {
    if ( isset( $q->query_vars['post_type'] ) && 'tribe_events' === $q->query_vars['post_type'] ) {
        $q->set( 'relevanssi', true );
    }
} );

This function will turn Relevanssi on in all searches for the tribe_events posts.

Another approach is not to index the tribe_events post type. Instead, you can add this filter function:

add_filter( 'relevanssi_prevent_default_request', function( $prevent, $query ) {
    if ( isset( $query->query_vars['post_type'] ) && 'tribe_events' === $query->query_vars['post_type'] ) {
        $prevent = false;
    }
    return $prevent;
}, 10, 2 );

This function will stop Relevanssi from interfering with The Events Calendar search. There’s a bug in the current version of Relevanssi (2.18.0 for Premium, 4.16.0 for free version): if you have enabled Relevanssi in admin searches, the event search won’t work. Disable Relevanssi in admin searches to make the search function.

7 comments The Events Calendar: The event search

  1. Hello, I’ve tried the first solution, but this code makes event calendar stop working.
    It doesn’t show events anymore.

    I would like to override the event calendar search because it sucks, and I want to use only relevanssi, but any time there is event tribe (or similar words) in the search query, the event calendar search override the relevanssi one.

    Is there a way I can totally exclude the event calendar search?
    Thanks in advance

  2. Hello Mikko, thank you for the answer!
    Nope, I’ve done this right now and now the events are shown!
    But when I use the search form then it still goes to the event calendar search 🙁

    1. Sarah, when everything is set up correctly, that should not matter, as the Event Calendar search should use Relevanssi.

      But if you want to disable the Event Calendar search features completely, that’s a question for the Event Calendar support. I can’t help with that.

  3. Hi Mikko, so let me known if I understand correctly:
    When I use the Relevanssi search field than is used relenvassi as an engin for the search, but the page that opens is the event calendar search page? Is it correct?
    Thanks in Advance!

    1. Yes. The first snippet on this page enables Relevanssi in the Events Calendar search. The search results template is coming from The Events Calendar, but the results are coming from Relevanssi.

Leave a Reply

Are you a Relevanssi Premium customer looking for support? Please use the Premium support form.

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