Хук posts_search_orderby в WPFTS

Хук posts_search_orderby в WordPress — это фильтр, который позволяет изменять часть SQL-запроса ORDER BY, используемую для сортировки результатов поиска. WPFTS использует этот хук для сортировки результатов поиска по релевантности, если индексный поиск включен, и параметр orderby в запросе не установлен или равен relevance.

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

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

  2. Проверка параметра orderby: Если индексный поиск включен, плагин проверяет, установлен ли параметр orderby в запросе, и если он равен relevance или не установлен вовсе.

  3. Сортировка по релевантности: Если условия выполнены, WPFTS заменяет стандартную часть ORDER BY на свою собственную, которая сортирует результаты по релевантности, рассчитанной поисковым движком плагина. Направление сортировки (ASC или DESC) берется из параметра order запроса.

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

  • WPFTS_Search::index_sql_orderby()

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

Разработчики аддонов должны учитывать, что WPFTS может изменять сортировку результатов поиска. Если ваш аддон также модифицирует часть ORDER BY, убедитесь, что ваша логика совместима с WPFTS.

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

  • WPFTS сортирует результаты по релевантности только если для текущего запроса активен индексный поиск, а параметр orderby не установлен или равен relevance.

  • Релевантность рассчитывается в методе WPFTS_Search::sql_parts().

Этот хук демонстрирует, как WPFTS управляет сортировкой результатов поиска и интегрируется со стандартным механизмом WordPress.