2017-01-31 6 views
1

これまでにCRONジョブを作成したことはありません。WP-cronジョブが追加されましたが実行されていません

私は別のサイトの例を使って、ジョブが実行されたとき(この場合は1時間ごと)に単純な送信と電子メールを送信するコードを追加しました。

これは私のコードです:

add_action( 'my_hourly_event'、 'do_this_hourly');

今私はワードプレスは、IVEは

[1485859289] => Array 
    (
     [my_hourly_event] => Array 
      (
       [40cd750bba9870f18aada2478b24840a] => Array 
        (
         [schedule] => hourly 
         [args] => Array 
          (
          ) 

         [interval] => 3600 
        ) 

      ) 

    ) 

を作成したものを見るん見ることができますが、メールが送信されていないと私は修正するために何をする必要があるか、なぜ私は仕事ができない<?php echo '<pre>'; print_r(_get_cron_array()); echo '</pre>'; ?>を使用して

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

function do_this_hourly() { 
    // do something every hour 

    $to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 


    // do something every hour 



} 

問題。

ここにいる誰かが問題を解決するのに役立つと思っていましたか?読書のための

感謝:)

+0

イベントで起こっていることをどのようにデバッグすることができるかについては、http://stackoverflow.com/q/19787375/851885 – BadHorsie

+0

をご覧ください。 –

+0

手動でジョブを実行するよう提案されたリンクを試しましたすべてが正常に動作しますが、まだ自動的に実行されていませんか? –

答えて

0

私は何が起こっているかもしれないが、あなたのフックを呼び出す必要があるときに、あなたのwp_next_scheduled機能に直接あなたの関数を呼び出していると思います。

スケジューラ機能(あなたのために「my_activation」)はフックをチェックします(あなたのために「wp」です)、フックは関数(あなたのために "my_hourly_function")と関数電子メールを送信します。

メール機能do_this_hourly()はどこにも呼び出されていません。したがって、スケジューラーはcronをスケジュールしていますが、トリガーされたときに実行する機能はありません。試してみてください:

これはテストされていませんが、動作するはずです。私は、メールのコードをチェックしませんでしたが、他のすべては右の私の頭の中に見える:P

EDIT - それは、コードブロックの外だったので、私はあなたの追加のアクションを見ていないが、上記の私のコードはまだトリックを行う必要があります。

関連する問題