Хук plugins_loaded в WPFTS
Хук plugins_loaded — это стандартный хук WordPress, который срабатывает после загрузки всех плагинов. WPFTS использует этот хук для загрузки текстового домена плагина, что позволяет осуществлять перевод интерфейса плагина на разные языки. Также на этом хуке WPFTS инициализирует свои основные классы и функции, если ядро плагина уже загружено.
Что делает WPFTS при вызове plugins_loaded:
-
Загрузка текстового домена: Вызывает функцию wpfts_load_plugin_textdomain() для загрузки файла перевода плагина. Это позволяет использовать функцию __() для перевода строк интерфейса.
-
Инициализация ядра плагина (при наличии): Проверяет, существует ли глобальная переменная $wpfts_core и является ли она объектом класса WPFTS_Core. Если это так, значит, ядро плагина уже загружено и инициализировано (например, через wpfts_init_addons), и на этом хуке выполняются следующие действия:
-
Вызов метода WPFTS_Core::set_hooks() для регистрации хуков, связанных с поиском.
-
Регистрация AJAX обработчиков для автодополнения (wpfts_autocomplete_proc).
-
Регистрация AJAX обработчиков для принудительной индексации (WPFTS_Core::ajax_force_index()).
-
Добавление фильтра safe_style_css для поддержки специфичного CSS.
-
Добавление обработчика для post_submitbox_misc_actions для отображения статуса индексации.
-
Подключение скриптов и стилей административной панели, если запрос идет из админки (wpfts_admin_menu, wpfts_plugin_links, wpfts_enqueues).
-
Регистрация AJAX обработчиков для внутренних функций плагина (wpftsi_ping, wpftsi_set_pause, wpftsi_hide_notification, wpftsi_se_style_preview, wpftsi_se_style_reset, wpftsi_try_updatedb).
-
Регистрация AJAX обработчиков для действий администратора (wpftsi_submit_testpost, wpftsi_submit_testsearch, wpftsi_submit_rebuild, wpftsi_smartform, wpftsi_submit_upgradeindex, wpftsi_add_user_irule).
-
Вызов $wpfts_core->FeatureDetector(); для определения особенностей среды WordPress (например, для отображения уведомлений о недостаточном лимите памяти).
-
Выполнение действия wpfts_init_addons для инициализации аддонов.
-
Важные функции, задействованные в обработке plugins_loaded:
-
wpfts_load_plugin_textdomain()
-
WPFTS_Core::set_hooks()
-
WPFTS_Core::set_is_settings_page() (используется в wpfts_enqueues)
-
add_action() для регистрации AJAX обработчиков
-
add_filter() для регистрации фильтров
-
do_action(‘wpfts_init_addons’)
Как это использовать в разработке аддонов:
Разработчики аддонов могут использовать этот хук для инициализации своих аддонов после того, как все плагины будут загружены. Это гарантирует, что все необходимые функции и классы WordPress будут доступны. Для интеграции с WPFTS рекомендуется использовать действие wpfts_init_addons, которое вызывается на этом же хуке.
Дополнительные замечания:
Загрузка текстового домена на хуке plugins_loaded — это стандартная практика для плагинов WordPress, которая позволяет переводить интерфейс плагина на разные языки. WPFTS следует этой практике. Важно отметить, что, хотя большая часть логики плагина инициализируется на хуке plugins_loaded, сам плагин начинает работу гораздо раньше, на хуке init, где создается экземпляр класса WPFTS_Core.