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.