Я пытаюсь реализовать работу cron в моем блоге WordPress. Я хочу сделать это в плагине, для тестирования я пытаюсь записывать в один файл некоторую информацию журнала каждые 10 минут, для этого я написал этот код (PHP):
add_filter( 'cron_schedules', 'ten_minute_prefix' );
function ten_minute_prefix( $schedules )
{
$schedules['tenmins'] = array(
'interval' => 600,
'display' => __( '10 minutes' ),
);
return $schedules;
}
//This must be here always
add_action('my_task_hook', 'foo_task');
function foo_task()
{
file_put_contents('data.txt', date("Y-m-d H:i:s") . "task do it\r\n", FILE_APPEND);
}
//This is executing in my plugin page in tools section
function myplugin()
{
//For checking permissions
file_put_contents('data.txt', date("Y-m-d H:i:s") . "Task begin\r\n", FILE_APPEND);
wp_schedule_event( time(), 'tenmins', 'my_task_hook' ); // hourly, daily and twicedaily
echo "SCHEDULE ACTION";
...
}
Для проверки того, что я действительно создал задание cron, я использую, например, этот плагин http://wordpress.org/extend/plugins/cron-view/. Этот плагин говорит мне это "Запись № 10: my_task_hook √ действие существует".
но ничего не происходит, файл не пишется, в чем проблема?
Edit:
Я добавил одну строку в функцию myplugin, чтобы посмотреть, есть ли у меня разрешение на запись файлов. На самом деле, у меня есть разрешения, в каталоге wp-admin / folder создается файл data.txt.
Edit2:
Я просто для того, чтобы понять работу cron в WordPress!
Cron в WordPress не является настоящим Cron, он срабатывает только тогда, когда любой пользователь открывает веб-страницу, если никто не открывает страницу, процесс не будет запущен. Так что, если у блога нет посетителей, задания cron не работают.
Пожалуйста, поправьте меня, если я ошибаюсь.