wpfts_indexer_event (Action)
Хук wpfts_indexer_event
вызывается при каждом запуске индексатора WP Fast Total Search по расписанию cron. Это позволяет разработчикам выполнять собственные действия при индексации, например, добавлять данные в индекс из сторонних источников или выполнять другие операции, синхронизированные с процессом индексации.
Когда используется
Этот хук полезен в следующих случаях:
- Добавление данных в индекс из плагинов или тем, которые не обрабатываются стандартными правилами индексации WPFTS.
- Выполнение дополнительных операций при индексации, например, обновление связанных данных или отправка уведомлений.
- Отслеживание процесса индексации и сбор статистики.
Аргументы
Хук wpfts_indexer_event
не принимает никаких аргументов.
Возвращаемое значение
Хук wpfts_indexer_event
не должен возвращать никакого значения.
Пример
/**
* Добавляет данные из кастомной таблицы в индекс WPFTS при каждом запуске индексатора.
*/
add_action('wpfts_indexer_event', 'my_custom_indexing_logic');
function my_custom_indexing_logic() {
global $wpdb, $wpfts_core;
// Получаем данные из кастомной таблицы.
$data = $wpdb->get_results("SELECT * FROM my_custom_table");
// Добавляем данные в индекс WPFTS.
foreach ($data as $item) {
$chunks = array(
'custom_title' => $item->title,
'custom_content' => $item->content,
);
$wpfts_core->GetIndex()->reindex(0, $chunks);
// @todo Правильная реализация через создание/обновление записей в wpftsi_index и добавление в wpftsi_rawcache
}
}
Важные замечания
- Код, выполняемый внутри обработчика этого хука, должен быть оптимизирован по производительности, так как он будет выполняться при каждом запуске индексатора, который может быть довольно частым.
- Учитывайте, что индексатор работает в фоновом режиме, поэтому не следует выводить никакой информации на экран внутри обработчика хука.
- Для больших объемов данных рекомендуется использовать пакетную обработку и оптимизированные SQL-запросы для добавления данных в индекс.
- Критически важно: в примере выше показан неправильный способ добавления данных в индекс. В данном случае используется
$wpfts_core->GetIndex()->reindex(0, $chunks);
с нулевымid
, что не соответствует логике плагина. Разработчикам необходимо самостоятельно создавать/обновлять записи в таблицеwpftsi_index
, а также добавлять данные вwpftsi_rawcache
, если это необходимо. В документации следует обязательно указать на этот момент и предоставить пример правильной реализации.
Хук wpfts_indexer_event
предоставляет разработчикам возможность гибко интегрировать свои данные и логику с процессом индексации WPFTS.