Хук posts_join в WPFTS

Хук posts_join в WordPress — это фильтр, который позволяет модифицировать часть SQL-запроса JOIN, используемую для объединения таблиц в запросе. WPFTS использует этот хук для объединения таблицы постов (wp_posts) с временной таблицей, содержащей информацию о релевантности постов, рассчитанной поисковым движком плагина.

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

  1. Проверка использования индексного поиска: Плагин проверяет, включен ли индексный поиск WPFTS ($wpq->wpftsi_session[‘use_indexed_search’]).

  2. Добавление 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-запроса.