wpfts_preset_data (Filter)

Фильтр wpfts_preset_data в WP Fast Total Search позволяет разработчикам модифицировать данные пресета перед его использованием. Пресеты в WPFTS используются для определения настроек поиска, таких как URL страницы результатов, режим автодополнения, используемые кластеры и их веса, и другие параметры. Этот фильтр дает возможность динамически изменять эти настройки в зависимости от контекста, в котором вызывается поиск.

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

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

  • Изменение URL страницы результатов в зависимости от текущей страницы: Например, вы можете настроить пресет так, чтобы результаты поиска отображались на разных страницах для разных разделов сайта.
  • Включение/отключение автодополнения в зависимости от устройства: Вы можете отключить автодополнение на мобильных устройствах для повышения производительности.
  • Изменение весов кластеров в зависимости от контекста: Например, на странице категории товаров вы можете увеличить вес кластера, содержащего описание товара.
  • Добавление дополнительных параметров в пресет: Вы можете добавить свои собственные параметры в пресет и использовать их в своем коде.

Аргументы

  • $preset (массив): Ассоциативный массив данных пресета. Содержит такие ключи, как results_url, autocomplete_mode, classname и другие.
  • $preset_id (строка): Идентификатор пресета.
  • $context (строка): Контекст, в котором используется пресет. В настоящее время используется значение ‘widget’.

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

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

Пример (изменение URL страницы результатов)

add_filter('wpfts_preset_data', 'my_wpfts_preset_data_filter', 10, 3);
function my_wpfts_preset_data_filter($preset, $preset_id, $context) {
  if ($preset_id == 'my_custom_preset') {
    if (is_singular('product')) {
        // Если мы на странице товара,  настраиваем  поиск  на  категорию товара
		$terms = get_the_terms(get_the_ID(), 'product_cat');
		if ($terms && !is_wp_error($terms)) {
			$term = array_pop($terms);
			$preset['results_url'] = get_term_link($term);
		}
    } else {
      $preset['results_url'] = home_url('/search/'); //  URL страницы результатов по умолчанию.
    }
  }
  return $preset;
}

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

  • Фильтр wpfts_preset_data вызывается перед использованием пресета.
  • Изменения, внесенные в массив $preset, влияют на настройки поиска.
  • Аргумент $context в настоящее время всегда равен ‘widget’, но в будущих версиях плагина могут быть добавлены другие контексты.

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