ワードプレスにおける自動実行の仕組みCRONについて簡単に解説し、CRONを確実に実行する方法を記載いたします。
ワードプレスにおけるCRONとは?
CRON(クーロン)とは、様々なOSに組み込まれている、特定の日時に、特定のプログラムの実行を自動で行う仕組みの事です。OSの時計の時間を読み取って定期実行します。
ワードプレスには、wp_cronという任意のプログラムを定期的な自動実行を登録できる仕組みがついています。
この仕組みを使い、ワードプレスは自動でプラグインや本体をマイナーバージョンアップしたり、その他様々なプラグインでプログラムを定期的に自動実行する仕組みとして利用されています。
ワードプレスに現在登録されている定期実行タスクの内容を確認する
WP Crontrol というプラグインを利用すると、ワードプレスに現在登録されている自動実行処理の内容やタイミングを確認することができます。
プラグインをインストールしたら、管理画面>ツール>Cronイベント から一覧表示できます。
また、強制的にCron処理を実行することも可能です。
ワードプレスのCRONは実行が不安定
ワードプレスの組み込みのwp_cronの仕組みは、上記のOSのCRONとは違い、サイトにアクセスがあったときに、定期実行の時間を過ぎていれば実行するという仕組みです。
ゆえに、サイトにアクセスがない時間帯は実行時間が大幅にずれたり、実行がスキップされたりすることがあります。
wp_cron を確実に実行させるには、OSのCRONにワードプレスのwp_cronを本当に定期実行するコマンドを追加する必要がございます。
osへのcron登録の書式は下記のようになります
定期実行の時間設定 ※5分に一回
* * * */5
CRONのコマンド
phpの実行パス ワードプレスへの絶対パス/wp-cron.php 1> /dev/null
※PHPプログラムで、wp-cron.php を 出力無し(1> /dev/null)に定期実行せよという意味のコマンドになります。
参考
SAKURAインターネット https://help.sakura.ad.jp/206053892/
Xserver https://www.xserver.ne.jp/manual/man_program_cron.php
Lolipop https://lolipop.jp/manual/user/cron/
ワードプレスのCRONの実行を止める
ちなみに、ワードプレスの定期実行のCRONを実行しないように設定することも可能です。ただ、この場合プラグインやワードプレスの自動更新等もすべて止まってしまうため、よっぽどの理由がない場合は停止されない方が良いかと存じます。
※ワードプレスの自動実行を止める
wp-config.php に下記の行をデータベースの設定欄の下に追加します。
define('DISABLE_WP_CRON', 'true');
WordPress ワードプレスのトラブル対応、プログラム作成・修正等のご相談ご依頼はWPドクターまでお気軽にお送りください