Für Menschen · Seien Sie begeistert und Sie werden begeistern !
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;
}

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.
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 980 Beiträge, 18722 Kommentare in 14 Kategorien und 464 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
6. Dezember 2011 um 14:35
Müsste man dabei aber nicht auch noch die Sommerzeit (+2h statt +1h) berücksichtigen? Denn UTC als Richtzeit folgt diesen Wechseln ja nicht.
6. Dezember 2011 um 22:38
@Marvin: Brauchst du nicht berücksichtigen. WordPress baut sich den GMT-Offset selbst zusammen, auch wenn bei uns Zeitumstellung ist
7. Dezember 2011 um 13:06
Bist du sicher dass der GMT Offset automatisch zusammen gebaut wird? Ein Freund von mir hatte eine unglückliche Überraschung ..
13. Dezember 2011 um 10:31
@Thomas - Wie Du sagst handelt es sich doch bei dem WP Cron nicht um einen Cron im eigentlichen Sinne sondern um einen "Pseudo Cron" der initiert wird wenn ein Besucher in einem bestimmten Zeitfenster auf die Seite kommt. Es kann doch also u.U. sein, dass der Cron nie ausgeführt wird weil keine Traffic auf der Seite ist oder irre ich mich da?
14. Dezember 2011 um 20:22
@Nicole: Der interne Cron von WordPress ist tatsächlich ein sogenannter Poormanscron, der an den Seitenaufruf gekoppelt ist. Sofern möglich würde ich diesen immer deaktivieren und einen echten Cron-Job nutzen:
http://www.wlabs.de/1026/wordpress-auf-echten-cronjob-umstellen/26. Januar 2012 um 17:00
@Thomas - Wie Du sagst handelt es sich doch bei dem WP Cron nicht um einen Cron im eigentlichen Sinne sondern um einen "Pseudo Cron" der initiert wird wenn ein Besucher in einem bestimmten Zeitfenster auf die Seite kommt. das verstehe ich nich was du damit meinst . Es kann doch also u.U. sein, dass der Cron nie ausgeführt wird weil keine Traffic auf der Seite ist oder irre ich mich da? das habe ich letzten bemerkt und mich gewundert wie das sein kann!
ich find auch das so etwas unhöfliches hier nichts zu suchen hat und dieser User dann gelöscht werden sollte! oder sien kommentar!!
MfG
Andi
30. Januar 2012 um 19:34
Geht das Ganze auch auf älteren Blogs? Habe noch nen Blog mit Version 2.9 und diese muss ich auch beibehalten, da es das eine Plugin, welches ich nutze leider nicht auf WordPress 3.0 geht.
1. Februar 2012 um 13:30
@nadja: ja, ist auch dort nutzbar