Come bloccare gli aggiornamenti su Wordpress

Pubblicato il 18/10/2019 da Giuseppe Riccio In: Script


Personalizzare temi e plugin di WordPress è senz'altro uno degli aspetti più interessanti di questa piattaforma, soprattutto quando le normali funzionalità definite da queste risorse non rispecchiano pienamente il concept che intendiamo realizzare. Ma cosa succede se, in maniera automatica o per un intervento al di fuori del nostro controllo, il plugin o il tema si aggiornano? Ebbene sì, tutte le nostre modifiche vengono sovrascritte e con esse le personalizzazioni che avevamo apportato.

Tutto è iniziato dalla versione 3.7 di WordPress, in cui per la prima volta sono stati introdotti gli aggiornamenti automatici in background per promuovere, a detta degli sviluppatori, una maggiore sicurezza della piattaforma. Se da una parte l'introduzione di questa caratteristica costituisce una garanzia per gli utilizzatori, dall'altra può causare diversi problemi che vanno dalla rappresentazione errata dei contenuti fino ad arrivare al famigerato "White screen of Death" (ossia lo schermo bianco senza codice pagina) nei peggiori casi di incompatibilità.

Per fortuna gli aggiornamenti automatici possono essere bloccati con poche righe di codice nel functions.php del nostro tema. Ecco quindi come possiamo evitare che plugin, temi e persino il core di WordPress si aggiornino automaticamente, così da evitare le incompatibilità e i problemi a cui accennavo in precedenza.

Bloccare l'aggiornamento di un singolo plugin


Nel functions.php del nostro tema creiamo una funzione e la agganciamo alla proprietà site_transient_update_plugins. Al suo interno impostiamo la funzione unset e gli passiamo come argomento il percorso relativo del plugin e il nome del suo script principale.
function filter_plugin_updates( $value ) {
unset( $value->response['cartella-plugin/nome-script-principale.php'] );
return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

Possiamo aggiungere un numero indefinito di unset al filtro, uno per ogni plugin a cui vogliamo impedire l'aggiornamento:
function filter_plugin_updates( $value ) {
unset( $value->response['cartella-plugin-1/nome-script-principale-1.php'] );
unset( $value->response['cartella-plugin-2/nome-script-principale-2.php'] );
unset( $value->response['cartella-plugin-3/nome-script-principale-3.php'] );
return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

Bloccare l'aggiornamento di temi e plugin


Con questo comando bloccheremo gli aggiornamenti a tutti i plugin installati sulla piattaforma
add_filter( 'auto_update_plugin', '__return_false' );

Per disabilitare l’aggiornamento dei files dei temi usiamo invece questo comando:
add_filter( 'auto_update_theme', '__return_false' );

Bloccare gli aggiornamenti di WordPress


Si possono disabilitare gli aggiornamenti al core di Wordpress con una semplice costante da definire nel file wp-config.php:
define( 'WP_AUTO_UPDATE_CORE', false );

Se invece preferite i filtri, ne potete creare uno molto simile a quelli precedenti nel functions.php del vostro tema
add_filter( 'auto_update_core', '__return_false' );

Easy Updates Manager


Piccola nota finale per il metodo più semplice per disabilitare gli aggiornamenti di WordPress. Si può scaricare da questo link per poi gestire tutte le sue funzionalità direttamente dalla dashboard. Si può agire a livello globale nella schermata General oppure passare al tab dei Plugin o dei Temi installati per selezionare nel dettaglio cosa bloccare. Disponibile anche nella versione PRO con ulteriori funzionalità, su tutte la possibilità di controllare la compatibilità degli aggiornamenti con l'attuale versione di WordPress e con le impostazioni del server prima di procedere al download.