Предотвратить поисковый запрос при использовании Google CSE?

Я использую пользовательскую поисковую систему Google для отображения результатов на моем сайте, а не встроенной функции поиска WordPress. Я сделал это, изменив шаблон search.php нашей темы, чтобы заменить стандартный цикл кодом из Google. Все работает плавно.

Тем не менее, WordPress по-прежнему тратит время / энергию на выполнение поиска по умолчанию в базе данных по умолчанию, хотя результаты никогда не будут использоваться. Могу ли я каким-то образом препятствовать тому, чтобы WordPress даже выполнял этот поиск по умолчанию?

Solutions Collecting From Web of "Предотвратить поисковый запрос при использовании Google CSE?"

Тот же вопрос с вами и только что нашел его на stackexchange. Поместите коды ниже в function.php в свою тему.

function _cancel_query( $query ) { if ( !is_admin() && !is_feed() && is_search() ) { $query = false; } return $query; } add_action( 'posts_request', '_cancel_query' ); 

Вот источник

Существует множество руководств по отключению поиска – см. http://wpzine.com/disable-wordpress-search/

В основном это сводится к отключению запросов vars – вот суть этого …

 function disable_search( $query, $error = true ) { if ( is_search() ) { $query->is_search = false; $query->query_vars[s] = false; $query->query[s] = false; if ( $error == true ) $query->is_404 = true; } } add_action( 'parse_query', 'disable_search' ); 

Тем не менее, не уверен, как это повлияет на реализацию поиска Google.

Вы должны сделать это с помощью фильтра pre_get_posts , который запускается до выполнения фактического запроса.

 add_filter( 'pre_get_posts', 'wpse168169' ); function wpse168169( $query ) { if ( ( ! is_admin() ) && ( $query->is_main_query() ) && ( $query->is_search ) ) { // modify $query here to suit your needs; unset( $query ) maybe? } return $query; }