Disattivare le notifiche di aggiornamento per singoli plugin

21 giu 2011, 13:12:38
Visualizzazioni: 93.4K
Voti: 64

Esiste un modo per disabilitare le notifiche di aggiornamento per plugin specifici?

Come sviluppatore di plugin, ho alcuni plugin installati sul mio sito personale utilizzando la versione trunk di SVN per i test, ma gli stessi plugin sono disponibili sul sito ufficiale. In questi casi WordPress considera l'ultima versione come quella più recentemente pubblicata e continua a segnalarmi che sono disponibili aggiornamenti.

Voglio comunque vedere le notifiche per gli aggiornamenti degli altri plugin, ma è fastidioso dover continuamente ignorare l'avviso Aggiornamenti (2) nell'intestazione!

3
Commenti

Basta aprire il file del plugin e modificare il numero di versione con qualcosa come 9.9.9

Bainternet Bainternet
21 giu 2011 17:53:31

Scusa @Bainternet ma sarebbe stato troppo approssimativo perché il sito è un svn-checkout e il plugin proviene da un riferimento svn:external al codice di sviluppo del plugin. Avere un file modificato localmente su un server di produzione non è un'opzione. Il filtro di Hameedullah funziona perché viene salvato nel repository del codice del sito.

Caleb Caleb
21 giu 2011 18:22:52

Puoi anche semplicemente usare il plugin Disable Updates Manager di Websiteguy su WordPress.org.

matthew matthew
30 mag 2014 22:03:12
Tutte le risposte alla domanda 3
8
84

Ad esempio, se non vuoi che WordPress mostri le notifiche di aggiornamento per Akismet, puoi farlo in questo modo:

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

L'ho inserito alla fine di ./wp-config.php, ho sostituito il percorso del file del plugin e ha funzionato.

Caleb Caleb
21 giu 2011 18:20:36

Puoi inserirlo nel functions.php del tuo tema, se non è possibile allora puoi creare un file plugin separato. Secondo me inserirlo in wp-config.php non è una buona idea.

Hameedullah Khan Hameedullah Khan
21 giu 2011 20:07:36

Non voglio che la mia funzione sia legata al tema, e aggiungere un plugin mi sembra un hack tanto quanto modificare direttamente il plugin che ho già. Puoi spiegare perché pensi che wp-config.php non sia un buon posto per inserire hack di configurazione specifici per il sito?

Caleb Caleb
22 giu 2011 16:20:13

Ottima soluzione, che ha funzionato perfettamente per me in functions.php. È facile aggiungere altri plugin alla lista semplicemente aggiungendo un altro unset()... Bel consiglio Hameedullah..

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

Felice di vederti qui. :) Spero ti ricordi ancora di me. Fantastico che questo suggerimento abbia funzionato per te.

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

Ha funzionato perfettamente per me!! Sono così felice di aver ignorato gli altri metodi che stavo per provare a modificare e ho continuato a cercare trovando questo. INOLTRE, GRAZIE Caleb per avermi detto dove inserirlo; alla fine di wp-config.php È il posto giusto! (NON functions.php!)

wordpress wordpress
22 apr 2015 04:02:58

Per chi ha le stesse osservazioni di @Caleb, crea nella cartella wp-content una nuova cartella chiamata: mu-plugins e crea un piccolo plugin da inserire al suo interno. Aggiungerlo come menzionato sopra da alcuni nel file wp-config.php è secondo me assolutamente il posto sbagliato per farlo.

Charles Charles
6 ott 2016 16:34:24

Rimuove effettivamente il nag degli aggiornamenti, ma il messaggio di aggiornamento rimane comunque.

gmatta gmatta
18 lug 2019 13:38:34
Mostra i restanti 3 commenti
1
48

La risposta di Hameedullah Khan genererà un avviso PHP. Includi questa clausola if per verificare che sia un oggetto prima di annullare l'impostazione della risposta per quel plugin.

'Warning: Tentativo di modificare la proprietà di un non-oggetto'

Prova questo per evitare gli avvisi (codice per il file del plugin stesso):

// rimuovi notifica di aggiornamento per plugin modificati
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' );

Personalmente preferisco inserire questo codice direttamente nel plugin. Dato che disabilito gli aggiornamenti solo per i plugin che ho modificato o di cui ho creato un fork (per non perdere le mie modifiche con un aggiornamento), ho già editato il plugin e quindi non mi dispiace modificarlo ulteriormente. In questo modo mantengo il mio file functions più pulito. Ma se preferisci, puoi inserirlo nel file functions.php e un vantaggio di questo metodo è che puoi rimuovere più plugin dagli aggiornamenti aggiungendo un'altra riga unset per quel plugin, in questo modo (codice per functions.php):

// rimuovi notifica di aggiornamento per plugin modificati
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 gen 2015 17:01:04
Commenti

Grazie per questo. Ho avuto problemi usando questo codice direttamente all'interno dei plugin, sembrava funzionare con un plugin ma non appena l'ho utilizzato con altri (con nomi di funzioni diversi) ho perso le notifiche per tutti i plugin e il link "visualizza dettagli" per i plugin del repository wp è scomparso.

Usando i tuoi controlli ma inserendoli nel functions.php del mio tema è risultato più affidabile senza interferenze con le notifiche di aggiornamento per altri plugin.

Infine, non essere nel plugin ha il vantaggio di non aver bisogno che quel plugin sia attivo per farlo funzionare. Disabilitando un plugin con questo codice ovviamente riappariranno le notifiche di aggiornamento.

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

Disabilita tutte le notifiche di aggiornamento con il codice

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

Questo codice disabiliterà le notifiche di aggiornamento per il core di WordPress, i plugin e i temi.

9 mag 2018 14:09:18
Commenti

"plugin individuali" è la chiave

gmatta gmatta
18 lug 2019 13:30:01