16.1. Cronjob anlegen/planen

Um einen neuen Cronjob zu registrieren, benötigen wir folgende Funktion:

<?php
function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array() ) {
	...
}
?>

Es gilt:

You’re not allowed to see this content. Please log in first.

Zurückgegeben wird entweder true oder false, was bedeutet, dass der Cronjob erfolgreich hinzugefügt wurde oder nicht.

Achtung: In Versionen < 5.1 gibt die Funktionen nur im Fehlerfall false zurück. Ansonsten hat die Funktion in einer älteren WordPress-Version keinen Rückgabewert (es wird also nicht etwa true zurückgegeben).

An dieser Stelle ist es wichtig zu wissen, dass WordPress einen einmal erstellten Cronjob in die Datenbank speichert. Es weiß dann zukünftig, welcher Hook zu welchem Zeitpunkt ausgeführt werden soll. Nachfolgendes Beispiel soll dies verdeutlichen.

Beispiel

Bauen wir uns an dieser Stelle ein eigenes Wetter-Widget, welches die aktuelle Temperatur jede Stunde abrufen soll. Wir nutzen die API des Wetterdienstes des norwegischen, meteorologischen Instituts und der NRK dafür. Weitere Informationen finden Sie hier: http://om.yr.no/verdata/vilkar/

Das Grundgerüst des Widgets habe ich bereits erstellt und bei Github hinterlegt: https://github.com/WordPress-Plugin-Programmierer/ebook-snippets/tree/master/16.4.weather-wi

Hier der komplette Auszug:

You’re not allowed to see this content. Please log in first.

Grundfunktion:

Nach der Aktivierung des Plugins finden Sie das neue Widget im Dashboard unter Design » Widgets. Dort müssen Sie es per Drag&Drop in eine Seitenleiste ziehen damit es aktiviert wird.

Danach geben Sie einen Titel so wie den Ort ein, dessen Temperatur angezeigt werden soll. Erwartet wird ein Pfad zu einem Ort. Am besten Sie suchen auf yr.no nach den Ort Ihrer Wahl und kopieren sich dann den Pfad aus der Adressleiste. Für München wäre das beispielhaft Germany/Bavaria/Munich.

Ausgefülltes Formular des Wetter-Widgets
Ausgefülltes Formular des Wetter-Widgets

You’re not allowed to see this content. Please log in first.