Cách hoạt động của WordPress Cron
WordPress Cron không giống với Cron Job truyền thống trên máy chủ. Nó phụ thuộc vào lượt truy cập của người dùng để “kích hoạt” việc kiểm tra và thực thi các tác vụ đã lên lịch.
Nếu website của bạn có ít traffic, các tác vụ cron có thể bị chậm hoặc không chạy đúng giờ.
Lên lịch
Ví dụ sau xử lí một sự kiện mỗi 3 tiếng một lần.
/**
* Thêm lịch chạy cron mỗi 3 tiếng
*/
add_filter( 'cron_schedules', function( $schedules ) {
$schedules['every_three_hours'] = array(
'interval' => 3 * HOUR_IN_SECONDS,
'display' => __( 'Mỗi 3 tiếng', 'textdomain' ),
);
return $schedules;
});
/**
* Lên lịch cron job nếu chưa tồn tại
*/
add_action( 'init', function() {
if ( ! wp_next_scheduled( 'do_every_three_hours' ) ) {
wp_schedule_event( current_time( 'timestamp' ), 'every_three_hours', 'do_every_three_hours' );
}
});
/**
* Hàm xử lý khi cron chạy
*/
add_action( 'do_every_three_hours', 'every_three_hours_event_func' );
function every_three_hours_event_func() {
// Thực hiện công việc định kỳ tại đây
}
Quản lí sự kiện
Để quản lí sự kiện, các bạn có thể sử dụng plugin WP Crontrol.
Sau khi kích hoạt, các bạn vào Công cụ → Cron Events để quản lí sự kiện.

Một số ví dụ khác
Lên lịch sự kiện mỗi 30 phút
/**
* Đăng ký lịch cron chạy mỗi 30 phút
*/
add_filter( 'cron_schedules', function( $schedules ) {
$schedules['every_30_minutes'] = array(
'interval' => 30 * MINUTE_IN_SECONDS,
'display' => __( 'Mỗi 30 phút', 'textdomain' ),
);
return $schedules;
});
/**
* Lên lịch nếu chưa tồn tại
*/
add_action( 'init', function() {
if ( ! wp_next_scheduled( 'do_every_30_minutes' ) ) {
wp_schedule_event( current_time( 'timestamp' ), 'every_30_minutes', 'do_every_30_minutes' );
}
});
/**
* Thực thi tác vụ mỗi 30 phút
*/
add_action( 'do_every_30_minutes', 'do_every_30_minutes_func' );
function do_every_30_minutes_func() {
// Thực hiện công việc định kỳ ở đây
}
Hàng ngày
/**
* Lên lịch cron hằng ngày
*/
add_action( 'init', function() {
if ( ! wp_next_scheduled( 'reset_data_everyday' ) ) {
wp_schedule_event( current_time( 'timestamp' ), 'daily', 'reset_data_everyday' );
}
});
/**
* Thực thi công việc hằng ngày
*/
add_action( 'reset_data_everyday', function() {
// Làm gì đó mỗi ngày
});
Hàng tuần
/**
* Lên lịch cron hàng tuần
*/
add_action( 'init', function() {
if ( ! wp_next_scheduled( 'update_data_every_week' ) ) {
wp_schedule_event( current_time( 'timestamp' ), 'weekly', 'update_data_every_week' );
}
});
/**
* Thực thi công việc hàng tuần
*/
add_action( 'update_data_every_week', function() {
// Làm gì đó mỗi tuần
});
Các sự kiện hàng giờ (hourly), 2 lần một ngày (twicedaily), hàng ngày (daily), hàng tuần (weekly) được WordPress tích hợp sẵn, bạn không cần khai báo lại.
Tổng kết
Hệ thống Cron nội bộ của WordPress rất mạnh và dễ dùng. Việc tự viết mã giúp bạn kiểm soát chính xác những gì cần thực hiện và khi nào thực hiện, đồng thời không phụ thuộc vào plugin bên ngoài.
Nếu bạn vận hành website có traffic ổn định và cần thực hiện tác vụ định kỳ, thì cron WordPress là một giải pháp đơn giản và hiệu quả.
Chúc các bạn thành công!
Bình luận