WordPress имеет встроенную поисковую систему, однако она не такая сложная, как поисковая система Google (например, поиск WP не включает комментарии). Чтобы использовать стороннюю поисковую систему, вы можете вставить следующий код в файл шаблона функции, например, functions.php
function wp_use_google_search( $wp_query) {
$s = '';
if (isset($wp_query->query_vars['s'])) {
$s = trim($wp_query->query_vars['s']);
}
if (!$s) { // empty query returns
return;
}
// get current host
$host = strtolower($_SERVER['HTTP_HOST']);
// use google
$search_engine = '<a class="vglnk" target="_blank" href="https://www.google.com/search?q=" rel="nofollow"><span>https</span><span>://</span><span>www</span><span>.</span><span>google</span><span>.</span><span>com</span><span>/</span><span>search</span><span>?</span><span>q</span><span>=</span></a>';
// concatenate the query
$query = urlencode($s. ' site:'. $host);
// redirect to search engine
wp_redirect($search_engine. $query);
// end the page
exit;
}
// add customized search handler
add_action('parse_query', 'wp_use_google_search');
Еще одно преимущество использования сторонней расширенной поисковой системы для индексации сообщений WordPress заключается в том, что она снижает перегрузку вашего сервера, особенно при большом трафике и ограниченной пропускной способности. Вы также можете настроить поисковую систему, например, используя google.co.uk вместо google.com, если вы ориентируетесь только на пользователей из Великобритании.
Вы можете сохранить указанный выше файл по общему пути, доступному для всех блогов WordPress, если у вас есть несколько блогов, размещенных на одном сервере (VPS или выделенный сервер ). Таким образом, в каждый файл functions.php дочерней темы вы можете просто включить:
// Assume we save the above function in file /commom/path/to/wp_search.php
require('/commom/path/to/wp_search.php');
Обратите внимание, убедитесь, что вы не забыли <?php (в начале файла PHP) .. и ?> (необязательный тег конца файла), когда вы сохраняете вышеуказанную функцию в отдельном файле php.