以特定时间间隔执行的方法
function informant_main_action(){
die('working');
}
Cron作业的自定义计划
function my_cron_definer($schedules){
$schedules['weekly'] = array('interval'=> 120, //604800
'display'=> __('Once Every week')
);
return $schedules;
}
add_filter('cron_schedules','my_cron_definer');
注册插件激活时间表
register_activation_hook( __FILE__, 'informant_run_on_activation' );
function informant_run_on_activation(){
if(!wp_next_scheduled('informantweeklynewsletter')){
wp_schedule_event(time(), 'weekly', 'informantweeklynewsletter');
}
}
调用我的方法在自定义事件上执行
add_action('informantweeklynewsletter','informant_main_action');
我已经安装了一个用于查看预定cronjob的插件Cron Gui,它正确地列出了我的事件,因为我每两分钟重复一次,cron gui显示正确的结果,即更新时间+2分钟。
但我的方法informant_main_action()
无效。我犯的错误是什么。 ?
由于
答案 0 :(得分:0)
测试cron使用类似mail()的东西.....每小时尝试测试然后每周测试一次。在插件去激活时销毁事件是一个好主意(还有一个主题去激活钩子,如果你需要它可以查找它)所以如果你需要在不改变钩子的情况下进行更改,你可以取消激活插件名称。
add_action('test_event', 'informant_main_action');
function informant_main_action() {
mail('youremailaddress', 'cron running', 'your cronjob has completed');
}
register_activation_hook( __FILE__, 'informant_run_on_activation' );
function informant_run_on_activation() {
if(!wp_next_scheduled('test_event')){
wp_schedule_event(time(), 'hourly', 'test_event');
}
}
register_deactivation_hook( __FILE__, 'deactivate_cron' );
function deactivate_cron() {
wp_clear_scheduled_hook( 'monday_event' );
}