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; }