目次
問題の状況:wp-cronがエラーになり、記事の予約投稿に失敗する
WordPressではサイトにアクセスがある度にwp-cronを実行します。
毎回wp-cronを実行することは、アクセス数が多いサイトではそれなりのサーバーリソースを消費します。
また、私が運用しているサイトではサイトへのアクセスが増えた結果、wp-cron.phpが403エラーになることが多くなり、記事の予約投稿に失敗するケースが増えてしまいました。
そこで、アクセスの度のwp-cronを無効にして、cronジョブで1分ごとにwp-cron.phpを実行するようにしました。
解決方法:wp-cronを無効にして、cronジョブでwp-cron.phpを実行する
1. wp-cronを無効にする
wp-config.phpに下記を追記します。
define('DISABLE_WP_CRON', 'true');
2. cronジョブで1分ごとにwp-cron.phpを実行するよう設定する
今回は、cPanelでcronジョブを設定する方法を紹介します。
cPanelがインストールされていないサーバーの場合は、各サーバーでの設定方法を確認してください。
cPanelにログインして、ADVANCEDセクションにある「Cron Jobs」を選択します。
- 「Common Settings」で「Once Per Minute(* * * * *)」を選択します。
- 「Command:」に以下のコードを入力します。
/home/username/public_html
の部分はwp-cron.phpまでのフルパスを記述します。cd /home/username/public_html; php -q wp-cron.php
これで、cronジョブが1分ごとにwp-cron.phpを実行するよう設定できました。