В WordPress есть встроенный планировщик задач. Основная его задача — проверка на обновления ядра и плагинов. Возможности планировщика открыты и для разработчиков.
PHP не работает в режиме реального времени, а исполняется по запросу, поэтому реализация такого метода имеет смысл если у сайта хорошая посещаемость, или выполнение задачи не строго обязательно. Это нужно учитывать.
Большое преимущество этого решения — переносимость.
Логика очень проста:
- Мы создаем событие. Задаем название и периодичность;
- Создаем функцию, которая будет запускаться по этому событию;
- К событию через
add_action
мы привязываем нашу функцию;
// Если задача не определена, ставим ее на выполнение
// Без этой проверки события будут создаваться при каждом запросе
if( !wp_next_scheduled('scheduled__for_something' ) )
wp_schedule_event( time(), 'hourly', 'scheduled__for_something' );
// Привязываем к определенной выше задачи функцию
add_action( 'scheduled__for_something', 'function__for_something', 10, 3 );
function function__for_something( ) {
/*
*
* Задача для выполнения раз в час
*
*/
}
Подробности, временные параметры доступны в кодексе, не вижу смысла копировать эту информацию сюда.
Код для functions.php
.
Комментариев нет