В стандартной установке WordPress все активированные плагины автоматически подключаются при каждой загрузке сайта. Это удобно в большинстве случаев, но иногда требуется отключить автоматическое подключение плагинов, чтобы повысить производительность, предотвратить конфликты или реализовать динамическую загрузку только нужных плагинов на определённых страницах.
Зачем отключать автоматическое подключение плагинов в WordPress
Автоматическое подключение всех активированных плагинов при каждой загрузке страницы может негативно влиять на скорость работы сайта. Особенно это актуально для сайтов с большим количеством плагинов, где часть из них используется лишь в админ-панели или на отдельных страницах фронтенда.
Отключение автозагрузки и подключение плагинов вручную позволяет:
- Уменьшить потребление ресурсов сервера и ускорить загрузку страниц;
- Избежать конфликтов между плагинами за счёт поэтапного подключения;
- Подключать плагины только там, где они действительно нужны (например, только в админке или на конкретных URL);
- Повысить безопасность, отключая плагины на фронтенде при необходимости.
Этот подход часто используется опытными разработчиками и в больших проектах.
Как отключить автоматическое подключение плагинов — обзор методов
Метод 1. Отключение автозагрузки через фильтр option_active_plugins
WordPress хранит список активных плагинов в опции active_plugins. С помощью фильтра option_active_plugins можно перехватить этот список и модифицировать его. Например, удалять из массива определённые плагины, чтобы они не подключались автоматически.
Пример кода для отключения автозагрузки плагина my-plugin/my-plugin.php:
add_filter('option_active_plugins', 'wpid_disable_autoload_my_plugin');
function wpid_disable_autoload_my_plugin($plugins) {
$plugin_key = array_search('my-plugin/my-plugin.php', $plugins);
if ($plugin_key !== false) {
unset($plugins[$plugin_key]);
}
return $plugins;
}Этот код исключит плагин из списка активных, и WordPress его не подключит автоматически. При этом плагин останется активным, просто его загрузка откладывается.
Метод 2. Подключение плагинов вручную с помощью include_once
После отключения автозагрузки нужных плагинов, вы можете подключать их вручную, когда это необходимо. Например, условно, только в админке:
add_action('admin_init', 'wpid_manual_load_my_plugin');
function wpid_manual_load_my_plugin() {
include_once WP_PLUGIN_DIR . '/my-plugin/my-plugin.php';
}Такой способ позволяет загружать плагин только в админ-панели, снижая нагрузку на фронтенд.
Метод 3. Использование плагина Clearfy Pro для управления автозагрузкой
Плагин Clearfy Pro предоставляет удобный интерфейс для управления автозагрузкой плагинов. В нем можно отключать подключение плагинов на фронтенде, в админке или на мобильных устройствах без правки кода.
Это значительно упрощает задачу для тех, кто не хочет заниматься программированием.
Практический пример: отключение автозагрузки нескольких плагинов с последующим подключением по условию
Допустим, вы хотите отключить автоматическую загрузку плагинов contact-form-7/wp-contact-form-7.php и akismet/akismet.php на фронтенде, но оставить их в админке.
Код для этого будет выглядеть так:
add_filter('option_active_plugins', 'wpid_disable_plugins_on_frontend');
function wpid_disable_plugins_on_frontend($plugins) {
if (!is_admin()) {
$disable = [
'contact-form-7/wp-contact-form-7.php',
'akismet/akismet.php'
];
foreach ($disable as $plugin) {
$key = array_search($plugin, $plugins);
if ($key !== false) {
unset($plugins[$key]);
}
}
}
return $plugins;
}
add_action('admin_init', 'wpid_manual_load_plugins_in_admin');
function wpid_manual_load_plugins_in_admin() {
include_once WP_PLUGIN_DIR . '/contact-form-7/wp-contact-form-7.php';
include_once WP_PLUGIN_DIR . '/akismet/akismet.php';
}Таким образом, на фронтенде эти плагины не будут загружаться, снижая нагрузку, но в админке они будут доступны и работают как обычно.
Особенности и важные моменты при отключении автозагрузки плагинов
При отключении автоматической загрузки плагинов важно учитывать следующие моменты:
- Некоторые плагины зависят от других или от хуков, которые срабатывают при загрузке — отключение может привести к ошибкам.
- Плагинам, которые добавляют функционал в шаблоны, требуется подключение на фронтенде. Их нужно подключать вручную там, где это необходимо.
- Для плагинов с собственными настройками в админке удобно подключать их именно в
admin_initили похожих хуках. - Тестируйте сайт после внедрения таких изменений, чтобы избежать критических ошибок и потери функционала.
Заключение
Отключение автоматического подключения плагинов в WordPress — мощный инструмент для разработчиков и оптимизаторов. Он позволяет повысить производительность сайта, уменьшить нагрузку и гибко управлять загрузкой функционала.
Для реализации этой задачи отлично подходит фильтр option_active_plugins в сочетании с ручным подключением плагинов по необходимости. Если вы предпочитаете готовые решения, обратите внимание на Clearfy Pro, который значительно упрощает настройку.