Modificar la frecuencia de los complementos de actualización automática de WordPress

12

Según mi entendimiento de cómo WordPress actualiza el núcleo y los complementos, cada 12 horas sale y busca actualizaciones. ¿Cuándo se establece ese tiempo? 12 horas desde la instalación inicial? Te lo pregunto porque al usar el filtro de actualización automática de complementos add_filter( 'auto_update_plugin' ); puede que teóricamente solo permita que los plugins se actualicen. veces, pero si ese cierto tiempo no cae en esa ventana de 12 horas, los complementos nunca se actualizarán.

Dejando así la pregunta en mi título, que es ¿Cómo se haría para modificar la frecuencia con la que WordPress busca actualizaciones o cómo especificar una hora específica en la que se actualizará automáticamente?

Para los interesados, aquí está el filtro con el que me he estado metiendo, para ver si es de lunes a viernes de 8:00 a 17:00:

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 una buena nota, parece que este filtro se ejecuta cada vez que se actualiza un complemento, varias actualizaciones de complementos, varias ejecuciones del filtro

    
pregunta Howdy_McGee 12.08.2014 - 21:02

2 respuestas

8

Usted tiene razón, Wordpress comprueba si hay actualizaciones para el núcleo y los complementos cada 12 horas, pero una mejor manera de decirlo sería: comprueba las actualizaciones si la última actualización fue hace más de 12 horas.

La configuración de 12 horas está programada en wp-includes/update.php

Las últimas fechas actualizadas se almacenan en la tabla wp_options y las opciones son:

_site_transient_update_core
_site_transient_update_plugins
_site_transient_update_themes

Debido a que esta comprobación no se realiza precisamente después de 12 horas, sino que la próxima vez que se cumpla la condición (que hayan transcurrido al menos 12 horas), no perderá la actualización.

    
respondido por el LevanK 12.08.2014 - 22:34
5

Las funciones relevantes wp_update_plugins() y wp_maybe_auto_update() se enganchan a los eventos wp-cron del mismo nombre, que se ejecutan dos veces al día.

Lógicamente, la programación inicial comenzará a marcar desde el momento de la primera ejecución. Debido a la implementación de wp-cron (al no ser el cron real ni a las visitas del sitio en lugar del reloj del servidor), también se "desviará" cada vez que el wp-cron real pase el tiempo que debe.

Las comprobaciones de actualización de complementos también se activan con más frecuencia en ciertas áreas de administración, como la lista de complementos (por lo que es menos probable que esté viendo información obsoleta).

En la parte superior de mi cabeza no veo una forma elegante de ponerlo en el corredor de tiempo específico. Cambiar los horarios es bastante fácil, la cuenta de la deriva no es del todo.

Si esto es de alguna manera un requisito crítico para la crisis, es mejor que lo manejemos con el servidor real y una herramienta externa para la actualización real, como la funcionalidad de actualización de wp-cli o la administración de complementos a través de Composer.

    
respondido por el Rarst 12.08.2014 - 22:31

Lea otras preguntas en las etiquetas