wpfts_irules_call/<call> (Action)
Хук wpfts_irules_call/<call> в WP Fast Total Search предоставляет мощный механизм для расширения функциональности индексации путем добавления пользовательской логики обработки данных перед их добавлением в индекс. <call> в названии хука - это идентификатор (строка), который определяет конкретный вызов в правилах индексации. Этот хук вызывается внутри метода getPostChunks() класса WPFTS_Core при применении правил индексации.
Когда используется
-
Когда стандартных фильтров, предоставляемых WPFTS, недостаточно для обработки данных.
-
Для выполнения сложной логики обработки данных перед индексацией.
-
Для интеграции с другими плагинами или сервисами.
-
Для добавления данных в индекс из нестандартных источников.
Аргументы
-
$chunks (array): Массив данных, подготовленных для индексации. Этот массив может быть модифицирован внутри функции-обработчика.
-
$post (object): Объект WP_Post, представляющий индексируемый пост.
-
$props (array): Массив свойств, определенных в правиле индексации для данного вызова. Это позволяет передавать дополнительные параметры в функцию-обработчик.
-
$rule (array): Массив, содержащий все данные правила индексации.
Возвращаемое значение
- $chunks (array): Модифицированный массив данных для индексации. Функция-обработчик должна вернуть массив $chunks.
Пример
/**
* Добавляет в индекс дату последнего изменения поста.
*/
add_filter('wpfts_irules_call/get_last_modified_date', 'my_get_last_modified_date_handler', 10, 4);
function my_get_last_modified_date_handler($chunks, $post, $props, $rule) {
$chunks['last_modified'] = $post->post_modified;
return $chunks;
}
// Пример правила индексации с использованием этого вызова:
$my_rule = array(
'filter' => array( 'post_type' => 'post' ),
// Правило применяется только к постам.
'actions' => array(
array(
'call' => 'get_last_modified_date',
),
// ... другие действия ...
),
// ... другие параметры правила ...
);
add_filter('wpfts_irules_before', 'add_my_rule');
function add_my_rule($rules) {
global $my_rule;
$rules[] = $my_rule;
return $rules;
}
Важные замечания
-
Идентификатор должен быть уникальным, чтобы избежать конфликтов с другими расширениями.
-
Свойства, передаваемые в $props, должны быть определены в правиле индексации.
-
Этот хук предоставляет большую гибкость, но требует понимания правил индексации WPFTS.
Хук wpfts_irules_call/<call> позволяет разработчикам расширять функциональность индексации WPFTS и добавлять свою логику обработки данных.