WordPressのwp-cronを無効化し、外部cronジョブを有効化する方法

WordPressには、wp-cronと呼ばれる組み込みのcronタスクスケジューラーがあります。このcronスケジューラーは、スケジュールされたバックアップの作成、予約投稿の公開、更新の確認、プラグインのタスクの実行など、あらかじめ決められた間隔でさまざまなタスクを実行するために使えます。しかし、wp-cronはときに、特にトラフィックの多いサイトでパフォーマンス上の問題を引き起こすことがあります。そんなときには、wp-cronを無効化して外部のcronジョブを有効化する方法があります。

WordPressで外部cronジョブを有効化する。WordPress Cronを無効化する

この記事では、WordPressのcronを無効化し、外部のcronジョブを有効化するために必要な手順をご紹介します。

現在のWordPress Cronジョブシステムを特定する

wp-cronを無効化して外部cronジョブを有効化する前に、まずどのシステムが現在使われているのかを把握する必要があります。次の2つの可能性があります:

  • Linux Cronはサーバー自体で動作するシステムレベルのタスクスケジューラーです。特定の時刻や間隔でタスクを実行できます。
  • cPanel Cron: これはcPanelホスティングコントロールパネルに組み込まれたタスクスケジューラーです。特定の時刻や間隔でタスクを実行できます。

ホスティングプロバイダーがどちらのシステムを使っているか分からない場合は、プロバイダーに問い合わせてください。

wp-cronジョブを無効化する

どちらのcronシステムが使われているか分かったら、次のステップはwp-cronの無効化です。そのためには、次のコードをwp-config.phpファイルに追加します:

Ballerina
define('DISABLE_WP_CRON', true);

このコードは、WordPressに対してwp-cronを自動的に実行しないよう指示します。このコードを追加したら、wp-cron.phpファイルを定期的に実行するための外部cronジョブを設定する必要があります。

外部cronジョブを設定する

外部cronジョブを設定するには、ホスティングプロバイダーが使用しているシステムに応じて、Linux CronまたはcPanel Cronを使う必要があります。各システムでの手順は次のとおりです:

Linux Cron:

  1. SSHでサーバーにログインします。
  2. 次のコマンドを実行してcrontabエディターを開きます:

ウェブサイトを運営するうえで重要なタスクのひとつは、データの損失や破損に備えてバックアップを確保することです。WP Stagingは、WordPressサイトでステージング環境を作成するための人気のプラグインです。サイトデータのバックアップを予約できるバックアップ機能も提供しています。

この記事では、WordPressの通常のwp-cronジョブを無効化し、バックアッププラグインWP Stagingやその他cronジョブに依存するすべてのプラグインのために外部cronを使用する方法を案内します。

bash
crontab -e
  1. crontabファイルに次のコードを追加します:
bash
*/15 * * * * /usr/bin/php /path/to/your/wordpress/installation/wp-cron.php > /dev/null 2>&1

このコードは、システムに対してwp-cron.phpファイルを15分ごとに実行するよう指示します。「/path/to/your/wordpress/installation/」は、必ずあなたのWordPressインストールのパスに置き換えてください。

  1. crontabファイルを保存して閉じます。

cPanel Cron:

  1. cPanelにログインし、Cron Jobsセクションに移動します。
  2. 「Add New Cron Job」ボタンをクリックします。
  3. 「Command」フィールドに次のコードを追加します:
bash
/usr/bin/php /home/username/public_html/wp-cron.php

「username」は、必ずあなたの実際のcPanelユーザー名に置き換えてください。

  1. 間隔を「Every 15 minutes」に設定します。
  2. 「Add Cron Job」ボタンをクリックして変更を保存します。

これで完了です!wp-cronを無効化し、wp-cron.phpファイルを定期的に実行する外部cronジョブを設定できました。

まとめ

wp-cronを無効化して外部cronジョブを有効化することで、特に多くのスケジュールタスクがある場合に、WordPressサイトのパフォーマンスを改善できます。この記事で紹介した手順に従えば、簡単に外部cronジョブを設定し、スケジュールタスクをスムーズに動作させることができます。ご不明点や問題があれば、遠慮なくホスティングプロバイダーに支援を求めてください。

関連記事

Rene Hermenau

著者: Rene Hermenau

著者について: René Hermenau は WP STAGING の創設者です。WordPress のバックアップ、ステージング、移行、データベース処理、安全なデプロイメントワークフローに取り組んでいます。