WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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

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

Спасибо!

1
Гость
7.9 лет назад
  • 2
    Kama9618

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

    Способ 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

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

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

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

    Kama 6 лет назад

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

    Лариса 4.7 лет назад

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

    Рома 4.4 года назад

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

    Андрей 3.9 лет назад

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

    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 4.1 год назад

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

    Михаил 2.7 лет назад

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

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

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