Disattivare i controlli automatici degli aggiornamenti in WordPress

10 giu 2013, 21:29:20
Visualizzazioni: 18K
Voti: 9

WordPress controlla automaticamente la disponibilità di aggiornamenti per se stesso, i temi e i plugin installati. Questo aggiunge un fastidioso ritardo al caricamento di qualsiasi pagina di WordPress. Succede solo una volta al giorno e i caricamenti successivi non lo fanno, ma è così lungo che mi fa pensare due volte se vale la pena aprire quella prima pagina (specialmente se devo fare solo una cosa veloce piuttosto che passare tutta la giornata in WordPress).

Comunque aggiorno solo occasionalmente, e preferirei eseguire gli aggiornamenti manualmente, quindi ho creato un plugin per rimuovere il pulsante Aggiornamenti dalla barra di amministrazione. Pensavo che avrebbe risolto il problema, ma a quanto pare rimuove solo il pulsante mentre il controllo effettivo viene ancora eseguito in background.

Ogni altro programma al mondo ti permette di disattivare gli aggiornamenti automatici, quindi mi aspetto che ci dovrebbe essere un modo per fare lo stesso con WordPress, ma se c'è, è un po' troppo ben nascosto.

Quando ho cercato una soluzione, tutte le domande che ho trovato erano l'opposto, riguardanti come forzare l'applicazione automatica degli aggiornamenti (non solo il controllo automatico della disponibilità).

Come si possono disattivare i controlli automatici degli aggiornamenti in WordPress?

6
Commenti

Hai letto questo?

fuxia fuxia
10 giu 2013 21:49:26

Vedi anche l'aggiornamento qui http://wordpress.stackexchange.com/questions/67945/how-do-i-disable-dashboard-update-notifications-for-subscribers/67952#67952, causa un avviso PHP ma non ricordo il motivo.

Wyck Wyck
10 giu 2013 22:03:29

Inoltre, consulta le istruzioni di questo codice WP: http://codex.wordpress.org/Configuring_Automatic_Background_Updates

Tara Tara
24 gen 2014 03:16:27

Le informazioni sugli aggiornamenti automatici in background in 3.7 non erano ciò di cui parlavo (sto ancora usando la 3.5—evito di aggiornare finché la questione dei formati degli articoli non sarà risolta perché spesso voglio pubblicare solo una singola foto o frase, non un intero articolo). Tuttavia, la domanda sulle notifiche di aggiornamento nella dashboard è sicuramente correlata. Quando riuscirò a far funzionare di nuovo il mio web server portatile, lo testerò.

Synetech Synetech
28 mar 2014 03:40:03
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 5
0

Questo ha funzionato per me per disabilitarlo su localhost - cosa che era molto fastidiosa dato che è dietro un firewall e il tempo di attesa per il timeout era enorme.

define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'AUTOMATIC_UPDATER_DISABLED', true );
define( 'WP_AUTO_UPDATE_CORE', false );

Nota che non sono sicuro se disabilitare WP_HTTP_BLOCK_EXTERNAL sia necessario. Non consiglio di disabilitarlo su un server che richiede comunicazione con altri server.

26 nov 2018 00:27:28
1

Come disabilitare gli aggiornamenti automatici del core ma abilitarli per plugin e temi

Se vuoi fermare gli aggiornamenti automatici del core di WordPress, ma abilitarli per i tuoi Plugin e/o Temi, puoi aggiungere queste righe nel file wp-config.php: Ferma gli aggiornamenti automatici del core:

define( 'WP_AUTO_UPDATE_CORE', false );

Poi Abilita gli aggiornamenti per plugin/temi:

add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Come disabilitare completamente gli aggiornamenti automatici di WordPress

Se vuoi disabilitare completamente gli aggiornamenti automatici di WordPress, apri il file wp-config.php e aggiungi questa riga:

