Бывает так, что сталкиваешься с необходимостью уберечь функционал плагина от обновления. Такое, например, может случиться, когда доработаешь чей-то старый и редко обновляемый плагин, и не хочется потерять разом внесённые изменения, если вдруг автор сподобится выкатить апдейт. Вот, например, тут есть подобный пример. Как раз его я и возьму для описания далее.
А ещё бывает, что обновление несёт серьёзные изменения (такое периодически происходит с WooCommerce), и пока сайт не готов к ним, обновления нужно временно запретить.
Конечно, до запрета обновлять плагины лучше не доводить, ведь обновления выходят зачастую не просто так и, возможно, закрывают свежеобнаруженные дыры в безопасности. И, уж если вы решились на подобный шаг, то должны знать о возможных последствиях подобных решений.
Способ запретить обновление плагина №1: изменить номер версии
Самый простой, быстрый и действенный способ. Он не требует особых знаний, вы можете сделать это даже через штатный редактор в /wp-admin/
Можно добавлять строго определённые цифры, например, я добавляю несколько 9999 и разделяю точкой от текущей версии. Тем самым, при необходимости, можно безболезненно вернуть всё назад.
- Открываете в редакторе главный файл плагина
- Находите его номер версии, добавляете туда несколько цифр в начало и сохраняете файл
Теперь апдейтер Вордпресса не будет трогать ваш плагин даже при принудительном обновлении всех плагинов подряд, и при этом не будет возникать никаких ошибок.
Способ запретить обновление плагина №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
1 2 3 4 5 6 7 | 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 ; } |
Строго говоря, мы отключаем уведомления о необходимости обновить плагин. Вместе с этим и отключается обновление.
В заключение
Пользуйтесь вышеуказанными способами, однако, помните о том, что ответственность за потенциальные дыры в безопасности в необновляемых плагинах теперь на ваших плечах, а не плечах их авторов.
Сервисы, которые я рекомендую:
Свежие комментарии