WordPressには、WP-Cronとして知られるビルトインスケジューリングシステムがあり、特定の時間に投稿を公開したり、トリガーメールを送信したり、自動バックアップを実行したりといったスケジュールタスクを管理します。
WP-Cronは便利で、多くのウェブサイトでうまく機能しますが、限界があります。特にトラフィックの少ないサイトでは、スケジュールされたタスクを見逃すことがあります。
より信頼できる代替手段は、ウェブホスティングプロバイダーのサーバーによって管理される適切なcronジョブを設定することです。これらのcronジョブはサイト訪問から独立しており、正確なスケジュールで実行され、タスクが一貫して時間通りに実行されることを保証します。
WPBeginnerでは、すべてのスケジュールされたタスクが時間通りに実行されるように、サーバーに直接設定された適切なcronジョブに依存しています。これは、トラフィックが少ない期間やサーバーのアクティビティが高い期間であっても、タスクの遅延や見逃しを心配する必要がないことを意味します。
この投稿では、WordPressのwp-cronを簡単に無効化する方法と、適切なcronジョブを設定する2つの方法を紹介します。
なぜwp-cronを無効化するのか?
WordPressウェブサイトにはwp-cronと呼ばれるビルトインスケジューリングシステムがあります。これは、更新のチェック、スケジュールされた投稿の公開、定期的なバックアップの自動作成、トリガーメールの送信など、時間的制約のあるタスクを実行します。
詳しくはWordPressのcronジョブの表示とコントロール方法をご覧ください。
問題は、WordPressがスケジュールされたジョブをチェックするように促されるのは、誰かがあなたのサイトにアクセスしたときだけだということです。これはほとんどのサイトでは十分に機能しますが、小規模なサイトでは問題を引き起こすことがあります。
例えば、あなたのサイトのトラフィックが少ない場合、スケジュールされた投稿が時間通りに公開されない可能性があります。あなたのサイトのトラフィックが多い場合、wp-cronは頻繁にチェックされ、あなたのサイトのパフォーマンスに影響を与える可能性があります。
さて、もしあなたが投稿が予定されていないエラーを修正したいだけであれば、無料のプラグインMissed Scheduled Publisherを使用することができます。しかし、スケジュールされたアクションの問題をすべて解決したいのであれば、本物のcronジョブが必要です。
本物のcronジョブは、WordPressによってではなく、Webサーバーのオペレーティングシステムによって実行されます。より確実にスケジュールされたタスクをチェックするように設定することができます。初期設定では、WordPressはサーバーレベルでこれを設定するアクセス権を持っていませんが、私たちのチュートリアルに従って簡単に設定することができます。
それでは、簡単にwp-cronを無効化し、適切なcronジョブを設定する方法を見ていきましょう。このチュートリアルで扱う内容は以下の通りです:
WordPressでwp-cronを無効化する
wp-cronを無効化するには、WordPressのコア設定ファイルであるwp-config.phpを編集する必要があります。これはWordPressサイトのルートフォルダにあり、FTPクライアントまたはウェブホスティングコントロールパネルのファイルマネージャーを使用する必要があります。
このファイルには多くの機密情報が含まれており、間違った変更を行うとWordPressサイトが壊れてしまう可能性があります。念のため、最初にファイルのバックアップを取ることをお勧めします。WordPressでwp-config.phpを編集する方法については、こちらのガイドをご覧ください。
次のコードをwp-config.phpファイルの「すべてです、編集を中止してください」という行の直前に貼り付ける必要があります!ハッピー・ブログ
define('DISABLE_WP_CRON', true);
こうあるべきだ。
その後、ファイルを保存し、サイトにアップロードしてください。
WordPressは、誰かがあなたのサイトを訪問したときにwp-cronをトリガーしなくなりました。
方法1:WordPressホスティングサービスに適切なCronジョブを設定する
次に、スケジュールされたタスクを実行するための適切なcronジョブを設定する必要があります。これを行う方法は、WordPressホスティングサービスが提供するツールによって異なります。
cronジョブを設定する最も簡単な方法は、cPanelを使用することです。cPanelは、Bluehostを含む多くのWebホスティングプランに含まれている一般的なWebサイトのコントロールパネルです。このチュートリアルではBluehostのcPanelを使用します。
注意:ウェブホスティングサービスによっては、cPanelを使用せず、cronジョブを作成する権限がありません。疑問がある場合は、ホスティングサービスに問い合わせるか、サポートドキュメンテーションを参照してください。サードパーティのクーロンサービスを使用することもできます。
ホスティングサービスアカウントにログインし、「ウェブサイト」ページに移動したら、上部から「詳細設定」タブに切り替えます。
ここで、’Cron Jobs’セクションまでスクロールダウンし、その横にある’Manage’ボタンをクリックします。このセクションの位置はホスティングサービスによって異なります。
このページで新しいcronジョブを作成することができます。
Linuxコマンドの知識が必要だという警告が表示されますが、心配しないでください。必要なコマンドは1つだけで、以下にそのコマンドを正確に紹介する。
必要であれば、cronジョブ通知を送信するメールアドレスを変更することができます。初期設定はホスティングにサインアップした時に使用したアドレスで、ほとんどのサイトで問題なく使用できます。
それでは、’Add New Cron Job’セクションまでスクロールダウンして、cronジョブを設定してみましょう。
まず、cronジョブの実行頻度を決めます。30分間隔を推奨します。
共通設定」ボタンをクリックし、ドロップダウンから時間間隔を選択する必要があります。本当に〜してもよいですか?
次に、WordPressにスケジュールされたタスクを実行させるコマンドを入力します。以下のコードを「コマンド」フィールドに貼り付ける必要がある:
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
‘example.com’を自分のサイトのURLに置き換えることを本当に〜してもよいですか?
それが終わったら、’Add New Cron Job’ボタンをクリックしてください。
WordPressは、誰かがサイトにアクセスしたときではなく、30分ごとにスケジュールされたタスクをチェックし、実行するようになりました。
方法2:サードパーティーのサービスを使って適切なCronジョブを設定する
ホスティングプランが適切なクーロンジョブを提供しない、または設定するのが難しい場合、代わりにサードパーティのクーロンサービスを使用することができます。
これらは、シンプルなインターフェースを使ってcronジョブを設定できる専用サービスです。以下はそのうちのいくつかである:
- EasyCronには、毎月更新が必須の無料プランがあります。
- cron-job.orgは無料サービスです。
- Cronitorは、1つのクーロンジョブが必要なだけなら無料です。
- SetCronJobは年間10ドルからの有料プランを提供しています。
このチュートリアルでは、EasyCronを使用します。なぜなら、EasyCronは使いやすく、無料プランはほとんどの初心者のユースケースに適しているからです。
無料アカウントを作成したら、左の’+ Cron Job’ボタンをクリックして新しいcronジョブを作成することができます。
これで’Cron Jobの作成’画面がポップアップします。まず、以下のURLを’URL to call’フィールドに貼り付けてください:
https://example.com/wp-cron.php?doing_wp_cron
‘example.com’を自分のサイトのURLに置き換えることを本当に〜してもよいですか?
その後、’When to execute’ドロップダウンから’Every 30 minutes’を選択してください。設定が終わったら、’Create Cron Job’ ボタンをクリックして設定を保存するのを忘れないでください。
新しいcronジョブはリストに追加され、30分毎にあなたのサイトでwp-cronを実行します。
ボーナス:WordPressブログ投稿の自動スケジュール設定
一度適切なcronジョブを設定すれば、WordPressブログのスケジュールされたタスクはすべて滞りなく実行されます。ブログ投稿の自動スケジュールも可能です。
これにより、事前に選択した公開日にランダムに投稿を選んで公開することができます。これを行うには、PublishPress Plannerプラグインをインストールし、有効化する必要があります。
有効化したら、プランナー ” 設定ページにアクセスし、上から「コンテンツカレンダー」タブに切り替えます。ここで、「公開時間を表示する状態」オプションの隣にある「スケジュール済み」ボックスをチェックしてください。
その後、投稿を公開する時間フォーマットを選択し、「カレンダーで作成された項目の初期設定時間」オプションの次のフィールドをクリックする必要があります。
これでプロンプトが表示され、毎日公開する投稿の時間、時、分を指定することができます。アイデアについては、ブログを公開するのに最適な時間についてのチュートリアルをご覧ください。
その後、「変更を保存」ボタンをクリックして設定を保存します。
投稿ステータス」ドロップダウンメニューから「スケジュール」オプションを設定することができます。
詳しくは、WordPressブログ投稿を自動スケジュールする方法のチュートリアルをご覧ください。
このチュートリアルでWordPressのwp-cronを無効にし、適切なcronジョブを設定する方法を学んでいただけたと思います。また、FTPを使用してWordPressに管理ユーザーを追加する方法についてのチュートリアルや、cronジョブの表示とコントロール方法についての初心者向けガイドもご参照ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Paula Coombes
Hello,
I’d just like to say thank you so much for this straightforward help.
I used Method 1.
I’ve carried out your instructions after reading everything at least 3 times and, for the first time ever, my WP health state has no problems!!
Thanks again.
WPBeginner Support
You’re welcome, glad our guide was helpful!
管理者
Beth Alexander
Is there a way to check that the new corn job running from Control Panel is working?
WPBeginner Support
To check a cron job, we would recommend taking a look at our article below!
https://www.wpbeginner.com/plugins/how-to-view-and-control-wordpress-cron-jobs/
管理者
Anita Richards
I am confused.
Woocommerce recommends setting the command as without the “?doing_wp_cron” part.
What is the difference?
WPBeginner Support
Unless we hear otherwise, the ?doing_wp_cron allows for some background processing that without would not be able to do.
管理者
Anita Richards
Ok, that makes some sense. I guess that it must be the difference between the WP and Woo processes being run?
I ended up creating two corn jobs in cPanel one with and one without. Is that going to cause problems?
WPBeginner Support
It should be a slightly different method to achieve the same result.
It would depend on your site’s size for how multiple cron jobs would affect your hosting site, as your site becomes larger it may become an issue