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

21 июн. 2011 г., 13:12:38
Просмотры: 93.4K
Голосов: 64

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

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

Я все еще хочу видеть уведомления об обновлениях для других плагинов, но очень раздражает постоянно игнорировать уведомление Обновления (2) в заголовке!

3
Комментарии

Просто откройте файл плагина и измените номер версии на что-то вроде 9.9.9

Bainternet Bainternet
21 июн. 2011 г. 17:53:31

Извините @Bainternet, но это было бы слишком хакерским решением, так как сайт является svn-репозиторием, а плагин подключён через svn:external ссылку на код разработки плагина. Наличие локально изменённого файла на продакшн-сервере — не вариант. Фильтр Hameedullah работает, потому что он сохраняется в репозитории кода сайта.

Caleb Caleb
21 июн. 2011 г. 18:22:52

Вы также можете просто использовать плагин Disable Updates Manager от Websiteguy на WordPress.org.

matthew matthew
30 мая 2014 г. 22:03:12
Все ответы на вопрос 3
8
84

Например, если вы не хотите, чтобы WordPress показывал уведомления об обновлениях для Akismet, это можно сделать так:

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
21 июн. 2011 г. 17:44:01
Комментарии

Я поместил это в конец файла ./wp-config.php, заменил путь к файлу плагина, и это сработало.

Caleb Caleb
21 июн. 2011 г. 18:20:36

Вы можете добавить это в functions.php вашей темы, если это невозможно, то можно поместить в отдельный файл плагина. На мой взгляд, помещать это в wp-config.php — не лучшая идея.

Hameedullah Khan Hameedullah Khan
21 июн. 2011 г. 20:07:36

Я не хочу привязывать свою функцию к теме, а добавление плагина кажется таким же костылем, как и правка самого плагина. Можете объяснить, почему вы считаете wp-config.php неподходящим местом для сайт-специфичных хак-настроек?

Caleb Caleb
22 июн. 2011 г. 16:20:13

Отличное решение, которое прекрасно сработало у меня в functions.php. Очень просто добавить больше плагинов в список, просто добавив еще один unset()... Хороший совет, Hameedullah.

Lars Koudal Lars Koudal
13 нояб. 2011 г. 12:28:15

Рад видеть тебя здесь. :) Надеюсь, ты меня еще помнишь. Замечательно, что этот совет сработал для тебя.

Hameedullah Khan Hameedullah Khan
14 нояб. 2011 г. 08:18:29

Сработало идеально! Я так рад, что проигнорировал другие решения, которые собирался попробовать, продолжил поиски и нашел это. И ОГРОМНОЕ СПАСИБО, Caleb, за подсказку, куда вставлять этот код — в конец wp-config.php — это правильное место! (НЕ functions.php!)

wordpress wordpress
22 апр. 2015 г. 04:02:58

Для тех, у кого такие же замечания, как у @Caleb, создайте в папке wp-content новую папку с именем: mu-plugins и поместите туда небольшой плагин. Добавлять его, как упомянуто выше, в файл wp-config.php — по моему мнению, совершенно неправильное место для этого.

Charles Charles
6 окт. 2016 г. 16:34:24

Это действительно убирает надоедливое уведомление, но сообщение об обновлении всё равно остаётся.

gmatta gmatta
18 июл. 2019 г. 13:38:34
Показать остальные 3 комментариев
1
48

Ответ Хамидуллы Хана может вызвать предупреждение PHP. Добавьте эту проверку, чтобы убедиться, что это объект, перед удалением ответа для этого плагина.

'Warning: Attempt to modify property of non-object' (Предупреждение: Попытка изменить свойство не объекта)

Попробуйте это, чтобы избежать предупреждений (код для самого файла плагина):

// удаляем уведомления об обновлениях для форкнутых плагинов
function remove_update_notifications($value) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ plugin_basename(__FILE__) ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );

Мне нравится добавлять это прямо в сам плагин. Поскольку я отключаю обновления только для тех плагинов, которые я изменил или форкнул, и не хочу терять свои правки при обновлении, я уже редактировал плагин и не против внести ещё изменения. Это помогает сохранить мой functions-файл немного чище. Но если хотите, вы можете добавить это в functions.php, и преимущество этого метода в том, что вы можете исключить несколько плагинов из обновлений, добавив дополнительные строки unset для этих плагинов, например так (код для functions.php):

// удаляем уведомления об обновлениях для форкнутых плагинов
function remove_update_notifications( $value ) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ 'hello.php' ] );
        unset( $value->response[ 'akismet/akismet.php' ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );
27 янв. 2015 г. 17:01:04
Комментарии

Спасибо за это. У меня были проблемы с использованием этого кода напрямую в плагинах - вроде работало нормально с одним плагином, но как только я добавил его в другие (с разными названиями функций), я потерял уведомления для всех плагинов, и ссылка "просмотреть детали" для плагинов из репозитория WordPress тоже исчезла.

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

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

Philip Ingram Philip Ingram
4 апр. 2019 г. 04:38:36
1

Отключение всех уведомлений об обновлениях с помощью кода

function remove_core_updates(){
        global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
    }
    add_filter('pre_site_transient_update_core','remove_core_updates');
    add_filter('pre_site_transient_update_plugins','remove_core_updates');
    add_filter('pre_site_transient_update_themes','remove_core_updates');

Этот код отключает уведомления об обновлениях для ядра WordPress, плагинов и тем.

9 мая 2018 г. 14:09:18
Комментарии

"отдельные плагины" — это ключевой момент

gmatta gmatta
18 июл. 2019 г. 13:30:01