eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

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

Как правильно запрещать плагинам WordPress обновляться. Нужна отмена обновления плагина и уведомлений о необходимости обновиться. Нужно чтобы плагин никак не тревожил: не выводил уведомления и всякие метки о том что есть новая версия и нужно обновить плагин.

Спасибо!

1
Гость
9.5 лет назад
  • 2
    Kama 9879

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

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

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

    Например, у вас есть плагин wp-super-cache и нужно отключить его обновления. Открываем главный файл плагина wp-cache.php. Для этого переходим в Админку > Плагины > Редактор > Выбор плагина и видим в начале такие строки:

    <?php
    /*
    Plugin Name: WP Super Cache
    Plugin URI: https://wordpress.org/plugins/wp-super-cache/
    Description: Very fast caching plugin for WordPress.
    Version: 1.4.7
    Author: Automattic
    Author URI: https://automattic.com/
    License: GPL2+
    Text Domain: wp-super-cache
    */

    Заменяем версию, строку в строке Version: 1.4.7 на Version: 99991.4.7 и сохраняем изменения.

    Готово! Теперь у вас самая старшая версия плагина, и обновлять её на меньшую WP никогда не будет...

    Способ 2: вставка кода в плагин

    Вставь вот такой код в основной файл плагина и готово!

    add_filter( 'site_transient_update_plugins', 'wpkama_disable_plugin_update' );
    
    function wpkama_disable_plugin_update( $value ){
    	if( ! is_object( $value ) ){
    		return $value;
    	}
    
    	// удаляем текущий плагин из списка
    	unset( $value->response[ plugin_basename(__FILE__) ] );
    
    	return $value;
    }

    Спосбо 2.1: код для functions.php

    Если вставлять код в плагин не вариант, то предыдущий код можно использовать за пределами плагина, чтобы отменить проверку его обновлений. Вставлять в плагин удобно, потому что там мы можем динамически получить его базовое им, которое обычно такое: название папки плагина/главный файл плагина.php.

    Пример для плагина Akismet:

    add_filter( 'site_transient_update_plugins', 'wpkama_disable_plugins_update' );
    
    function wpkama_disable_plugins_update( $value ) {
    	unset( $value->response['akismet/akismet.php'] );
    
    	return $value;
    }

    Способ 3: плагины

    Для отключения обновлений есть специальные плагины, вот некоторые из них:

    Читайте также про отключение обновлений в WordPress: https://wp-kama.ru/id_16562/disable-wp-updates-check.html

    П.С. Вот тут в комментариях отвечал на такой же вопрос.

    Слава 7.6 лет назад

    Скажите пожалуйста, а когда плагин проверяет свои обновления, он дает сигнал на сервер обновлений, что на таком то сайте он, плагин, установлен?

    Kama 7.6 лет назад

    Точно не знаю, но ВП как-то мониторит установленные плагины, скорее всего обновляет метку времени при запросах на проверку обновлений...

    Лариса 6.3 года назад

    Спасибо! Сменила версию, плагин вроде по прежнему работает))))

    Рома 6 лет назад

    Спасибо бро!!!

    Андрей 5.4 года назад

    Спасибо огромное, дружище!
    помог этот код

    add_filter('site_transient_update_plugins', function($value) {
    	// удаляем текущий плагин из списка
    	unset( $value->response[ plugin_basename(__FILE__) ] );
    
    	return $value;
    });
    Комментировать
  • 1

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

     function disable_plugin_updates( $value ) {
    
    	$pluginsToDisable = [
    		'plugin-folder/plugin.php',
    		'plugin-folder2/plugin2.php'
    	];
    
    	if ( isset($value) && is_object($value) ) {
    		foreach ($pluginsToDisable as $plugin) {
    			if ( isset( $value->response[$plugin] ) ) {
    				unset( $value->response[$plugin] );
    			}
    		}
    	}
    	return $value;
    }
    add_filter( 'site_transient_update_plugins', 'disable_plugin_updates' );
    
    Kama 5.7 лет назад

    Используйте этот код: https://wp-kama.ru/id_16562/disable-wp-updates-check.html#all-plugs

    Михаил 4.2 года назад

    Спасибо, помог способ 2.1: код для functions.php.

    Если кому то нужно отключить сразу пару плагинов, просто добавьте идущие друг за другом строчки
    unset( $value->response['1/1.php'] );
    unset( $value->response['2/2.php'] );
    unset( $value->response['3/3.php'] );

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация