Хук the_posts в WPFTS
Хук the_posts в WordPress — это фильтр, который позволяет модифицировать список постов, полученных в результате запроса WP_Query, перед их отображением на странице. WPFTS использует этот хук для очистки данных сессии, связанных с поисковым запросом, а также для очистки временных таблиц, используемых для расчета релевантности.
Что делает WPFTS при вызове the_posts:
-
Запись статистики запроса: WPFTS записывает в сессию $wpq->wpftsi_session время окончания запроса, использованную память и количество найденных постов. Эта информация затем используется для логирования запросов.
-
Вызов метода WPFTS_QueryLog::FinishSearch(): Этот метод записывает финальную статистику запроса в базу данных.
-
Очистка временной таблицы: Если для расчета релевантности использовалась временная таблица wpftsi_tp, WPFTS удаляет из нее записи, связанные с текущим запросом, а также устаревшие записи. Если использовалась временная таблица, созданная в самом запросе (wpftsi_trel), очистка не производится.
-
Очистка сессии: 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 использует этот хук в качестве точки очистки данных сессии и временных таблиц.
-
Очистка временных таблиц необходима для предотвращения переполнения базы данных и поддержания производительности.