无法访问Cron作业变量

时间:2013-06-16 作者:antibin

我目前正在我的cPanel上运行一个cron作业来更新一个包含汇率的变量,如何使这个变量可用于wordpress站点中的函数和页面?

My command in cPanel for cron job running every minute:

php -q /home/username/public_html/cronjob.php

cronjob.php

<?php
require(\'wp-blog-header.php\');
$exchangeRates = getExchangeRates();

function getExchangeRates(){
// etc etc
}

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

首先,最好不要包括wp-blog-header.php. 相反,使用?mycustomcron=true 附加变量(例如:http://example.com/?mycustomcron=true. 然后,我们将在页面加载时检查此变量是否存在:

function wpse_103127_check_cron() {
    if ( isset( $_GET[\'mycustomcron\'] ) ) {

        // things to do on cron here

        exit; // no need to load the page on cron
    }
}

add_action( \'template_redirect\', \'wpse_103127_check_cron\' );
至于保存数据以便以后在WordPress中访问,您可以将数据保存到wp_options 表格:

$exchange_rates = getExchangeRates();
update_option( \'exchange_rates\', $exchange_rates );
然后稍后访问:

$exchange_rates = get_option( \'exchange_rates\' );
请参见Options API 有关将数据保存到数据库的详细信息,请参阅Codex文章。

结束

相关推荐

wp-cron: freeze at "now"

抱歉问了这么愚蠢的问题。简单地说,我有一个wp(3.5.1版)博客,使用了一个经过大量修改的(我自己)主题。除了wp cron之外,其他一切都正常工作。列出的作业出现在(例如)crontrol中,时间流逝直到“现在”(这意味着作业应该开始)。无论如何,什么都没有发生:计划的后期冻结在“现在”,我的自定义函数冻结在“现在”,等等。如果我手动运行它,一切都正常(因此没有代码问题)。我尝试禁用wp cron(使用define(\'DISABLE_WP_CRON\', true); 并设置一个自定义wp cron