插件中的Cron作业不起作用

时间:2012-08-09 作者:Amna Ahmed

我写了一个插件,可以将帖子转换为excel格式,然后通过电子邮件发送。xls到电子邮件id。我可以在函数中声明函数时使用它。php,但不能使用插件文件中定义的函数。

if ( ! wp_next_scheduled( \'xls_func_hook1\' ) ) {
  wp_schedule_event( time(), \'hourly\', \'xls_func_hook1\' );
}

add_action( \'xls_func_hook1\', \'sendxls1\' ); //senxls1 is a function in functions.php
if ( ! wp_next_scheduled( \'xls_func_hook2\' ) ) {

  wp_schedule_event( time(), \'hourly\', \'xls_func_hook2\' );
}
add_action( \'xls_func_hook2\', \'export2excel\' );
完整代码位于Here

2 个回复
SO网友:Chris_O

cron事件需要在插件激活挂钩上注册,如下所示:

register_activation_hook( __FILE__, \'activate_cron\' );
function activate_cron() {
    wp_schedule_event( current_time( \'timestamp\' ), \'hourly\', \'the_function_to_run\' );
}
Thethe_function_to_run wp\\u schedule\\u事件中定义的函数必须是要在时间间隔内运行的函数。

Note: 当你说某事“不起作用”时,真的很难回答。请更加具体,以获得更好的答案。

SO网友:Walf

@Chris\\u O是对的一半,而您的代码是对的一半,请参见this documentation. 在插件激活时,您注册一个自定义操作挂钩(这样您的插件就不会重复注册重复的事件)。然后将cron函数附加到该自定义挂钩。

结束

相关推荐

Plugins_url()错误地返回带有www子域的URL

我正在开发一个插件,为了回答这个问题,我们称之为“我的插件”。我的插件目录如下所示:my-plugin/ |- image.jpg |- script.js |- script.php |- plugin.php |- ajax.php 在脚本中。php我有一段代码指定了一些JS。在其中,我需要一个ajax的URL。php。e、 g.:<script type=\"text/javascript\"> foo = jQuer