Как удалить или отключить плагин на определённых страницах WordPress

В работе с WordPress часто возникает ситуация, когда определённые плагины нужны не на всех страницах сайта, а только на некоторых. Например, плагин слайдера требуется только на главной странице, а плагин формы обратной связи — только на странице контактов. Полное отключение плагина уберёт его функционал с сайта, но и снизит нагрузку на сервер и ускорит загрузку страниц, где плагин не нужен.

Зачем отключать плагины на отдельных страницах

Отключение плагинов на выбранных страницах помогает:

  • Снизить количество загружаемых CSS и JS файлов, что ускоряет загрузку страниц.
  • Избежать конфликтов плагинов, когда один и тот же плагин ведёт к ошибкам на некоторых страницах.
  • Оптимизировать производительность сайта, что особенно важно для сайтов с большим количеством плагинов.

Для примера, если ваш сайт использует плагин слайдера, который подключается на всех страницах, а нужен только на главной, стоит отключать его на остальных страницах. Это также уменьшит нагрузку на память и процессор сервера.

Способы отключения плагинов на отдельных страницах

Использование плагина Plugin Organizer

Плагин Plugin Organizer позволяет легко управлять активацией плагинов на страницах. Можно задать правила, где какой плагин должен работать, а где — нет.

Преимущества:

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

Однако, плагин добавляет дополнительный слой в работу сайта, что иногда не оптимально.

Отключение плагинов через код в functions.php

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

function wpma_disable_plugin_on_pages() {
    if ( is_admin() ) return; // Не отключать в админке

    // Плагины для отключения
    $plugins_to_disable = [
        'contact-form-7/wp-contact-form-7.php',
        'some-slider-plugin/slider.php'
    ];

    // Страницы, на которых плагины должны работать
    $pages_to_enable = [
        'contact', // слаг страницы контакты
        'home'
    ];

    // Проверяем текущую страницу
    if ( !is_page($pages_to_enable) ) {
        foreach ($plugins_to_disable as $plugin) {
            if ( is_plugin_active($plugin) ) {
                deactivate_plugins($plugin);
            }
        }
    }
}
add_action('wp', 'wpma_disable_plugin_on_pages');

Этот код отключает указанные плагины на всех страницах, кроме тех, что перечислены в $pages_to_enable. Однако, функция deactivate_plugins() меняет статус плагина в базе, что не всегда желательно. Лучше избегать этого — есть другой способ.

Отключение загрузки плагина с помощью фильтра

Лучший способ — не отключать плагин полностью, а предотвратить загрузку его скриптов и стилей на ненужных страницах. Для этого можно использовать фильтр option_active_plugins и убрать плагин из списка активных на фронтенде.

function wpma_filter_active_plugins($plugins) {
    if ( is_admin() ) return $plugins;

    $plugins_to_disable = [
        'contact-form-7/wp-contact-form-7.php',
        'some-slider-plugin/slider.php'
    ];

    $pages_to_enable = [
        'contact',
        'home'
    ];

    if ( !is_page($pages_to_enable) ) {
        foreach ($plugins_to_disable as $plugin) {
            $key = array_search($plugin, $plugins);
            if ( false !== $key ) {
                unset($plugins[$key]);
            }
        }
    }
    return $plugins;
}
add_filter('option_active_plugins', 'wpma_filter_active_plugins');

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

Примеры плагинов и их оптимизация

Оптимизация WPRemark на отдельных страницах

Если вы используете плагин WPRemark для отзывов, но хотите показывать отзывы только на страницах продуктов или блога, можно отключить его скрипты на остальных страницах:

function wpma_dequeue_wpremark_scripts() {
    if ( !is_singular('product') && !is_category('blog') ) {
        wp_dequeue_script('wpremark-script');
        wp_dequeue_style('wpremark-style');
    }
}
add_action('wp_enqueue_scripts', 'wpma_dequeue_wpremark_scripts', 20);

Отключение Quizle на страницах без викторин

Плагин Quizle может грузить много ресурсов. Если викторина нужна на одной странице, то на остальных лучше отключить его скрипты:

function wpma_dequeue_quizle_scripts() {
    if ( !is_page('quiz') ) {
        wp_dequeue_script('quizle-script');
        wp_dequeue_style('quizle-style');
    }
}
add_action('wp_enqueue_scripts', 'wpma_dequeue_quizle_scripts', 20);

Советы по безопасному отключению плагинов

Перед отключением плагина на страницах убедитесь, что его функции там не используются. Иначе это может привести к ошибкам PHP или нарушению логики сайта.

Для проверки используйте консоль браузера и логи сервера. Если появляются ошибки, попробуйте добавить проверки на существование функций и классов.

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

Если плагин обрабатывает AJAX-запросы или добавляет шорткоды, убедитесь, что отключение на определённых страницах не ломает эти механизмы.

Как автоматизировать удаление старых записей в WordPress через AJAX
29.01.2026
Как создать автоматический запрос на данные в WordPress с помощью WP_Query и AJAX
02.03.2026
Как создать динамические меню в WordPress с помощью кода
26.01.2026
Как автоматизировать удаление неиспользуемых медиафайлов в WordPress
15.01.2026
Как создать собственный виджет в WordPress
23.11.2025