Хук posts_join в WPFTS
Хук posts_join в WordPress — это фильтр, который позволяет модифицировать часть SQL-запроса JOIN, используемую для объединения таблиц в запросе. WPFTS использует этот хук для объединения таблицы постов (wp_posts) с временной таблицей, содержащей информацию о релевантности постов, рассчитанной поисковым движком плагина.
Что делает WPFTS при вызове posts_join:
-
Проверка использования индексного поиска: Плагин проверяет, включен ли индексный поиск WPFTS ($wpq->wpftsi_session[‘use_indexed_search’]).
-
Добавление JOIN с временной таблицей: Если индексный поиск включен, WPFTS добавляет в запрос JOIN с временной таблицей (алиас wpfts_t), которая содержит ID постов и их релевантность. Это позволяет получить релевантность для каждого поста в результатах поиска.
Важные функции, задействованные в обработке posts_join:
- WPFTS_Search::index_sql_joins()
Как это использовать в разработке аддонов:
Разработчикам аддонов необходимо учитывать, что WPFTS может добавлять свои JOIN-ы в SQL-запрос. Если ваш аддон также использует JOIN-ы, убедитесь, что ваша логика не конфликтует с WPFTS.
Дополнительные замечания:
-
WPFTS добавляет JOIN только при использовании индексного поиска.
-
Временная таблица с релевантностью создается в методе WPFTS_Search::sql_parts().
-
Этот хук демонстрирует, как WPFTS интегрирует свой поисковый движок с WordPress на уровне SQL-запроса.