Nach meinem Verständnis, wie WordPress Core und Plugins aktualisiert, wird alle 12 Stunden nach Updates gesucht. Wann wird diese Zeit eingestellt? 12 Stunden nach der Erstinstallation? Ich frage dies, weil Sie mit dem Plugin-Auto-Update-Filter add_filter( 'auto_update_plugin' );
theoretisch nur zulassen können, dass Plugins zwischen bestimmten Zeiten aktualisiert werden. Wenn diese bestimmte Zeit jedoch nicht in dieses 12-Stunden-Fenster fällt, werden Plugins niemals aktualisiert.
So bleibt die Frage in meinem Titel: Wie würde man ändern, wie oft WordPress nach Updates sucht oder wie man einen bestimmten Zeitpunkt für die automatische Aktualisierung angibt?
Für Interessierte, hier ist der Filter, mit dem ich mich beschäftigt habe. Prüft, ob Montag - Freitag 8 - 17 Uhr ist:
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' );
Bearbeiten Als nette Randnotiz sieht es so aus, als würde dieser Filter jedes Mal ausgeführt, wenn ein Plugin aktualisiert wird, wenn mehrere Plugins aktualisiert werden oder wenn der Filter mehrmals ausgeführt wird
quelle
Die relevanten Funktionen
wp_update_plugins()
undwp_maybe_auto_update()
sind mit den gleichnamigen wp-cron-Ereignissen verknüpft, die zweimal täglich ausgeführt werden.Logischerweise beginnt der anfängliche Zeitplan ab dem Zeitpunkt des ersten Durchlaufs zu kreuzen. Aufgrund der Implementierung von wp-cron (das nicht wirklich cron ist und eher durch Site-Besuche als durch die Server-Uhr ausgelöst wird) "driftet" es auch immer dann, wenn tatsächlich wp-cron nach Ablauf der geplanten Zeit ausgelöst wird.
Plugin-Aktualisierungsprüfungen werden auch in bestimmten Administrationsbereichen wie der Plugin-Liste häufiger ausgelöst (damit Sie weniger wahrscheinlich veraltete Informationen anzeigen).
Auf meinem Kopf sehe ich keine elegante Möglichkeit, es in einen bestimmten Zeitkorridor zu stellen. Das Ändern von Zeitplänen ist ziemlich einfach, die Berücksichtigung von Abweichungen ist nicht ganz.
Wenn dies in irgendeiner Weise eine missionskritische Anforderung ist, kann dies besser mit einem echten Server-Cron und einem externen Tool für die eigentliche Aktualisierung, wie z. B. der wp-cli-Aktualisierungsfunktionalität oder der Verwaltung von Plugins über Composer, erledigt werden.
quelle
wp-cron
nur bestimmte Admin-Seitenaufrufe oder auch normale Seitenaufrufe ausgelöst? Vielen Dank!init
Hook