Sending out scheduled emails

时间:2012-07-24 作者:Bojan Savic

如果我有计划发送的电子邮件,wordpress会运行cron吗?似乎如果没有对站点进行访问(请求),计划的任务将不会运行,因此不会发送电子邮件,例如每小时发送一次。

根据目前的情况,如果几个小时内没有访问该网站(并且进行了多次访问),则会同时发送所有预定的电子邮件

如何防止这种情况发生,是否有添加cron任务的插件?

2 个回复
最合适的回答,由SO网友:Brian Fegter 整理而成

您不能依赖wp-cron来获得一致的结果,因此必须查看服务器级别。大多数企业级Wordpress安装都需要某种一致的自动化。这就是我如何在这种情况下自动化WordPress的方法。

您需要将crontab添加到服务器本身。如果您运行的是Linux,那么可以使用crontab -e 进入编辑屏幕。

然后添加一个简单的curl命令定期访问您的站点:

0 * * * * curl http://yoursite.com/ >/dev/null 2>&1
此命令将每小时运行一次。每次cron运行时,末尾的位将输出发送为null,并删除电子邮件功能。

我在我的网站上使用它来绕过wp cron变化无常的“日程安排”。如果您对创建crontab计划持否定态度,请查看这个用于生成crontab命令的便捷工具。http://www.robertplank.com/cron/

如果您在共享主机上,希望您有cPanel,如果启用,它将为您提供一个GUI来添加cron作业。如果出于某种原因,您无法添加crontab,我会考虑寻找一个主机,该主机允许您访问shell,并允许您获得所需的灵活性。

我从未使用过cron托管服务,但如果您的主机不允许您添加crontab,您可以查看它。http://www.easycron.com/ 是cron主机的一个示例。(同样,我不知道这些服务的可靠性)

希望这对你有帮助!

SO网友:kaiser

总的来说schedule functionscron filters 不被视为real API 在WordPress中。这有几个原因,但最重要的是,这些东西必须在比WordPress这样的内容管理系统/框架更低的级别上运行服务器端。

说明WordPress在PHP上运行,PHP(简单地说)在服务器和浏览器(以及javascript等其他编程语言)之间进行通信。因此,它意味着永远运行request (由用户-在其浏览器中打开页面的用户)。没有这种互动,你就不能运行任何东西。

就是这样。:)

解决方案

由于WordPress(这个问答网站是关于什么的)无法提供一个没有用户交互的解决方案,我不能给你任何其他建议,只能检查你的主机允许你做什么,如果你不能四处走动,请向他们寻求帮助。

结束

相关推荐

瞬变VS Cron+自定义字段:缓存每个帖子的数据

想了解我想提出的解决方案的一些意见:我有一个粉丝插件,我正在为电视剧粉丝开发。插件附带的自定义贴子类型之一是发布类型,用于存储节目dvd版本上的数据。我储存的一些元数据是亚马逊使用其产品广告API提供的信息。我想缓存一些可用的定价数据,例如dvd的当前价格。我曾想过使用瞬态,但从我所能说的来看,它们只不过是一层可湿性粉剂选项;他们太全球化了。我必须用一个指向某个帖子的命名方案创建许多瞬态。另一种选择是使用自定义字段,但使用CRON API来更新它,我可以让一个CRON作业每小时更新所有自定义字段,或者为每