Dezactivare notificări de actualizare pentru plugin-uri individuale

21 iun. 2011, 13:12:38
Vizualizări: 93.4K
Voturi: 64

Există vreo metodă de a dezactiva notificările de actualizare pentru anumite plugin-uri?

Ca dezvoltator de plugin-uri, am instalat unele plugin-uri pe site-ul meu personal folosind versiunea svn trunk pentru testare, dar aceleași plugin-uri sunt disponibile și pe site-ul oficial de plugin-uri. În aceste cazuri, WP consideră că ultima versiune este cea mai recent publicată și încearcă constant să mă avertizeze că sunt disponibile actualizări.

Încă doresc să văd notificări pentru actualizările altor plugin-uri, dar este enervant să ignor constant notificarea Actualizări (2) din antet!

3
Comentarii

Pur și simplu deschide fișierul pluginului și schimbă numărul versiunii la ceva de genul 9.9.9

Bainternet Bainternet
21 iun. 2011 17:53:31

Îmi pare rău @Bainternet dar asta ar fi fost prea hackish pentru că site-ul este un svn-checkout și pluginul vine dintr-o referință svn:external la codul de dezvoltare al pluginului. A avea un fișier modificat local pe un server de producție nu este o opțiune. Filtrul lui Hameedullah funcționează pentru că se salvează în repository-ul de cod al site-ului.

Caleb Caleb
21 iun. 2011 18:22:52

De asemenea, poți folosi pluginul Disable Updates Manager de la Websiteguy pe WordPress.org.

matthew matthew
30 mai 2014 22:03:12
Toate răspunsurile la întrebare 3
8
84

De exemplu, dacă nu dorești ca WordPress să afișeze notificări de actualizare pentru Akismet, poți face asta în felul următor:

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
21 iun. 2011 17:44:01
Comentarii

Am plasat asta la sfârșitul fișierului ./wp-config.php, am înlocuit calea către fișierul pluginului și a funcționat.

Caleb Caleb
21 iun. 2011 18:20:36

Puteți pune asta în functions.php din tema dvs., dacă nu este posibil, atunci puteți crea un fișier separat pentru plugin. În opinia mea, plasarea acestuia în wp-config.php nu este o idee bună.

Hameedullah Khan Hameedullah Khan
21 iun. 2011 20:07:36

Nu doresc să fie funcția mea legată de temă, iar adăugarea unui plugin mi se pare la fel de hack ca și modificarea directă a pluginului pe care îl am. Poți să explici de ce consideri că wp-config.php nu este un loc bun pentru hack-uri specifice configurației site-ului?

Caleb Caleb
22 iun. 2011 16:20:13

Foarte bună soluție, care a funcționat perfect pentru mine în functions.php. Este ușor să adaugi mai multe plugin-uri în listă, pur și simplu adăugând un alt unset()... Bun sfat, Hameedullah..

Lars Koudal Lars Koudal
13 nov. 2011 12:28:15

Mă bucur să te văd aici. :) Sper că încă îți amintești de mine. Minunat că acest sfat a funcționat pentru tine.

Hameedullah Khan Hameedullah Khan
14 nov. 2011 08:18:29

A funcționat perfect pentru mine!! Sunt atât de fericit că am ignorat celelalte soluții pe care eram pe cale să le încerc și am continuat să caut până am găsit aceasta. PLUS, MULȚUMESC Caleb că mi-ai spus unde să pun acest cod; la sfârșitul wp-config.php ESTE locul corect! (NU functions.php!)

wordpress wordpress
22 apr. 2015 04:02:58

Pentru cei care au aceleași observații ca @Caleb, creați în folderul wp-content un nou folder numit: mu-plugins și creați un mic plugin pe care îl plasați acolo. Adăugarea lui în wp-config.php așa cum au menționat unii mai sus este, după părerea mea, absolut locul greșit pentru a face acest lucru.

Charles Charles
6 oct. 2016 16:34:24

Elimină notificarea de actualizare, dar mesajul de actualizare încă rămâne.

gmatta gmatta
18 iul. 2019 13:38:34
Arată celelalte 3 comentarii
1
48

Răspunsul lui Hameedullah Khan poate genera un avertisment PHP. Include această condiție pentru a verifica dacă este un obiect înainte de a elimina răspunsul pentru acel plugin.

'Warning: Attempt to modify property of non-object'

Încearcă această soluție pentru a evita avertismentele (cod pentru fișierul pluginului în sine):

// elimină notificările de actualizare pentru plugin-uri fork-uite
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' );

Personal, prefer să adaug acest cod direct în plugin. De obicei, dezactivez actualizările pentru un plugin doar când l-am modificat sau am creat un fork și nu vreau să pierd modificările la o actualizare. Deci, deja am modificat plugin-ul și nu mă deranjează să adaug încă un pic de cod. Acest lucru menține fișierul functions.php mai curat. Dar dacă dorești, poți pune codul în fișierul functions.php, iar un avantaj al acestei metode este că poți elimina mai multe plugin-uri din lista de actualizări prin adăugarea altor linii unset, astfel (cod pentru functions.php):

// elimină notificările de actualizare pentru plugin-uri fork-uite
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 ian. 2015 17:01:04
Comentarii

Mulțumesc pentru asta. Am avut probleme folosind acest cod direct în plugin-uri, părea ok când era un singur plugin, dar imediat ce am încercat cu altele (cu nume diferite de funcții) am pierdut notificările pentru toate plugin-urile și link-ul "vezi detalii" pentru plugin-urile din repo-ul wp a dispărut de asemenea.

Folosind verificările tale, dar plasând în functions.php al temei mele, a fost mai fiabil fără interferențe cu notificările de actualizare pentru alte plugin-uri.

În final, faptul că nu e în plugin are beneficiul de a nu necesita ca acel plugin să fie activ pentru a funcționa. Dezactivarea unui plugin cu acest cod va face, evident, ca notificările de actualizare să reapară.

Philip Ingram Philip Ingram
4 apr. 2019 04:38:36
1

Dezactivează toate notificările de actualizare cu cod

/**
 * Elimină notificările de actualizare pentru WordPress, plugin-uri și teme
 */
function remove_core_updates(){
    global $wp_version;
    return(object) array(
        'last_checked' => time(),
        'version_checked' => $wp_version,
    );
}
// Aplică filtrele pentru a dezactiva notificările
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');

Acest cod va dezactiva notificările de actualizare pentru nucleul WordPress, plugin-uri și teme.

9 mai 2018 14:09:18
Comentarii

"pluginuri individuale" este cheia

gmatta gmatta
18 iul. 2019 13:30:01