Хук the_posts в WPFTS

Хук the_posts в WordPress — это фильтр, который позволяет модифицировать список постов, полученных в результате запроса WP_Query, перед их отображением на странице. WPFTS использует этот хук для очистки данных сессии, связанных с поисковым запросом, а также для очистки временных таблиц, используемых для расчета релевантности.

Что делает WPFTS при вызове the_posts:

  1. Запись статистики запроса: WPFTS записывает в сессию $wpq->wpftsi_session время окончания запроса, использованную память и количество найденных постов. Эта информация затем используется для логирования запросов.

  2. Вызов метода WPFTS_QueryLog::FinishSearch(): Этот метод записывает финальную статистику запроса в базу данных.

  3. Очистка временной таблицы: Если для расчета релевантности использовалась временная таблица wpftsi_tp, WPFTS удаляет из нее записи, связанные с текущим запросом, а также устаревшие записи. Если использовалась временная таблица, созданная в самом запросе (wpftsi_trel), очистка не производится.

  4. Очистка сессии: WPFTS очищает сессию $wpq->wpftsi_session, удаляя данные, связанные с текущим поисковым запросом. Это делается для освобождения памяти и предотвращения конфликтов с последующими запросами.

Важные функции, задействованные в обработке the_posts:

  • WPFTS_Search::index_the_posts()

  • WPFTS_QueryLog::FinishSearch()

  • WPFTS_DB::query() (для очистки временной таблицы)

Как это использовать в разработке аддонов:

Разработчикам аддонов, взаимодействующих с WPFTS, важно понимать, что плагин выполняет очистку данных в хуке the_posts. Если ваш аддон также использует этот хук, убедитесь, что ваша логика не конфликтует с логикой WPFTS.

Дополнительные замечания:

  • Хук the_posts вызывается после того, как WP_Query выполнил запрос и получил результаты.

  • WPFTS использует этот хук в качестве точки очистки данных сессии и временных таблиц.

  • Очистка временных таблиц необходима для предотвращения переполнения базы данных и поддержания производительности.