WordPress bietet eine Pseudo-Cronjob-Funktionalität, welche es dem Entwickler erlaubt zeitgesteuerte Events auszuführen. Zum Beispiel funktioniert die komplette Update-Notification darüber. In diesen sogenannten Scheduled Events kann man auch selbst eigene Jobs definieren. Dabei sollte man aber auf eine wichtige Sache achten: Die Zeit.
Die wp-cron.php
arbeit etwas abseits vom Core und lädt nur die wichtigsten Sachen und lässt sämtliche Einstellungen von WordPress offen. Die in Settings -> General eingestellte Timezone wird dabei nicht berücksichtigt. wp-cron.php
läuft also definitiv und unveränderlich auf UTC.
Das heisst also folgendes: Sind wir in der Zeitzone Berlin ist die lokale Zeit UTC+1. Tragen wir ein Scheduled Event ein, hängt er immer eine Stunde nach. Um das zu ändern hilft folgende Funktion:
function get_offset_to_gmt_in_seconds() {
$current_timezone_offset = get_option( 'gmt_offset' );
$offset = $current_timezone_offset * 3600;
return $offset;
}
Gastbeitrag
Dieser Beitrag ist aus der Feder von Thomas Herzog – hughwillfayle.de und ist ein Beitrag zum Adventskalender auf wpengineer.com zum Thema WordPress.
Thomas Herzog ist Webentwickler im Team der WordPress Agentur – Inpsyde GmbH.
Vielen Dank auch hier nochmal von meiner Seite an Thomas.