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

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

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

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

43 голоса | спросил Caleb 21 J0000006Europe/Moscow 2011, 14:12:38

3 ответа


53

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

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
ответил Hameedullah Khan 21 J0000006Europe/Moscow 2011, 18:44:01
25

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

'Предупреждение: попытка изменить свойство не-объекта

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

// remove update notice for forked plugins
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.php):

// remove update notice for forked plugins
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' );
ответил circlecube 27 Jpm1000000pmTue, 27 Jan 2015 18:01:04 +030015 2015, 18:01:04
2

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

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, плагинов и тем.

ответил Super Model 9 Maypm18 2018, 14:09:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132