WordPress Real Cron作业返回空站点选项

时间:2014-06-06 16:02:29

标签: php wordpress cron

我开发了一个WordPress网站,它禁用了标准的wp_cron并实现了一个真正的cron作业。 cron的设置如下:

“c:\Program files\php\php.exe” E:\SiteRootFolder\wpcron.php

这似乎完美无缺。但是,当cron在函数文件中触发并运行代码时,home_urlwp_get_attachment_image_srcget_permalinkget_stylesheet_directory_uri等WordPress函数不起作用(返回空)或返回奇数值(get_stylesheet_directory_uri返回http:///wp-content/themes/theme-folder-name而不是正确包含网址)。但是,其他功能(例如$wpdb->get_results($querystr)wp_get_post_terms)似乎工作正常。

当我从WordPress管理员中运行这些功能时(我添加了一个按钮来激活这些功能,以便管理员可以按需启动作业),一切都很完美。但是当它从真正的cron作业运行时,所有这些重要的功能都会破裂。

这是什么原因?是否存在对真正的cron运行时丢失的文件的引用?

1 个答案:

答案 0 :(得分:1)

您必须从Web服务器上下文中调用wp-cron.php,而不是直接使用PHP可执行文件。以下是针对CentOS编写的disabling the default WP-Cron的一些详细信息页面,但您可以使用curl for Windows获得相同的结果。

简而言之,假设您的域名为example.com并且希望每5分钟运行一次WP-Cron,那么您的cron作业应该类似于以下内容。这将调用wp-cron.php,其中定义了为许多WordPress函数提供预期值所需的所有正确$_SERVER变量。

*/5 * * * * curl.exe --silent http://example.com/wp-cron.php?doing_wp_cron