Отключение уведомлений об обновлениях для отдельных плагинов
Есть ли способ отключить уведомления об обновлениях для конкретных плагинов?
Как разработчик плагинов, у меня установлено несколько плагинов на моем личном сайте с использованием версии svn trunk для тестирования, но те же плагины доступны на сайте плагинов. В этих случаях WordPress считает последней версией самую последнюю опубликованную версию и постоянно предупреждает меня о доступных обновлениях.
Я все еще хочу видеть уведомления об обновлениях для других плагинов, но очень раздражает постоянно игнорировать уведомление Обновления (2)
в заголовке!

Например, если вы не хотите, чтобы WordPress показывал уведомления об обновлениях для Akismet, это можно сделать так:
function filter_plugin_updates( $value ) {
unset( $value->response['akismet/akismet.php'] );
return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

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

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

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

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

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

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

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

Ответ Хамидуллы Хана может вызвать предупреждение 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' );

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

Отключение всех уведомлений об обновлениях с помощью кода
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, плагинов и тем.
