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 и добавлять свою логику обработки данных.