Как отключить обновления WordPress в коде без плагинов

Обновления WordPress важны для безопасности и стабильности вашего сайта, но иногда есть необходимость их отключить. Например, если вы хотите избежать конфликтов с кастомными темами или плагинами (ведь мы никогда не знаем наперед какие изменения будут в ядреидвика WP или разных плагинов). В этом руководстве мы рассмотрим простой и безопасный способ отключения обновлений WordPress.

Подготовка перед отключением обновлений в Вордпрессе

Перед тем как отключить обновления, убедитесь, что у вас есть резервные копии вашего сайта. Это поможет восстановить сайт в случае проблем. Лучше всего иметь backup для всей папки с файлами сайта, а также сделать бекап еще и для базы данных вашего сайта. Особенно это необходимо делать если вы новичек в разработке. И поверьте моему горькому опыту — ЭТО ДЕЛАТЬ НЕОБХОДИМО.

Отключение обновлений WP с помощью плагинов

Существуют плагины, такие как «Disable Updates Manager», которые позволяют отключить обновления в несколько кликов. Просто установите плагин и следуйте инструкциям.

Отключение проверки WordPress на наличие обновлений для ядра, плагинов и тем

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

// Отключение проверки на обновления WordPress
function disable_wordpress_updates() {
    // Отключение проверки версии WordPress
    remove_action( 'wp_version_check', 'wp_version_check' );

    // Отключение инициализации проверки обновления ядра WordPress при доступе в админ-панель
    remove_action( 'admin_init', '_maybe_update_core' );

    // Отключение временного хранения данных об обновлении ядра WordPress
    add_filter( 'pre_site_transient_update_core', '__return_null' );
    
    // Отключение проверки обновления плагинов при загрузке страницы плагинов
    remove_action( 'load-plugins.php', 'wp_update_plugins' );

    // Отключение проверки обновления плагинов при загрузке страницы обновлений
    remove_action( 'load-update.php', 'wp_update_plugins' );

    // Отключение инициализации проверки обновления плагинов при доступе в админ-панель
    remove_action( 'admin_init', '_maybe_update_plugins' );

    // Отключение крон-задачи по проверке обновления плагинов
    remove_action( 'wp_update_plugins', 'wp_update_plugins' );

    // Отключение временного хранения данных об обновлении плагинов
    add_filter( 'pre_site_transient_update_plugins', '__return_null' );

    // Отключение проверки обновления тем при загрузке страницы тем
    remove_action( 'load-themes.php', 'wp_update_themes' );

    // Отключение проверки обновления тем при загрузке страницы обновлений
    remove_action( 'load-update.php', 'wp_update_themes' );

    // Отключение инициализации проверки обновления тем при доступе в админ-панель
    remove_action( 'admin_init', '_maybe_update_themes' );

    // Отключение крон-задачи по проверке обновления тем
    remove_action( 'wp_update_themes', 'wp_update_themes' );

    // Отключение временного хранения данных об обновлении тем
    add_filter( 'pre_site_transient_update_themes', '__return_null' );
}

// Добавление функции отключения проверки обновлений в хук 'init', чтобы она выполнялась при инициализации WordPress
add_action( 'init', 'disable_wordpress_updates' );

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

Код для отключение обновлений WordPress в файле functions.php вашей темы

Если вы предпочитаете не использовать плагины, что я вам и рекомендую, вы можете отключить обновления, добавив код в файл functions.php вашей темы. Не советую использовать большое количество плагинов — это в дальнейшем приведет к подключение большого количества скриптов, стилей и дополнительных запросов к базе данных вашего сайта — это 100% негативно скажется на скорости работы сайта и ненужному мусору в базе данных.

// Отключение обновлений ядра WordPress
add_filter( 'auto_update_core', '__return_false' );

// Отключение обновлений тем
remove_action( 'load-update-core.php', 'wp_update_themes' );
add_filter( 'auto_update_theme', '__return_false' );

// Отключение обновлений плагинов
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'auto_update_plugin', '__return_false' );

Отключение обновлений отдельных плагинов в WordPress

