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.