Cum să dezactivezi verificarea automată a actualizărilor în WordPress

10 iun. 2013, 21:29:20
Vizualizări: 18K
Voturi: 9

WordPress verifică automat actualizări pentru sine și pentru toate pluginurile și temele instalate. Acest proces adaugă o întârziere enervant de lungă la încărcarea (oricărei) pagini WordPress. Se întâmplă doar o dată pe zi și încărcările ulterioare de pagini nu o mai fac, dar este atât de lungă, încât mă face să mă gândesc de două ori dacă merită să deschid prima pagină (mai ales dacă trebuie să fac ceva rapid și nu să petrec toată ziua în WordPress).

De obicei actualizez foarte rar și aș prefera să aplic actualizările manual, așa că am creat un plugin pentru a elimina butonul Actualizări din bara de administrare. Am crezut că asta va rezolva problema, dar se pare că doar elimină butonul, iar verificarea se face în continuare în fundal.

Aproape orice alt program din lume îți permite să dezactivezi actualizările automate, așa că mă aștept să existe o modalitate de a face același lucru și în WordPress, dar dacă există, este puțin prea bine ascunsă.

Când am încercat să găsesc o soluție, toate întrebările care au apărut erau opusul, despre cum să forțezi aplicarea automată a actualizărilor (nu doar verificarea automată).

Cum pot fi oprite verificările automate de actualizări în WordPress?

6
Comentarii

Ai citit acest lucru?

fuxia fuxia
10 iun. 2013 21:49:26

Vezi și actualizarea aici http://wordpress.stackexchange.com/questions/67945/how-do-i-disable-dashboard-update-notifications-for-subscribers/67952#67952 , provoacă un avertisment PHP dar am uitat de ce.

Wyck Wyck
10 iun. 2013 22:03:29

De asemenea, verifică instrucțiunile din acest codex WP: http://codex.wordpress.org/Configuring_Automatic_Background_Updates

Tara Tara
24 ian. 2014 03:16:27

Informațiile despre actualizările automate în fundal din versiunea 3.7 nu erau ceea ce mă referam (eu încă folosesc 3.5—evit să actualizez până când problema cu formatele de postare va fi rezolvată, deoarece deseori vreau să public doar o singură fotografie sau propoziție, nu un întreg articol). Totuși, întrebarea despre notificările de actualizare din panoul de control este cu siguranță înrudită. Când voi reuși să rulez din nou serverul meu web portabil, voi testa acest lucru.

Synetech Synetech
28 mar. 2014 03:40:03
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 5
0

Această soluție a funcționat pentru mine pentru a dezactiva verificările pe localhost - ceea ce era foarte enervant deoarece se află în spatele unui firewall și timpul de așteptare pentru timeout era foarte mare.

define( 'WP_HTTP_BLOCK_EXTERNAL', true ); // Blochează cererile HTTP externe
define( 'AUTOMATIC_UPDATER_DISABLED', true ); // Dezactivează actualizările automate
define( 'WP_AUTO_UPDATE_CORE', false ); // Dezactivează actualizările automate pentru nucleul WordPress

Reține că nu sunt sigur dacă dezactivarea WP_HTTP_BLOCK_EXTERNAL este necesară. Nu recomand să o dezactivezi pe un server care necesită comunicarea cu alte servere.

26 nov. 2018 00:27:28
1

Cum să dezactivezi actualizările automate pentru nucleu dar să activezi actualizările automate pentru pluginuri și teme

Dacă dorești să oprești actualizările automate pentru nucleul WordPress, dar să le activezi pentru Pluginuri și/sau Teme, poți adăuga aceste linii în fișierul wp-config.php: Oprește actualizările automate pentru nucleu:

define( 'WP_AUTO_UPDATE_CORE', false );

Apoi Activează actualizările pentru pluginuri/teme:

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

Cum să dezactivezi complet actualizările automate WordPress

Dacă dorești să dezactivezi complet actualizările automate WordPress, deschide fișierul wp-config.php și adaugă această linie:

define( 'AUTOMATIC_UPDATER_DISABLED', true );
20 dec. 2014 06:25:31
Comentarii

Aceasta nu împiedică WP să verifice actualizările.

Mati Mati
10 apr. 2015 11:14:35
0

Următorul cod va dezactiva verificarea automată a actualizărilor în panoul de administrare WordPress. Puteți adăuga acest cod în fișierul functions.php al temei dumneavoastră.

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

Bine, iată o soluție care elimină actualizările disponibile și, de asemenea, împiedică verificarea actualizărilor.

Această soluție presupune PHP > 5.3 (deoarece utilizează funcții anonime)

Partea 1) Curăță orice actualizări existente:

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

Partea 2) Împiedică cererea HTTP care efectuează verificarea actuală:

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

Puncte de notat:

  • WordPress verifică actualizările doar când încarci anumite pagini din panoul de administrare, cum ar fi pagina de plugin-uri sau pagina de Actualizări, deci nu câștigi nicio performanță.
  • Aceasta este doar pentru plugin-uri. Pentru a gestiona teme, repetă ce vezi aici, dar înlocuiește "plugin" cu "theme". Adică în numele filtrului și în URL.
  • poți pune acest cod în fișierul functions.php al temei tale
30 aug. 2017 15:35:00
Comentarii

Ce ar trebui schimbat pentru a dezactiva verificarea actualizărilor de bază?

iBug iBug
20 aug. 2020 14:36:19
1

Mark Jarquith a scris despre acest lucru pe blogul său acum ceva timp. În esență, acest cod oprește cererile către repository-urile publice SVN de pe wp.org prin intermediul filtrelor din API-ul HTTP al WordPress.

Pentru plugin-uri (trebuie plasat în interiorul plugin-ului):

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;
}

Pentru teme (trebuie plasat în functions.php al temei și funcționează doar pentru tema activă curent):

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 a scris un plugin pentru a dezactiva actualizările pentru teme.

11 iun. 2013 03:29:39
Comentarii

Cred că fragmentele de cod nu vor funcționa. Începând cu WordPress 3.7, API-ul lucrează cu un șir JSON. Funcția serialize nu poate lucra cu JSON, folosește ca alternativă json_decode și json_encode. Urmărește acest gist pentru codul sursă complet - https://gist.github.com/bueltge/5a3545ada7e68d367424

bueltge bueltge
6 iul. 2014 15:22:57