我试着每小时在我的wp插件中检查一个动作,但效果不好。
我正在这样做:
register_activation_hook(__FILE__, function() {
//more stuff
if (! wp_next_scheduled ( \'my_hourly_event\' )) {
wp_schedule_event(time(), \'hourly\', \'my_hourly_event\');
}
});
add_action(\'my_hourly_event\', \'do_this_hourly\');
function do_this_hourly() {
wp_mail(\'[email protected]\', \'prueba cron\', \'prueba cron innovation\');
}
但我每天只收到2-5封邮件,而不是在预期的时间(例如,今天我只收到了2封邮件,分别是上午8:21和11:51;昨天还有2封,都是11:45…)。
我无法访问服务器来进行真正的cron作业。
SO网友:cjbj
您的站点上可能没有足够的访问者。尽管看起来不是这样,WordPress实际上并没有安排活动。它会记录发生在数据库中的时间,并且只有当有人访问该站点时,WP才会被触发,它会检查数据库并触发事件。
因此,如果没有人在你想要的时间出现,你的活动就不会发生。
为了确保事件在您想要的时间准确触发,您需要做的是绕过WP自己的调度系统,并直接使用操作系统对其进行调度。如果你在谷歌上搜索“wordpress force cron job”,你会发现很多教程。我喜欢this one.
当然,如果您无法访问cpanel
或者其他允许您设置cron作业的托管服务(如您所说)。在这种情况下,谷歌搜索“免费cron作业”。这将为您提供一个服务器,作为触发事件的每小时访问者。