Иногда так случается что часть плагинов должна обновляться, а другая часть должна быть отключена от обновления. Напрмиер потому что одна версия плагина использует версию php 5.6 а обновленная версия того же плагина уже использует 8 версию php, а сайт на вашем сервере по прежнему работает на старой версию 5.6

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

function disable_plugin_updates( $value ) {
    if ( isset( $value ) && is_object( $value ) ) {
        // Замените 'akismet/akismet.php' на идентификатор вашего плагина
        unset( $value->response['akismet/akismet.php'] );
    }
    return $value;
}
add_filter( 'site_transient_update_plugins', 'disable_plugin_updates' );

Переходим в папку с плагинами, которая находится в папке ваш сайт/wp-content/plugins/

Далее мы видим название папки самого плагина — akismet

Внутри данной папки находим главный файл плагина с таким же названием — akismet.php

Проверка и тестирование после внесенных изменений по отключению обновлений WP

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

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

Как отключить полностью все обновления в WordPress полный код

Как отключить полностью все обновления в WordPress — полный код

Если вы хотите отключить все, что касается обновлений в вордпрессе, то вот код, который вы можете скопировать и вставить в файл вашей темы function.php — он отключил абсолютно все, что связано с обновлениями и вам больше не нужно будет об этом беспокоиться.

// Отключение проверки и выполнения обновлений WordPress
function disable_wordpress_updates_and_upgrades() {
    // Отключение проверки версии WordPress
    remove_action( 'wp_version_check', 'wp_version_check' );

    // Отключение инициализации проверки обновления ядра WordPress при доступе в админ-панель
    remove_action( 'admin_init', '_maybe_update_core' );

    // Отключение временного хранения данных об обновлении ядра WordPress
    add_filter( 'pre_site_transient_update_core', '__return_null' );

    // Отключение проверки обновления плагинов при загрузке страницы плагинов
    remove_action( 'load-plugins.php', 'wp_update_plugins' );

    // Отключение проверки обновления плагинов при загрузке страницы обновлений
    remove_action( 'load-update.php', 'wp_update_plugins' );

    // Отключение инициализации проверки обновления плагинов при доступе в админ-панель
    remove_action( 'admin_init', '_maybe_update_plugins' );

    // Отключение крон-задачи по проверке обновления плагинов
    remove_action( 'wp_update_plugins', 'wp_update_plugins' );

    // Отключение временного хранения данных об обновлении плагинов
    add_filter( 'pre_site_transient_update_plugins', '__return_null' );

    // Отключение проверки обновления тем при загрузке страницы тем
    remove_action( 'load-themes.php', 'wp_update_themes' );

    // Отключение проверки обновления тем при загрузке страницы обновлений
    remove_action( 'load-update.php', 'wp_update_themes' );

    // Отключение инициализации проверки обновления тем при доступе в админ-панель
    remove_action( 'admin_init', '_maybe_update_themes' );

    // Отключение крон-задачи по проверке обновления тем
    remove_action( 'wp_update_themes', 'wp_update_themes' );

    // Отключение временного хранения данных об обновлении тем
    add_filter( 'pre_site_transient_update_themes', '__return_null' );

    // Отключение автоматического обновления ядра WordPress
    add_filter( 'auto_update_core', '__return_false' );

    // Отключение автоматического обновления тем
    add_filter( 'auto_update_theme', '__return_false' );

    // Отключение автоматического обновления плагинов
    add_filter( 'auto_update_plugin', '__return_false' );
}

// Добавление функции отключения проверки и выполнения обновлений в хук 'init', чтобы она выполнялась при инициализации WordPress
add_action( 'init', 'disable_wordpress_updates_and_upgrades' );

Код должен быть совместим для всех версий WP. Автоматические обновления были добавлены в движек начиная с версии 3.7 но код также должен быть совместим и с более ранними версиями CMS. Надеюсь уже никто не используют более старые версии)

Финалочка

Мы разобрали все возможные варианты того, как отключить обновления WordPress. Все варианты рабочие и могут быть полезны в опредленных случаях. Напишите в комментариях для чего вам понадобилось вырубить обновы движка?

Для отправки комментария вам необходимо авторизоваться.

Популярные статьи: