public function search($query)
 {
     if (function_exists('is_main_query') && !$query->is_main_query()) {
         return $query;
     }
     if (is_search() && !is_admin() && $this->algolia_registry->validCredential && isset($_GET['instant']) === false) {
         if ($this->algolia_registry->instant) {
             $url = get_site_url() . '/?instant=1&s=' . $query->query['s'] . '#q=' . $query->query['s'] . '&page=0&refinements=%5B%5D&numerics_refinements=%7B%7D&index_name=%22' . $this->algolia_registry->index_name . 'all%22';
             header('Location: ' . $url);
             die;
         }
         $algolia_query = get_search_query(false);
         $options = array('hitsPerPage' => $this->algolia_registry->number_by_page, 'page' => get_query_var('paged') ? get_query_var('paged') - 1 : 0);
         $algolia_helper = new \Algolia\Core\AlgoliaHelper($this->algolia_registry->app_id, $this->algolia_registry->search_key, $this->algolia_registry->admin_key);
         $results = $algolia_helper->search($algolia_query, $options, $this->algolia_registry->index_name . 'all');
         foreach ($results['hits'] as $result) {
             $this->ids[] = $result['objectID'];
         }
         $this->num_pages = $results['nbPages'];
         $this->total_result_count = $results['nbHits'];
         $this->page = $results['page'];
         $query->query = array();
         set_query_var('post__in', $this->ids);
         set_query_var('post_type', null);
         set_query_var('s', null);
         set_query_var('paged', null);
         return $query;
     }
     return $query;
 }