Вимкнути сповіщення про оновлення для окремих плагінів


49

Чи є спосіб відключити сповіщення про оновлення для конкретних плагінів?

Як розробник плагінів, я маю кілька плагінів, встановлених на моєму персональному сайті, використовуючи версію магістралі svn для тестування, але ті самі плагіни доступні на сайті плагіна. У цих випадках WP вважає останню версію останньою опублікованою версією і постійно намагається попередити мене, що оновлення доступні.

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


Просто відкрийте файл плагіна та змініть номер версії на щось на зразок 9.9.9
Bainternet

Вибачте @Bainternet, але це було б занадто хакітно, тому що сайт - це svn-checkout, а плагін походить від svn:externalпосилання на код розробки плагіна. Наявність локально модифікованого файлу на виробничому сервері - це не варіант. Фільтр Хамедулла працює, оскільки він зберігається в сховищі коду для сайту.
Калеб

Так, я пропустив частину про сайт, що працює на svn
Bainternet

Ви також можете просто використовувати плагін Disable Updates Manager від Websiteguy на WordPress.org.
Матвій

Відповіді:


67

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

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

1
Я помістив це в кінці ./wp-config.php, замінив шлях до плагіну файлу, і він зробив роботу.
Калеб

6
Ви можете помістити це в function.php теми, якщо це неможливо, тоді ви можете помістити окремий файл плагіна. На мій погляд, ставити це в wp-config.php - це не дуже гарна ідея.
Хамедуллах Хан

1
Мені не дуже хочеться, щоб моя функція була прив’язана до теми, і додавання плагіна здається таким же рівним злом, як і просто злом плагіна, який я отримав. Чи можете ви пояснити, чому ви вважаєте, що wp-config.php не є вдалим місцем для розміщення конкретних хаків для конфігурації сайту?
Калеб

Дуже гарне рішення, яке чудово працювало для мене у function.php. Додайте до списку додаткові додаткові плагіни, просто додавши ще одне скасування () ... Хороший підказок Hameedullah ..
Lars Koudal

2
Для тих, хто має ті самі зауваження, що і @Caleb, створіть у папці wp-content нову папку з назвою: mu-pluginsта створіть невеликий плагін, який ви скинете туди. Додавати його, як згадувалося вище, деякими особами wp-config.phpє абсолютно неправильне місце.
Чарльз

31

Відповідь Хамедуллахана призведе до попередження PHP. Включіть це, якщо в пункті перевірити, щоб переконатися, що це об’єкт, перед тим, як скинути відповідь для цього плагіна.

"Попередження: спроба змінити властивість не-об'єкта"

Спробуйте це уникнути попереджень (код самого файлу плагіна):

// 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' );

Мені подобається помістити це у власне плагін. Оскільки я лише коли-небудь відключав оновлення плагіна, тому що я редагував або роздрібнював код і не хочу втрачати свої зміни в оновленнях, я вже відредагував плагін і, таким чином, не проти редагувати його більше. Він тримає файл моїх функцій трохи чистішим. Але якщо ви хочете, ви можете помістити його у файл функцій, і користь для цього методу полягає в тому, що ви можете видалити декілька плагінів із оновлень, додавши ще один невстановлений рядок для цього плагіна, як-от так (код для function.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' );

Thx для цього. У мене виникли проблеми з використанням цього коду безпосередньо в плагінах, здавалося, нормально, коли це був один плагін, але, як тільки я це зробив з іншими (різними іменами функцій), я втратив сповіщення про всі плагіни та посилання "переглянути деталі" для wp-repo плагінів також зник. Використання ваших чеків, але розміщення в моїй темі function.php було більш надійним без втручання сповіщень про оновлення для інших плагінів. Нарешті, відсутність у плагіні користі від того, що він не потребує активності цього модуля для його роботи. Якщо вимкнути плагін із цим кодом, очевидно, знову з’являться сповіщення про оновлення.
Філіп Інграм

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


"Індивідуальні плагіни" є ключовими
Gangesh

@Gangesh, я думаю, він хоче відключити сповіщення про деякі конкретні плагіни
Super Model
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.