WordPress Cron nutzen

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 13 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

WP Adventskalender 10
WordPress besitzt einen eigenen Cron und bestimmte Themen automatisiert und zeitgesteuert laufen zu lassen. Dabei werden diverse Funktionen für die Nutzung des Cron von WordPress zur Verfügung gestellt.

Im ersten Fall senden wir so zum Beispiel jede Stunde an Mail mit Hilfe der WordPress-Funktion wp_mail() raus. Diese Möglichkeit soll nur die Funktion darstellen, nicht zum Nachmachen anregen!

Im Standard kann WordPress mit drei Zeitschlüsseln umgehen, die man der Funktion wp_schedule_event mitgeben muss.


// send automatic scheduled email
if ( !wp_next_scheduled('my_task_hook') ) {
	wp_schedule_event( time(), 'hourly', 'my_task_hook' ); // hourly, daily and twicedaily
}

function my_task_function() {
	wp_mail('example@yoursite.com', 'Automatic mail', 'Hello, this is an automatically scheduled email from WordPress.');
}
add_action('my_task_hook', 'my_task_function');

Wer den Cron nutzt, sei es im Plugin oder Theme, der sollte nicht vergessen, den Cron auch zu deaktivieren, wenn man ihn nicht mehr benötigt.


// clean the scheduler
function my_task_deactivate() {
	wp_clear_scheduled_hook('my_task_hook');
}
delete_action( 'my_task_hook', 'my_task_deactivate' );

Nicht immer reichen die Vorgabewerte für die zeitliche Steuerung und so kann man auch diese via Filter erweitern.


add_filter( 'cron_schedules', 'filter_cron_schedules' );
// add custom time to cron
function filter_cron_schedules( $schedules ) {
	
	$schedules['once_half_hour'] = array( 
		'interval' => 1800, // seconds
		'display'  => __( 'Once Half an Hour' ) 
	);
	
	return $schedules;
}

Von Frank Bültge

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.