wpfts_get_attachment_content (Filter)

ВНИМАНИЕ!!! Данная функция присутствует только в PRO версии плагина WPFTS.

Фильтр wpfts_get_attachment_content в WP Fast Total Search позволяет разработчикам модифицировать или добавлять данные, которые будут проиндексированы для вложений (attachments). Он вызывается при индексации вложений и позволяет добавлять в индекс не только стандартные поля вложения (заголовок, описание), но и данные из других источников, например, текст, извлеченный из файла вложения.

Когда используется

Этот фильтр особенно полезен, когда вам нужно индексировать содержимое файлов вложений, например, PDF, DOCX, или других текстовых файлов. Вы можете использовать этот фильтр в сочетании с библиотекой для извлечения текста из файлов и добавлять извлеченный текст в индекс WPFTS.

Аргументы

  • $chunks (массив): Массив данных, подготовленных для индексации. По умолчанию, содержит заголовок (post_title) и описание (post_content) вложения.
  • $post (объект WP_Post): Объект вложения WordPress.
  • $is_reset_cache (bool): Флаг, указывающий, нужно ли сбрасывать кеш данных вложения.

Возвращаемое значение

  • $chunks (массив): Модифицированный массив данных для индексации.

Пример (добавление текста из PDF файла в индекс)

add_filter('wpfts_get_attachment_content', 'add_pdf_content_to_index', 10, 3);
 
function add_pdf_content_to_index($chunks, $post, $is_reset_cache)
{
	// получаем mime-type файла
	$mime_type = $post->post_mime_type;
	if (strpos($mime_type, 'pdf') !== false) {
		// используем какую-либо библиотеку для извлечения текста из PDF
		require_once 'path/to/pdfparser.php'; // путь к вашей библиотеке
		$parser = new PdfParser();
		$content = $parser->parseFile(get_attached_file($post->ID));
 
		if ($content) {
			$chunks['attachment_content'] = $content; // добавляем содержимое PDF в новый кластер `attachment_content`
		}
	}
	return $chunks;
}

Важные замечания

  • Не забывайте устанавливать вес для новых кластеров (например, attachment_content в примере выше) в настройках плагина или через фильтр wpfts_cluster_weights, чтобы они учитывались при расчете релевантности.
  • Убедитесь, что библиотека, которую вы используете для извлечения текста из файлов, установлена и корректно работает.
  • Обработка больших файлов может занимать значительное время и ресурсы сервера. Оптимизируйте свой код для работы с большими файлами.

Фильтр wpfts_get_attachment_content дает разработчикам возможность индексировать содержимое файлов вложений, что значительно расширяет возможности поиска в WP Fast Total Search.