Как запретить обновление плагинов в WordPress

Опубликовано: 23.08.2018

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

Clearfy — плагин для оптимизации WordPress и отключения ненужных функций

Бывает так, что сталкиваешься с необходимостью уберечь функционал плагина от обновления. Такое, например, может случиться, когда доработаешь чей-то старый и редко обновляемый плагин, и не хочется потерять разом внесённые изменения, если вдруг автор сподобится выкатить апдейт. Вот, например, тут есть подобный пример. Как раз его я и возьму для описания далее.



А ещё бывает, что обновление несёт серьёзные изменения (такое периодически происходит с WooCommerce), и пока сайт не готов к ним, обновления нужно временно запретить.

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

Отключаем автообновление WordPress

Способ запретить обновление плагина №1: изменить номер версии

Самый простой, быстрый и действенный способ. Он не требует особых знаний, вы можете сделать это даже через штатный редактор в /wp-admin/

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

Обновление Wordpress: как обновлять темы, плагины и переводы Wordpress

Открываете в редакторе главный файл плагина

Находите его номер версии, добавляете туда несколько цифр в начало и сохраняете файл

Теперь апдейтер Вордпресса не будет трогать ваш плагин даже при принудительном обновлении всех плагинов подряд, и при этом не будет возникать никаких ошибок.

Способ запретить обновление плагина №2: пишем код

Вариант немного сложнее для тех, кто умеет и любит писать код. Правда, мне лично он не нравится, потому что при обновлении любых плагинов выскакивают уведомления навроде

Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/functions.php on line 21

Если они вас не смущают, пользуйтесь вариантом ниже.

Итак, пишем в functions.php либо делаем специальный mu-plugin

add_filter( 'site_transient_update_plugins', 'sheensay_site_transient_update_plugins' ); // Вешаем функцию на специальный фильтр function sheensay_site_transient_update_plugins ( $value ) { unset( $value->response['webmaster-yandex/webmaster-yandex.php'] ); // Здесь указывается относительный путь к главному файлу плагина return $value; }

Строго говоря, мы отключаем уведомления о необходимости обновить плагин. Вместе с этим и отключается обновление.

В заключение

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

IRC (Internet Relay Chat)
rss