WordPress“cron”作业是按照设置的时间表运行的数据库条目,而不是真正的Linux cron作业。虽然WordPress cron作业相对可靠,但它们确实需要有人访问站点,以检查是否需要运行。也就是说,如果您的网站流量非常低,您可能需要设置一个实际的cron作业来ping站点的首页,以确保WordPress cron作业按时运行。
WP cron是使用wp_schedule_event() 作用默认情况下,选项为每小时、每小时两次和每天。要设置计划事件,请创建挂钩:
function set_up_scheduled_event() {
if ( !wp_next_scheduled( \'Send_Report\' ) ) {
wp_schedule_event( time(), \'daily\', \'Send_Report\');
}
}
add_action(\'wp\', \'set_up_scheduled_event\');
这将为您创建一个名为“Send\\u Report”的挂钩,该挂钩将从该脚本运行的24小时开始每天运行一次。它还确保不会覆盖自身。
接下来,您需要将要执行的操作挂接到您创建的新挂钩上。
add_action(\'Send_Report\', \'actually_send_report\');
function actually_send_report {
// do something cool here, like generate a report and email it
}
如果每小时、每两次或每天都不适合您,您可以通过cron\\u时间表过滤器创建新的时间间隔。
add_filter(\'cron_schedules\', \'add_weekly_and_monthly_cron\');
function add_weekly_and_monthly_cron( $schedules )
{
if(!array_key_exists(\'weekly\',$schedules))
{
$schedules[\'weekly\'] = array(
\'interval\' => 604800,
\'display\' => __( \'Once Weekly\' )
);
}
if(!array_key_exists(\'monthly\',$schedules))
{
$schedules[\'monthly\'] = array(
\'interval\' => 2592000,
\'display\' => __( \'Once Monthly\' )
);
}
return $schedules;
}
在这些情况下,间隔是cron作业之间的秒数。