Хук wp_ajax_wpfts_autocomplete в WPFTS

Хук wp_ajax_wpfts_autocomplete — это AJAX хук WordPress, который обрабатывает запросы автодополнения для поиска WPFTS от пользователей, авторизованных на сайте. Существует версия хука для неавторизованных пользователей, wp_ajax_nopriv_wpfts_autocomplete, он работает аналогично.

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

  1. Получение данных запроса: Хук получает данные из AJAX-запроса, включая введенные пользователем термины поиска (s), код виджета (wpfts_wdgt) и другие параметры.

  2. Выполнение поиска: WPFTS выполняет поисковый запрос с полученными параметрами, используя класс WP_Query. Параметр wpfts_is_force = 1 гарантирует, что будет использован поиск WPFTS, а параметр wpfts_source = ‘wpfts_autocomplete_ajax’ указывает источник запроса. Если код виджета указан, его параметры также учитываются при поиске. В противном случае используются параметры по умолчанию, как для основного запроса WordPress (например, post_status = ‘publish’).

  3. Формирование результатов: Для каждого найденного поста формируется массив с заголовком (label) и ссылкой (link).

  4. Применение Smart Excerpts: Если включена опция Smart Excerpts, вызывается метод WPFTS_Core::ForceSmartExcerpts(), чтобы подготовить отрывки для отображения в результатах автодополнения.

  5. Возврат результатов: Результаты поиска возвращаются в формате JSON.

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

  • WPFTS_Core::ForceSmartExcerpts()

  • WP_Query

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

Разработчикам аддонов обычно не нужно взаимодействовать с этим хуком напрямую. Однако, понимание его работы может быть полезно при интеграции с WPFTS и создании собственных функций автодополнения.

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

  • Этот хук обрабатывает запросы только от авторизованных пользователей. Для неавторизованных пользователей используется хук wp_ajax_nopriv_wpfts_autocomplete.

  • Результаты поиска ограничены заголовком и ссылкой. Для отображения дополнительной информации в результатах автодополнения необходимо модифицировать код обработчика хука.

  • В коде обработчика хука используется функция wpfts_json_encode() для безопасного кодирования данных в формат JSON.

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