wp_schedule_event in a class

时间:2013-08-17 作者:flip79

这是我的(精简)插件,在OOP中:

<?php
/*
Plugin Name: Cron Test
Plugin URI: http://www.mywebsite.com/
Description: Test
Version: 1.0
Requires at least: 3.0
*/

class CronTest {
  public function __construct() {
      if ( !wp_next_scheduled( \'dailyops\' ) ) {
          wp_schedule_event( time(), \'daily\', \'dailyops\' );
      }
      add_action( \'dailyops\', array($this, \'do_this_daily\') );
  }

  function do_this_daily() {
          // do something every day
          error_log(\'daily\');
  }
}

$cronTest = new CronTest();
无论如何,它不起作用(do\\u this\\u daily()从未被激发)。我在一个非OOP插件(不是基于类)中也尝试了同样的方法,但效果很好。我怎样才能让它在课堂上发挥作用?

编辑:我用一个可以测试的完整插件(仍然是最小的)替换了代码的初始部分。

1 个回复
SO网友:flip79

最后,我发现了问题所在:webserver(专用VPS)对托管域的配置不好,因此无法“自我联系”它,无法调用wp cron。php。

我修复了它,现在每个计划的作业都能正常工作,包括这个:)

结束

相关推荐

如何确保wp-cron作业运行

我正在使用一个插件向一个相对较大的电子邮件列表发送电子邮件。因为我们的主机每小时发送电子邮件的阈值很低,所以我们必须使用插件中的设置,将电子邮件限制在每小时只有一定数量。我假设插件使用wp cron来实现这一点。我曾尝试在wp-cron上查找文档,但我能找到的唯一重要信息是它需要一个页面视图才能运行。问题:RSS提要是否被ping到足以触发“页面视图”,从而触发wp cron</wp cron将在页面视图后运行多长时间?(例如,如果最后一次查看页面是在下午6:59,cron是否会安排在晚上7点运行?