web-dev-qa-db-ja.com

wp_schedule_eventが機能しませんか?

Wordpressのcronを起動させることができません。このコードを実行して、1時間ごとに電子メールを送信できるかどうかを確認しています。

これはWordpressの例から直接引用しています: http://codex.wordpress.org/Function_Reference/wp_schedule_event 。アンダースコアを削除した場合を除く(ドキュメントの警告を参照)。

コードは私のtheme functions.phpファイルの中で走っています。 cronは登録されているようですが、prefixdothishourly関数は起動しません(私の知る限り)。

add_action( 'wp', 'prefixsetupschedule' );

/**
 * On an early action hook, check if the hook is scheduled - if not, schedule it.
 */
function prefixsetupschedule() {
    if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
        wp_schedule_event(time(), 'hourly', 'prefixhourlyevent');
    }
}

add_action( 'prefixhourlyevent', 'prefixdothishourly' );

/**
 * On the scheduled action hook, run a function.
 */
 function prefixdothishourly() {
     return wp_mail("[email protected]", "Notification TEST", "TEST", null);
 }
3
benedict_w

私はこれを機能させるためにwp-config.phpでALTERNATE_WP_CRONフラグを設定しなければならなかったことがわかった:

define('ALTERNATE_WP_CRON', true);
7
benedict_w

ALTERNATE_WP_CRONは基本的にあなたのサイトにアクセスしているユーザーに対して透過的なリダイレクトを行い、その結果URLにdoing_wp_cronクエリパラメータが追加される可能性があります。

何らかの理由であなたのWordPress cronジョブがあまりにも多くの負荷またはWebサイト上のあまりにも少ないトラフィックが原因で失敗している場合、それはあなたのためにWordPress cronを起動するためにサーバー側/外部cronジョブに切り替えるのが良い方法かもしれません。

0
tribulant