wpfts_search_terms (Filter)

Фильтр wpfts_search_terms в WP Fast Total Search позволяет разработчикам модифицировать поисковые термины, введенные пользователем, перед тем, как они будут использованы для поиска. Это дает возможность изменять, добавлять или удалять термины, что позволяет гибко настраивать логику поиска.

Когда используется

Этот фильтр может быть полезен в следующих ситуациях:

  • Предобработка поисковых запросов: например, удаление знаков препинания, приведение к нижнему регистру, исправление опечаток.
  • Расширение поискового запроса: например, добавление синонимов или связанных терминов к исходному запросу.
  • Исключение определенных терминов из поиска.
  • Реализация “умного” поиска, который автоматически корректирует запросы пользователей.

Аргументы

  • $terms (array): Массив поисковых терминов. Каждый элемент массива представляет собой отдельный термин (слово или фразу).
  • $wpq (object): Объект WP_Query, содержащий параметры текущего запроса. Этот объект может быть использован для доступа к другим параметрам запроса, таким как тип поста, статус поста и т.д., что позволяет реализовать более сложную логику фильтрации.

Возвращаемое значение

  • $terms (array): Модифицированный массив поисковых терминов.

Пример

/**
 * Удаляет знаки препинания из поисковых терминов и приводит их к нижнему регистру.
 */
add_filter('wpfts_search_terms', 'my_wpfts_search_terms_filter', 10, 2);
function my_wpfts_search_terms_filter($terms, $wpq) {
  $processed_terms = array();
  foreach ($terms as $term) {
    // Удаляем знаки препинания.
    $term = preg_replace('/[^a-zA-Z0-9\s]/', '', $term);
    // Приводим к нижнему регистру.
    $term = strtolower($term);
 
    if (!empty($term)) { // prevent empty values
		$processed_terms[] = $term;
	}
 
  }
  return $processed_terms;
}

Важные замечания

  • Изменения, внесенные в массив $terms, напрямую влияют на результаты поиска. Будьте осторожны при модификации терминов.
  • Фильтр wpfts_search_terms вызывается перед выполнением поиска, поэтому он может быть использован для оптимизации запроса и улучшения производительности.

Фильтр wpfts_search_terms предоставляет разработчикам мощный инструмент для тонкой настройки логики поиска в WP Fast Total Search.