В WordPress есть свой собственный Cron, для тех кто не знает, что это Cron – планировщик, при помощи него можно настроить, например автоматическую публикацию постов или еженедельный бэкап базы данных WordPress.
Первый пример использования Cron, мы будем отправлять письма каждый час, при помощи функции wp_mail(), это просто пример, не используйте в реальной жизни ![]()
По умолчанию, cron имеет три варианта повторений для заданий:
</p> <pre>// автоматическая отправка писем</pre>
<pre>if ( !wp_next_scheduled('my_task_hook') ) {
wp_schedule_event( time(), 'hourly', 'my_task_hook' ); // каждый час, ежедневно (daily) или два раза в день (twicedaily)
}&#160;&#160; 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');</pre>
<p>Но не всегда трёх вариантов хватает, в этом случае можно указывать частоту повторений вручную в секундах:
</p>
<pre>// add custom time to cron
function filter_cron_schedules( $param ) {
return array( 'once_half_hour' =&gt; array(
'interval' =&gt; 1800, // секунды
'display' =&gt; __( 'Раз в полтора часа' )
) );
}
add_filter( 'cron_schedules', array( &amp;$this, 'filter_cron_schedules' ) );</pre>
<p>По мотивам: wpengineer.com
Похожие посты:
4 Комментариев к статье Использование Cron в WordPress
2nd Январь 2010 в 20:15
это, наверное, для тех, кто всё ещё ютится на бесплатном хостинге, во всяком случае не очень удобно использовать такой Cron
)
2nd Январь 2010 в 20:18
На самом деле такой крон довольно хорошая вещь, например для создания плагинов или если делаете сайт для заказчика, да и просто, что бы не зависеть от хостинга.
10th Январь 2010 в 12:41
Вещь, сам им пользуюсь.
19th Январь 2010 в 18:28
Вообще wp_schedule_event рекомендуется вызывать из процедуры активации плагина, а при деактивации вызывать wp_unshedule_event.
Есть еще функция wp_schedule_single_event для одноразовых событий (например, хорошо для рассылки писем в фоне).