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);
}
私はこれを機能させるためにwp-config.phpでALTERNATE_WP_CRONフラグを設定しなければならなかったことがわかった:
define('ALTERNATE_WP_CRON', true);
ALTERNATE_WP_CRON
は基本的にあなたのサイトにアクセスしているユーザーに対して透過的なリダイレクトを行い、その結果URLにdoing_wp_cron
クエリパラメータが追加される可能性があります。
何らかの理由であなたのWordPress cronジョブがあまりにも多くの負荷またはWebサイト上のあまりにも少ないトラフィックが原因で失敗している場合、それはあなたのためにWordPress cronを起動するためにサーバー側/外部cronジョブに切り替えるのが良い方法かもしれません。