模板标记在实际Cron作业中不可用

时间:2014-03-15 作者:raaaa

我有一个非常简单的文件,只有一行:

echo file_get_contents( get_template_directory_uri().\'/scheduler.php\' );
cpanel cron使用php-q调用此文件。当我在没有get\\u template\\u directory\\u uri函数的情况下放置完整链接时,一切正常,使用此函数cron返回对未定义函数的调用get_template_directory_uri()

2 个回复
SO网友:kaiser

当您在CLI上运行时(这与Cronjob和runwhen 作业正在运行),则您无法访问某些内容,如某些服务器或请求变量内容等。您需要做的是启动WP核心。否则您将无法访问完整的WP API。

一种方法是使用 API,但通过设置

define( \'DISABLE_WP_CRON\', TRUE );
在您的wp-config.php 文件然后目标[~/wp-cron.php] 直接-何处~ 将是您的域。请记住,在多站点/网络设置中运行时,可能需要设置适当的子域或子目录。

WordPress从该文件中加载整个core,然后在cron作业期间运行每个定义的(虚拟)cron作业。

不起作用的地方(内部打开线/wp-cron.php):

// No connection to the browser/client needed
ignore_user_abort( TRUE );

if (
    ! empty( $_POST )
    OR defined( \'DOING_AJAX\' )
    OR defined( \'DOING_CRON\' )
)
    die();

SO网友:TheDeadMedic

因为你需要先加载WordPress!

require \'path/to/wordpress/wp-load.php\';

结束

相关推荐

WordPress cron作业会减慢页面加载速度吗?

如果用户访问一个站点,并且他的访问触发了一个非常密集的cron作业,那么页面加载速度对他来说会较慢,对吗?据我所知,页面在加载之前不会等待cron作业执行,但由于cron作业将并行运行,因此页面加载可能仍然会变慢,因为服务器很忙,对吗?