Disabilita la notifica di aggiornamento per i singoli plug-in


49

Esiste un modo per disabilitare le notifiche di aggiornamento per plug-in specifici?

Come sviluppatore di plugin, ho alcuni plugin installati sul mio sito personale usando la versione svn trunk per i test, ma gli stessi plugin sono disponibili dal sito dei plugin. In questi casi WP considera l'ultima versione pubblicata più di recente e cerca costantemente di avvisarmi che sono disponibili aggiornamenti.

Voglio ancora vedere le notifiche per gli aggiornamenti su altri plugin, ma è ansioso di ignorare costantemente l' Updates (2)avviso nell'intestazione!


Apri semplicemente il file del plugin e modifica il numero di versione in qualcosa come 9.9.9
Bainternet,

Scusate @Bainternet, ma sarebbe stato troppo complicato perché il sito è un svn-checkout e il plugin proviene da un svn:externalriferimento 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 di codice per il sito.
Caleb,

Sì, ho perso la parte del sito in esecuzione su svn
Bainternet il

Puoi anche utilizzare il plug-in Disable Updates Manager di Websiteguy su WordPress.org.
Matteo,

Risposte:


67

Ad esempio, se non vuoi che Wordpress mostri le notifiche di aggiornamento per akismet, lo farai come segue:

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

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

6
Se non è possibile, puoi metterlo nelle funzioni.php del tuo tema, quindi puoi inserirlo in un file plugin separato. Secondo me mettere questo in wp-config.php non è una buona idea.
Hameedullah Khan,

1
Non voglio che la mia funzione sia legata al tema e l'aggiunta di un plug-in sembra un hack tanto quanto l'hacking del plug-in che ho. Puoi spiegare perché pensi che wp-config.php non sia un buon posto per inserire hack di configurazione specifici del sito?
Caleb,

Ottima soluzione, che ha funzionato bene per me in Functions.php. È facile aggiungere altri plug-in all'elenco semplicemente aggiungendo un unset () ... Buon consiglio Hameedullah ..
Lars Koudal

2
Per quelli con le stesse osservazioni di @Caleb, crea nella cartella wp-content una nuova cartella denominata: mu-pluginse crea un piccolo plugin che lasci cadere lì. Aggiungerlo come menzionato sopra da alcuni nel wp-config.phpè assolutamente il posto sbagliato da fare.
Charles,

31

La risposta di Hameedullah Khan lancerà un avvertimento PHP. Includere questa clausola if per verificare che sia un oggetto prima di annullare la risposta per quel plugin.

"Avviso: tentativo di modificare la proprietà del non oggetto"

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

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

Mi piace metterlo nel plugin attuale. Dato che ho sempre disabilitato gli aggiornamenti su un plugin perché ho modificato o modificato il codice e non voglio perdere le modifiche su un aggiornamento, ho già modificato il plugin e quindi non mi dispiace modificarlo di più. Mantiene il mio file di funzioni un po 'più pulito. Ma se lo desideri, puoi inserirlo nel file delle funzioni e un vantaggio per quel metodo è che puoi rimuovere più plugin dagli aggiornamenti aggiungendo un'altra linea non impostata per quel plugin in questo modo (codice per 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' );

Grazie per questo. Ho avuto problemi con l'utilizzo di questo codice direttamente all'interno dei plug-in, sembrava ok quando era un plug-in ma non appena l'ho fatto con altri (nomi di funzioni diff) ho perso le notifiche per tutti i plug-in e anche il link "visualizza dettagli" per i plug-in wp-repo scomparso. Usare i tuoi controlli ma inserendo le funzioni.php nel mio tema è stato più affidabile senza interferenze delle notifiche di aggiornamento per altri plugin. Infine, non essere nel plugin ha il vantaggio di non aver bisogno di quel plugin per essere attivo affinché funzioni. La disabilitazione di un plug-in con questo codice presenterà ovviamente nuovamente le notifiche di aggiornamento.
Philip Ingram,

2

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

Il codice disabiliterà le notifiche di aggiornamento per core, plugin e temi di WordPress.


"plug-in individuali" è la chiave
Gangesh

@Gangesh, penso che voglia disabilitare alcune notifiche specifiche del plugin
Super Model il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.