Описание plugins_loaded
— Action
Хук plugins_loaded срабатывает после загрузки всех активных плагинов. Он позволяет выполнять код, который зависит от других плагинов, и инициализировать функциональность, требующую предварительной загрузки всех плагинов
Примеры использования
Пример регистрации пользовательских типов постов после загрузки плагинов:
add_action('plugins_loaded', function() {
register_post_type('custom_type', array(
'labels' => array(
'name' => 'Кастомные типы',
'singular_name' => 'Кастомный тип'
),
'public' => true,
'has_archive' => true
));
});
В этом примере мы регистрируем новый пользовательский тип поста ‘custom_type’ после загрузки всех плагинов
Пример инициализации текстовой доменной локализации:
add_action('plugins_loaded', function() {
load_plugin_textdomain('my-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages');
});
Здесь мы инициализируем текстовую доменную локализацию для плагина
Пример проверки наличия зависимого плагина:
add_action('plugins_loaded', function() {
if (!is_plugin_active('some-plugin/some-plugin.php')) {
deactivate_plugins(plugin_basename(__FILE__));
add_action('admin_notices', function() {
echo 'Пожалуйста, активируйте Some Plugin для работы этого плагина
';
});
}
});
В этом примере мы проверяем, активен ли зависимый плагин, и деактивируем наш плагин, если он не активен
— Лучшие практики
– Использование
Используйте этот хук для выполнения кода, который зависит от других плагинов или требует их загрузки
– Производительность
Хук не должен существенно влиять на производительность, но избегайте выполнения тяжелых операций внутри него
– Предупреждения
Убедитесь, что код не зависит от конкретного порядка загрузки плагинов, так как это может вызвать ошибки
Альтернативы
Тип: action
Этот хук срабатывает после загрузки ядра WordPress и плагинов, но до обработки запросов
Используйте его для выполнения кода, который не зависит от других плагинов
Тип: action
Этот хук срабатывает после загрузки темы, что позволяет выполнять код, связанный с настройками темы
Используйте его, если вам нужно настроить функциональность темы после загрузки всех плагинов