Disattivare le notifiche di aggiornamento per singoli plugin
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!

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

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

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.

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?

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..

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

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!)

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.

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

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.

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.
