WordPressの「wp-cron」をOSの「cron」に変更する方法

WordPressの「wp-cron」をOSの「cron」に変更する方法

WordPressでは、WordPress上のジョブを定期実行するために「wp-cron」と呼ばれる⽅法が利⽤されています。

wp-cronでは、Webアクセスをトリガーにして、実⾏すべきジョブがないかどうかを確認しています。(具体的には、⾃サーバーからwp-cron.phpをHTTP/HTTPS経由で実⾏します)

しかし、Webアクセスをトリガーにしていると、アクセスの少ないサイトなどではなかなかwp-cronが実行されないケースがあります。

そこで、Linux環境でWordPressを実行しているなら、ジョブの定期実行をwp-cronからOS(オペレーティングシステム)のcronに変更することで、リアルタイムに処理することできるようになります。

ここでは、ジョブの定期実行をwp-cronからcronに変更する方法をご紹介します。

手順

wp-cronを無効にする

WordPressの設定ファイル(wp-config.php)に以下を追記します。

追記する箇所は、「編集が必要なのはここまでです ! WordPress でブログをお楽しみください。」というコメント行の直上に追記しました。

define('DISABLE_WP_CRON', 'true');
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

cronの設定

つぎのOSのcronでwp-cron.phpを定期的に実⾏するように、/etc/crontabの最終行に以下を追記します。

* * * * * nginx /usr/bin/php -q /var/www/html/wp-cron.php >/dev/null
「nginx」の部分は、Webサーバーを実行しているユーザーを指定してください。Webサーバーがnginxなら「nginx」、Apacheなら「apache」などのユーザー名を指定します。
「/usr/bin/php」の部分は、PHPコマンドのパスを指定してください。通常はこのままで問題ないと思います。
「/var/www/html/wp-cron.php」の部分は、WordPressをインストールしたディレクトリのwp-cron.phpファイルのフルパスを指定してください。

以上で完了です。

あとがき

ジョブの実行状況を確認するときは、WordPressプラグイン「WP Crontrol」で確認するとよくわかります。

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ
トップへ戻る