La funzione di WordPress wp_schedule_event() ci permette di eseguire delle routine programmate secondo una data scadenza. In questo articolo vedremo come creare un plugin minimale per sfruttare questa funzionalità di WordPress.
Ecco il nostro plugin:
<?php
// Registra il codice di attivazione
register_activation_hook(__FILE__, 'my_schedule_activation');
// Aggiunge un'azione custom e le associa una funzione
add_action('my_scheduled_event', 'schedule_event');
// Definisce la funzione associata con la nostra azione di attivazione
function my_schedule_activation() {
wp_schedule_event(time(), 'hourly', 'schedule_event');
}
// Definisce la funzione che verrà eseguita ogni ora
function schedule_event() {
// ...
}
// Elimina l'evento quando si disabilita il plugin
register_deactivation_hook(__FILE__, 'my_schedule_deactivation');
function my_schedule_deactivation() {
wp_clear_scheduled_hook('schedule_event');
}
?>
La funzione wp_schedule_event()
accetta i seguenti valori di frequenza:
hourly
(ogni ora)twicedaily
(due volte al giorno)daily
(una volta al giorno)
Il suo funzionamento è simile (ma non identico) a quello di un cron job usato sui server Linux. Infatti essa sfrutta la logica e le routine contenute nel file core wp-cron.php
di WordPress, ma in modo diverso.