Cronjob未按预期工作-挂钩出现问题?

时间:2012-02-11 作者:Sven

今天我试着写一个Wordpress Cronjob。出于测试目的,我编写了一个函数,每小时向我发送一封电子邮件,但它不起作用。我有一个名为“核心控制”的插件,它向我显示了所有现有的Cronjobs,我的也在这里列出。还有一个按钮“立即运行”。如果我按下它,我会收到测试邮件,因此函数本身是正确的。

下面是Cronjob的代码,它位于函数中。我的主题的php。

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

add_action( \'check_cron\', \'sendit\' );

function sendit() {  
    $address = "[email protected]";
    $sender = "Cron_Test";
    $sendermail = "[email protected]";
    $subject = "It works!";
    $text = "Yay, it is working!";

    mail($address, $subject, $text, "From: $sender <$sendermail>");    
}  
动作钩肯定有问题,但我不知道怎么了。还是需要将代码放在其他文件中?

更多信息:我现在mail(); 不能在localhost上工作,这就是为什么我在线创建了一个测试博客。文件夹通过受保护。htaccess和密码,这可能是个问题吗?

我还检查了我的wp配置。php允许Cronjobs。

现在,我还需要访问站点才能运行Cronjob。

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

不幸的是,WordPress cron作业仅在您的站点被访问时触发(请参阅Codex):

如果超过预定时间,当有人访问您的WordPress站点时,将触发该操作。

我相信这是为了回避这样一个事实,即共享主机上的许多人通常不允许设置cron作业(至少,在没有先联系主机的情况下是不允许的)。

结束