define( 'AUTOMATIC_UPDATER_DISABLED', true );
20 dic 2014 06:25:31
Commenti

Questo non impedisce a WP di verificare gli aggiornamenti.

Mati Mati
10 apr 2015 11:14:35
0

Il seguente codice disabiliterà il controllo automatico degli aggiornamenti nella dashboard di WordPress. Puoi aggiungerlo al file functions.php del tuo tema.

remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');
14 nov 2024 05:30:49
1

Ecco una soluzione che rimuove gli aggiornamenti disponibili e previene anche il controllo degli aggiornamenti.

Questa soluzione presuppone PHP > 5.3 (poiché utilizza funzioni anonime)

Parte 1) Cancella eventuali aggiornamenti esistenti:

add_filter( 'site_transient_update_plugins',
    function ( $oUpdatesResult ) {
        if ( ! is_object( $oUpdatesResult ) {
            $oUpdatesResult = new stdClass();
        }
        $oUpdatesResult->response = array();
        return $oUpdatesResult;
    },
    PHP_INT_MAX
);

Parte 2) Previene la richiesta HTTP in uscita che esegue il controllo effettivo:

add_filter( 'pre_http_request',
    function ( $bFalse, $aReqParams, $sUrl ) {
        if ( strpos( $sUrl, '//api.wordpress.org/plugins/update-check/1.1/' ) ) {
            $bFalse = null;
        }
        return $bFalse;
    },
    PHP_INT_MAX,
    3
);

Punti da notare:

  • WordPress controlla gli aggiornamenti solo quando carichi determinate pagine nell'area di amministrazione, come la pagina dei plugin e la pagina degli aggiornamenti, quindi non stai realmente guadagnando in prestazioni.
  • Questo vale solo per i plugin. Per gestire i temi, ripeti quanto vedi qui sostituendo "plugin" con "theme". Ad esempio nel nome del filtro e nell'URL.
  • Puoi inserire questo codice nel file functions.php del tuo tema
30 ago 2017 15:35:00
Commenti

Cosa dovrebbe essere modificato per disabilitare il controllo degli aggiornamenti del core?

iBug iBug
20 ago 2020 14:36:19
1

Mark Jarquith ha già pubblicato un post su questo argomento nel suo blog qualche tempo fa. In sostanza, interrompe le richieste ai repository pubblici SVN su wp.org tramite i filtri dell'API HTTP di WordPress.

Per i plugin (deve essere inserito all'interno del plugin):

add_filter( 'http_request_args', 'wpse_102554_deny_plugin_updates', 5, 2 );
function wpse_102554_deny_plugin_updates( $r, $url )
{
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
        return $r;

    $plugins = unserialize( $r['body']['plugins'] );
    unset(
        $plugins->plugins[ plugin_basename( __FILE__ ) ],
        $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ]
    );
    $r['body']['plugins'] = serialize( $plugins );

    return $r;
}

Per i temi (deve essere inserito nel file functions.php del tema e funziona solo per il tema attualmente attivo):

add_filter( 'http_request_args', 'wpse_102554_deny_theme_updates', 5, 2 );
function wpse_102554_deny_theme_updates( $r, $url )
{
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
        return $r;

    $themes = unserialize( $r['body']['themes'] );
    unset(
        $themes[ get_option( 'template' ) ],
        $themes[ get_option( 'stylesheet' ) ]
    );
    $r['body']['themes'] = serialize( $themes );

    return $r;
}

John Blackburn ha scritto un plugin per disabilitare gli aggiornamenti dei temi.

11 giu 2013 03:29:39
Commenti

Penso che gli snippet non funzioneranno. Da WordPress 3.7 l'API lavora con una stringa JSON. La funzione serialize non può funzionare con JSON, usa come alternativa json_decode e json_encode. Segui questo gist per il codice sorgente completo - https://gist.github.com/bueltge/5a3545ada7e68d367424

bueltge bueltge
6 lug 2014 15:22:57