Según tengo entendido, cómo WordPress actualiza el núcleo y los complementos es que cada 12 horas se apaga y busca actualizaciones. ¿Cuándo se establece ese tiempo? ¿12 horas desde la instalación inicial? Pregunto esto porque usando el filtro de actualización automática de complementos, en add_filter( 'auto_update_plugin' );
teoría, solo podría permitir que los complementos se actualicen entre ciertas horas, pero si ese cierto tiempo no cae dentro de esa ventana de 12 horas, los complementos nunca se actualizarán.
Dejando así la pregunta en mi título, ¿cuál sería la forma de modificar la frecuencia con la que WordPress busca actualizaciones o cómo especificar un momento específico para la actualización automática?
Para aquellos interesados, aquí está el filtro con el que he estado jugando, verifica si es lunes a viernes de 8 a.m. a 5 p.m.
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 nota al margen ordenada, parece que este filtro se ejecuta cada vez que un complemento se actualiza, múltiples actualizaciones de complementos, múltiples ejecuciones del filtro
fuente
Las funciones relevantes
wp_update_plugins()
ywp_maybe_auto_update()
están enganchadas a los eventos wp-cron del mismo nombre, que se ejecutan dos veces al día.Lógicamente, la programación inicial comenzará a funcionar desde el momento de la primera ejecución. Debido a la implementación de wp-cron (que no es un cron real y se ve afectado por las visitas al sitio en lugar del reloj del servidor), también "se desplazará" cada vez que se active wp-cron real más allá del tiempo previsto.
Las comprobaciones de actualización de complementos también se activan con mayor frecuencia en ciertas áreas de administración, como la lista de complementos (por lo que es menos probable que vea información obsoleta).
Encima de mi cabeza, no veo una manera elegante de ponerlo en un corredor de tiempo específico. Cambiar los horarios es bastante fácil, la cuenta de la deriva no lo es del todo.
Si esto es de alguna manera un requisito crítico para la misión, entonces podría manejarse mejor con un servidor real cron y una herramienta externa para la actualización real, como la funcionalidad de actualización wp-cli o la administración de complementos a través de Composer.
fuente
wp-cron
solo se activa ciertas vistas de la página de administración o también vistas de página normales? ¡Gracias!init
disparo de gancho)