wp-cron.phpとは
予約投稿など時間を起因にしてタスクを実行させる仕組みです。
ただ、実際の時間を監視しているわけでなく、誰かがアクセスした際についでに動く程度の仕組みとなっています。
なので、ウチみたいなアクセス数の少ない弱小ブログでは思うように動きません。
うまく動いているかは、WP Crontrolプラグインをインストールすれば確認できます。
そんなわけで、Cronを使用して確実に実行させる様にしてみます。
wp-cronを確実に実行させる
wp-cronを停止させる
Cronからコマンド実行してwp-cronを動かすので、通常のページアクセスで起動させる機能を停止させます。
wp-config.phpの最終行に下記を追加します。
PHP
define('DISABLE_WP_CRON', 'true');
wp-config.phpCronに登録する
5分間隔でPHPを実行させます。
パスは各自環境にあったものに変更してください。
Plaintext
*/5 * * * * php -q /var/www/hogehoge/html/wordpress/wp-cron.php >/dev/null 2>&1
Plaintextうちの環境ではPHP Warning: Undefined array key "SERVER_PORT"
が出たけどwp-cronは動いていたので、無視しています。
>/dev/null
標準出力を破棄2>&1
エラー出力を標準出力にマージ
コメントを残す