【问题标题】:WordPress Scheduling Not FiringWordPress 调度未触发
【发布时间】:2016-03-18 18:20:50
【问题描述】:

我想使用 WordPress 调度在一段时间后回显一个字符串。下面是我在functions.php中的代码。通过 echo 语句没有打印任何内容,也没有错误。请指导我做错了什么。

function add_new_intervals($schedules) {
    // add weekly and monthly intervals
    $schedules['now'] = array(
        'interval' => 1,
        'display' => __('Once Weekly')
    );

    return $schedules;
}

add_filter( 'cron_schedules', 'add_new_intervals');

function my_activation() {
    if ( !wp_next_scheduled( 'my_hourly_event' ) ) {
        wp_schedule_event( current_time( 'timestamp' ),'now', 'my_hourly_event');
    }
}

add_action('wp', 'my_activation');
add_action('my_hourly_event', 'do_this_hourly');

function do_this_hourly() {
    echo "This is the Text";
}

【问题讨论】:

  • 有礼貌地首先在一个网站上询问(然后看看你得到什么回应),而不是交叉发布到多个网站。 wordpress.stackexchange.com/questions/221104/…(或者下一次,在从一个 SE 站点复制粘贴到另一个站点时,要足够聪明地忽略“0 反对票喜爱”部分。)

标签: php wordpress cron task scheduling


【解决方案1】:

您做错的一件事是期望在运行 cron 作业时能够看到回显。更好的测试是让它在数据库中进行更改,例如:

`update_option('my_cron_test', current_time())`;

WP Cron 作业(与大多数 cron 作业一样)旨在运行需要按计划执行的功能。它们并非旨在创建“用户输出”。

WP Cron 作业的一些提示:
您的代码将尝试每小时运行一次该功能,但 WP 的设置方式可能会(或可能不会)运行,具体取决于站点是否被访问。

对于这个弱点有很多解决方案,最简单/最有效的方法是在您的服务器上设置一个触发 WP cron 的 crontab 作业。像这样:

/15 * * * wget -q -O - http://yourdomain.com/wp-cron.php?doing_wp_cron

如需更多帮助(这可能很棘手),请查看以下文章:
Properly Setting Up WP Cron Jobs
Mastering WP Cron

【讨论】:

    猜你喜欢
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2017-10-18
    • 2014-11-26
    相关资源
    最近更新 更多