Altere com que frequência os Plugins de Atualização Automática do WordPress

12

Do meu entendimento de como o WordPress atualiza o núcleo e os plugins é que a cada 12 horas ele sai e procura por atualizações. Quando esse tempo é definido? 12 horas da instalação inicial? Pergunto isso porque, usando o filtro de atualização automática de plugins add_filter( 'auto_update_plugin' ); , você poderia, teoricamente, permitir a atualização de plugins entre determinados vezes, mas se esse tempo certo não cair nessa janela de 12 horas, os plugins nunca serão atualizados.

Deixando assim a questão no meu título, que é Como é que se pode alterar a frequência com que o WordPress procura por atualizações ou como especificar uma hora específica quando atualizar automaticamente?

Para os interessados, aqui está o filtro com o qual venho brincando, veja se é de segunda a sexta, das 8h às 17h:

function maybe_update_plugins(){
    date_default_timezone_set('Your Timezone Here');
    $localAssoc = localtime(time(), true);
    $update = false;

    /***
    /* tm_wday[0] = Sunday
    /* tm_wday[6] = Saturday
    ***/
    if(
      $localAssoc['tm_wday'] > 0 && $localAssoc['tm_wday'] < 6 &&
      $localAssoc['tm_hour'] > 7 && $localAssoc['tm_hour'] < 17
    ){
        $update = true;
    }

    return $update;
}
add_filter( 'auto_update_plugin', 'maybe_update_plugins' );

Editar Como um sidenote puro, parece que este filtro é executado cada vez que um plug-in é atualizado, várias atualizações de plug-in, várias execuções do filtro

    
por Howdy_McGee 12.08.2014 / 21:02

2 respostas

8

Você está correto, o Wordpress procura atualizações para o núcleo e plugins a cada 12 horas, mas uma maneira melhor de redigir seria: ele verifica as atualizações se a última atualização foi há mais de 12 horas.

A configuração de 12 horas é codificada em wp-includes/update.php

As últimas datas atualizadas são armazenadas em wp_options table e as opções são:

_site_transient_update_core
_site_transient_update_plugins
_site_transient_update_themes

Como essa verificação não acontece exatamente após 12 horas, mas da próxima vez que a condição for atendida (pelo menos 12 horas se passaram), você não perderá a atualização.

    
por LevanK 12.08.2014 / 22:34
5

As funções relevantes wp_update_plugins() e wp_maybe_auto_update() são ligados aos eventos wp-cron de mesmo nome, sendo executados duas vezes por dia.

Logicamente, a programação inicial começará a ser marcada a partir da primeira execução. Devido à implementação do wp-cron (não sendo um cron real e trigerado por visitas ao site ao invés de um relógio do servidor) ele também irá "drift" sempre que o wp-cron atual disparar após o tempo que ele é esperado em.

As verificações de atualização de plug-ins também são acionadas com mais frequência em determinadas áreas administrativas, como a lista de plug-ins (de modo que é menos provável que você esteja procurando informações obsoletas).

No topo da minha cabeça, não vejo uma maneira elegante de colocá-lo em um corredor de tempo específico. Mudar os horários é bem fácil, a conta não é bem assim.

Se isso for de alguma forma um requisito crítico-de-miséria, talvez seja melhor lidar com o servidor real cron e a ferramenta externa para atualização real, como a funcionalidade wp-cli update ou o gerenciamento de plugins via Composer.

    
por Rarst 12.08.2014 / 22:31