WordPressでは誰かがサイトへアクセスする度に、自サーバーのIPアドレスから「wp-cron.php」へアクセスしています。
調べてみると予約投稿の確認やXML-Sitemapのping送信確認などを制御しているそうです。
アクセスの度に必要な処理が見受けられないため、アクセス都度実行を停止しConoHa WINGのジョブスケジューラーで定期的に実行するようにしました。
今回はwp-cron.phpのアクセス都度実行の停止とジョブスケジューラーによる定時実行の設定方法を紹介します。
ジョブスケジューラーでは「毎時何分に実行」や「毎日何時何分に実行」といった設定ができます。
公式サイトにもジョブスケジューラーの操作方法が記載されています。この記事では実際の設定内容を含めて詳しく紹介していきます。
wp-cron.phpとは
WordPressやプラグインでスケジューリング機能を利用するときに使用するファイルです。
デフォルトの設定ではアクセスがある度に実行されます。しかし次のようなデメリットがあります。
定時実行の設定をして大丈夫/やめたほうがいい条件
wp-cron.phpを定時実行をしても大丈夫な方の条件と、やめておいた方がいい方の条件は以下の通りです。
サイトヘルスで改善の提案が出ることも
設定内容によってはWordPressのサイトヘルスステータスで「おすすめの改善」が提示されることがあります。
表示された場合は問題がないか確認しましょう。
「毎時30分」にしたら上記の改善が出ました。「毎時0分」では出ませんでした。
wp-cron.phpを定期的な実行にする設定方法
ConoHa WINGではジョブスケジューラーという機能を使って、wp-cron.phpを定期的に実行できます。
設定方法は大きく分けて以下の手順です。
- wp-cron.phpのアクセス都度実行を停止
wp-config.phpにコードを追記。コピペでOK
- ジョブスケジューラーで定時実行を設定
ConoHa WINGの画面で設定
wp-cron.phpの実行自体が不要な場合はSTEP1だけで構いません。
wp-cron.phpのアクセス都度実行を停止
WordPressで設定されている「アクセスする度にwp-cron.phpを実行」を止めます。
管理画面からは設定を変えることができないため、サーバーのファイルを編集します。
- ファイルマネージャーを開く
ConoHa WINGのコントロールパネルから遷移
- サーバーからwp-config.phpをダウンロードする
public_html/サイトのURL/wp-config.php
- wp-config.phpを編集する
コピペでOK。貼り付け位置に注意
- サーバーにwp-config.phpをアップロードする
念のためにバックアップを取ること
ファイルマネージャーを開く
ConoHa WINGにログインし、次の順に画面を遷移します。
サイト管理→ファイルマネージャー(ログインが求められる場合があります)
サーバーからwp-config.phpをダウンロードする
次のフォルダへ移動しwp-config.phpをダウンロードします。(操作方法がわからない場合はこちら)
public_html/サイトのURL/
wp-config.phpを編集する
下記コードをコピーして、先ほどダウンロードしたファイルの冒頭にある<?php の後ろで改行して貼り付けてください。
/** wp-cron.phpを無効化 */
define('DISABLE_WP_CRON', 'true');
サーバーにwp-config.phpをアップロードする
編集したファイルを先ほどファイルをダウンロードしたフォルダにアップロードします。
public_html/サイトのURL/
バックアップを選択することを忘れないでください。
以上でwp-cron.phpのアクセス都度実行を停止は完了です。
ジョブスケジューラーで定時実行を設定
ConoHa WINGのジョブスケジューラーでwp-cron.phpの定時実行を設定します。
設定はブラウザ上の操作で完結できます。
- ジョブスケジューラーを開く
ConoHa WINGのコントロールパネルから遷移
- スケジュールを設定する
設定例は「毎日1時間毎」。お好みで変更OK
ジョブスケジューラーを開く
ConoHa WINGにログインし、次の順に画面を遷移します。
コントロールパネル→サーバー管理→ジョブスケジューラー
スケジュールを設定する
本題のジョブスケジュール設定です。
「+ジョブスケジュール」ボタンをクリック
ジョブスケジューラー画面の右上にある「+ジョブスケジュール」ボタンをクリックします。
「処理日時」にwp-cron.phpを実行する頻度を設定
以下の設定項目があります。
- 処理日時
- cron形式での入力の他に、毎時や毎日などのかんたんな入力ができる
- コマンド
- 実行したいコマンド(今回はwp-cron.php)を入力
- コメント
- タイトルや処理内容など分かりやすいコメントを入力
例えば以下の入力をすると「wp-cron.phpを毎時0分に実行する」設定になります。
設定項目 | 設定内容 |
---|---|
処理日時 | 毎時 |
実行時間 | 0分 |
コマンド | /usr/bin/php /home/ルートパス(個別)/public_html/サイトのURL/wp-cron.php |
コメント | wp-cron.phpを毎時0分に実行 |
入力ができたら「保存」ボタンを押します。正常に設定できると画像のようになります。
以上でジョブスケジューラーで定時実行を設定が完了です。
時間になったら実行されるか確認しましょう。利用している各プラグインの履歴を見るのが確実だと思います。
まとめ
wp-cron.phpをConoHa WINGで定時実行に設定する方法を紹介しました。
本来のcron設定はややこしいですが、Web画面で感覚的に設定できるのはいいですね。
分からないことや質問があれば下記から気軽に連絡ください。
最後まで読んでいただきありがとうございました。
コメント