Хук wp_ajax_wpfts_autocomplete в WPFTS
Хук wp_ajax_wpfts_autocomplete — это AJAX хук WordPress, который обрабатывает запросы автодополнения для поиска WPFTS от пользователей, авторизованных на сайте. Существует версия хука для неавторизованных пользователей, wp_ajax_nopriv_wpfts_autocomplete, он работает аналогично.
Что делает WPFTS при вызове wp_ajax_wpfts_autocomplete:
-
Получение данных запроса: Хук получает данные из AJAX-запроса, включая введенные пользователем термины поиска (s), код виджета (wpfts_wdgt) и другие параметры.
-
Выполнение поиска: WPFTS выполняет поисковый запрос с полученными параметрами, используя класс WP_Query. Параметр wpfts_is_force = 1 гарантирует, что будет использован поиск WPFTS, а параметр wpfts_source = ‘wpfts_autocomplete_ajax’ указывает источник запроса. Если код виджета указан, его параметры также учитываются при поиске. В противном случае используются параметры по умолчанию, как для основного запроса WordPress (например, post_status = ‘publish’).
-
Формирование результатов: Для каждого найденного поста формируется массив с заголовком (label) и ссылкой (link).
-
Применение Smart Excerpts: Если включена опция Smart Excerpts, вызывается метод WPFTS_Core::ForceSmartExcerpts(), чтобы подготовить отрывки для отображения в результатах автодополнения.
-
Возврат результатов: Результаты поиска возвращаются в формате JSON.
Важные функции, задействованные в обработке wp_ajax_wpfts_autocomplete:
-
WPFTS_Core::ForceSmartExcerpts()
-
WP_Query
Как это использовать в разработке аддонов:
Разработчикам аддонов обычно не нужно взаимодействовать с этим хуком напрямую. Однако, понимание его работы может быть полезно при интеграции с WPFTS и создании собственных функций автодополнения.
Дополнительные замечания:
-
Этот хук обрабатывает запросы только от авторизованных пользователей. Для неавторизованных пользователей используется хук wp_ajax_nopriv_wpfts_autocomplete.
-
Результаты поиска ограничены заголовком и ссылкой. Для отображения дополнительной информации в результатах автодополнения необходимо модифицировать код обработчика хука.
-
В коде обработчика хука используется функция wpfts_json_encode() для безопасного кодирования данных в формат JSON.
Этот хук демонстрирует, как WPFTS обрабатывает запросы автодополнения для неавторизованных пользователей, и может быть полезным примером для разработчиков аддонов.