wp-cronをCronで定期的に確実に実行させる

wp-cron.phpとは

予約投稿など時間を起因にしてタスクを実行させる仕組みです。
ただ、実際の時間を監視しているわけでなく、誰かがアクセスした際についでに動く程度の仕組みとなっています。

なので、ウチみたいなアクセス数の少ない弱小ブログでは思うように動きません。
うまく動いているかは、WP Crontrolプラグインをインストールすれば確認できます。

そんなわけで、Cronを使用して確実に実行させる様にしてみます。

wp-cronを確実に実行させる

wp-cronを停止させる

Cronからコマンド実行してwp-cronを動かすので、通常のページアクセスで起動させる機能を停止させます。

wp-config.phpの最終行に下記を追加します。

define('DISABLE_WP_CRON', 'true');

Cronに登録する

5分間隔でPHPを実行させます。
パスは各自環境にあったものに変更してください。

*/5 * * * * php -q /var/www/hogehoge/html/wordpress/wp-cron.php >/dev/null 2>&1

うちの環境ではPHP Warning: Undefined array key "SERVER_PORT"が出たけどwp-cronは動いていたので、無視しています。

>/dev/null 標準出力を破棄
2>&1 エラー出力を標準出力にマージ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

eighteen − twelve =