web-dev-qa-db-ja.com

クラス内のwp_schedule_event

これは私の(削除された)プラグインです、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_this_daily()は決して起動されません)。私はOOP以外のプラグイン(クラスに基づいていない)でも同じことを試しましたが、それは完璧に動作します。ここで、クラスでどのように動作させることができますか?

編集:私はコードの最初の部分をテストできる完全な(まだ最小限の)プラグインに置き換えました。

5
flip79

最後に、私は何が間違っているのかを発見しました。ウェブサーバー(専用のVPS)はホストドメインの設定が悪いので、wp-cron.phpを呼び出すために「自己連絡」することができませんでした。

私はそれを修正しましたそして今これを含むすべての予定された仕事は働きます:)

1
flip79