Wp_cron不会触发我的操作

时间:2011-09-26 作者:user47608

我在多站点的wordpress插件中遇到了一个调度任务,这让我陷入了死胡同。不知怎的,我添加的动作没有被触发。当我运行wp\\u next\\u scheduled()时,任务正在被调度并返回时间戳,但操作本身不会启动并触发函数。

可能提供一些线索的信息:

它在WPMU站点上运行,cronjob是插件的一部分,我正在使用OOP方法,导入的内容是自定义的帖子类型代码示例:

class Cronjobs
{
    function Cronjobs()
    {
        add_action(\'init\', array(&$this, \'add_cronjobs\'));
    }

    function add_cronjobs()
    {
        add_action(\'update_properties_daily\', array(&$this, \'do_updates\'));

        if(!wp_next_scheduled(\'update_properties_daily\') )
        {
           wp_schedule_event( time(), \'daily\', \'update_properties_daily\');
        }
    }

    function do_updates()
    {
        /* Do updates */
    }
}
真的需要一些巫师的帮助,谢谢!

更新解决方案:Create a global function and call that from the custom action.

显然,在引用对象时创建自定义操作存在一些问题。自从custom actions is stored in the DB (据我所知),the objected won\'t be instansiated 因此can\'t use it\'s methods. 因此:回到基础并使用全局函数。

2 个回复
SO网友:windyjonas

您需要从类外部调用add\\u action,并引用对象。示例:

$cj = new Cronjobs;
add_action(\'update_properties_daily\', array(&$cj, \'do_updates\'));

SO网友:Andreas N

我想你忘了register_activation_hook()

看见http://codex.wordpress.org/Function_Reference/wp_schedule_event

结束

相关推荐

用于WordPress后端的Nginx或Cherokee(+php-fpm)?

多年来,我一直在使用apache2和mod\\u php,但最近我迁移到nginx 使用php fpm。虽然速度更快、更稳定,但我也看了一下cherokee, 因为两者都可以处理php fpm和tons\'o\'访问者。作为WordPress主机,哪个服务器更好,有人对此进行过比较吗?更新Rarst要求问题更具体一些,因此目标(按顺序):速度、稳定性、安全性、可预测的内存使用