WP-Cron を cron から叩くとサイトの表示が若干軽くなるとのことでやってみた。
結論、問題なく動いている。
やりかた
すでに多くの人が解説しているので割愛。 やるべきことは、
define('DISABLE_WP_CRON', true);
を設定してデフォルトの動作を止める- cron 設定で wp-cron.php を定期的に叩くようにする
具体的にはこちらのサイトを参考に、 hacknote.jp
注意点
cron 設定について、
- cron を毎分実行するように設定しようとしたら「毎分実行は負荷が大きくなりがちなので制限をかけるかも」と注意喚起された *1
- なので5分に一度 cron 実行するように設定を変えた
- そうすると WP-Cron の実行も最大で5分遅延する恐れがある
PHP の実行時、
- php コマンドで wp-cron.php を叩く場合、
$_SERVER['SERVER_NAME']
,$_SERVER['REQUEST_METHOD']
などが取得できない。場合によっては PHP スクリプトの修正が必要になるかも curl https://example.com/wp-cron.php
とかすれば回避できるけど、特定の IP からしかアクセスを許していない条件下では使えない
補足
ちゃんと動作するか最初は不安だと思うので、 WP Crontrol を使ってタスクやログをウォッチしながらやると安心できる。
私からは以上です。
*1:共用サーバー (エックスサーバー) を利用しているのでこのような注意喚起が出たみたいです