【WordPress】wp-cronを無効にしてcronジョブでwp-cron.phpを実行する方法

【WordPress】wp-cronを無効にしてcronジョブでwp-cron.phpを実行する方法

問題の状況: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」を選択します。

Cron Jobs

  1. 「Common Settings」で「Once Per Minute(* * * * *)」を選択します。
  2. 「Command:」に以下のコードを入力します。/home/username/public_htmlの部分はwp-cron.phpまでのフルパスを記述します。
    cd /home/username/public_html; php -q wp-cron.php

cronジョブで1分ごとにwp-cron.phpを実行するよう設定

これで、cronジョブが1分ごとにwp-cron.phpを実行するよう設定できました。

参考