公開されない WordPress の予約投稿を解決する

予約投稿は WordPress の便利な機能で、指定した時刻にコンテンツを計画・公開できます。しかし、この機能がうまく動作せず、「予約投稿の失敗」(Missed Schedule)エラーが発生することがあります。

このエラーは、WordPress が予定された時刻に投稿を公開できなかったときに起こります。多くの場合、予定されたタスクを処理する WordPress の cron システムの問題が原因です。これらのタスクが計画どおりに実行されないと、投稿は公開されません。

特に、タイムリーなコンテンツ配信のために予約投稿に頼っている場合は厄介です。この記事では、このエラーのよくある原因を取り上げ、解決するための手順を紹介します。

よくある原因

  • WP-Cron の問題:WordPress は投稿の予約に WP-Cron を使います。WP-Cron が正しく動作しないと、投稿が計画どおりに公開されないことがあります。
  • プラグインの競合:一部のプラグインが予約システムを妨げ、投稿が予定の公開時刻を逃すことがあります。
  • ホスティングの問題:ホスティング環境によっては、WordPress が予定されたタスクを実行する方法が制限されることがあります。
  • サーバー時刻の誤り:サーバーの時計が正しく設定されていないと、予約投稿のタイミングに問題が生じることがあります。
  • リソース不足:サーバーのリソースが限られていたり、ホスティングサーバーの負荷が高かったりすると、WP-Cron がタスクを時間どおりに実行できないことがあります。

予約投稿の失敗エラーを解決する 5 つの方法

  1. WordPress のタイムゾーン設定を確認する
  2. WordPress のキャッシュを消去する
  3. WordPress のメモリー制限を増やす
  4. 予約投稿失敗用の WordPress プラグインを使う
  5. wp-cron を無効化して新しい cron ジョブを設定する

1. WordPress のタイムゾーン設定を確認する

WordPress サイトのタイムゾーンが正しく設定されていないと、投稿が誤った時刻に公開され、このエラーが発生することがあります。WordPress のタイムゾーン設定を調整する方法は次のとおりです。

  • ダッシュボードにログインし、「設定 > 一般」に移動してクリックします。
WordPress の一般設定
  • 「タイムゾーン」オプションを見つけ、ドロップダウンメニューから正しいタイムゾーンを選択し、ページ下部の「変更を保存」をクリックします。
予約投稿の失敗エラーを解決するために WordPress のタイムゾーン設定を確認する

保存後、一般設定に表示される日付と時刻が、あなたのタイムゾーンに合っているか確認します。

これにより予約投稿の失敗エラーを防ぎ、投稿が時間どおりに公開されるようになります。

2. WordPress のキャッシュを消去する

パフォーマンス向上のためにキャッシュプラグインでサイトの静的バージョンを保存している場合、キャッシュされたバージョンが投稿の公開などの予約タスクを妨げることがあります。WordPress のキャッシュを消去する方法は次のとおりです。

  • WordPress のダッシュボードにログインし、キャッシュプラグイン(例:WP Super Cache、W3 Total Cache)に移動してクリックします。
予約投稿の失敗エラーのためにパフォーマンスオプションに移動する
  • キャッシュを消去・削除するオプションを探します。通常はプラグインの設定やダッシュボードにあります。見つけたらクリックします。
WordPress のキャッシュをすべて消去して予約投稿の失敗エラーを解決する

消去後、サイトにアクセスしてキャッシュが削除されたことを確認します。もう一度投稿を予約し、エラーが発生するか確認しましょう。

WordPress のキャッシュを消去すると、サイトが最新のコンテンツを配信するようになり、予約投稿の問題を防ぐのに役立ちます。

3. WordPress のメモリー制限を増やす

WordPress のメモリー制限を増やすと、予約タスクを効率的に実行するのに十分なメモリーをサイトに確保でき、予約投稿の失敗エラーの解決に役立ちます。WordPress のメモリー制限を増やす方法は次のとおりです。

  • FileZilla などの FTP クライアント、またはホスティング会社のファイルマネージャーで WordPress のルートディレクトリにアクセスします。
WordPress のルートディレクトリ
  • wp-config.php ファイルを見つけて右クリックし、「編集」を選びます。
wp-config ファイルを編集する

次のコードを
/* That's all, stop editing! Happy blogging. */
の行の前に追加し、「変更を保存」ボタンをクリックします。

PHP
define('WP_MEMORY_LIMIT', '256M');
予約投稿の失敗エラーを解決するために PHP メモリー制限を増やす

WordPress のメモリー制限を増やすのは簡単で、予約タスクをスムーズに実行するのに十分なメモリーをサイトに与えることで、予約投稿の失敗エラーの解決に役立ちます。

4. 予約投稿失敗用の WordPress プラグインを使う

  • WordPress の管理画面にログインし、「プラグイン > 新規プラグインを追加」に移動します。
WordPress に新しいプラグインを追加する
  • 検索バーに「Missed Schedule」と入力し、Missed Scheduled Posts PublisherScheduled Post Trigger のようなプラグインを探します。
検索バーに Missed Scheduled Posts Publisher と入力する
  • インストール後、「有効化」をクリックします。
Missed Scheduled Posts Publisher プラグインを有効化する

有効化すると、ほとんどの予約投稿失敗用プラグインは追加設定なしで自動的に動作します。失敗した予約投稿がないか定期的に確認し、公開してくれます。

5. wp-cron を無効化して新しい cron ジョブを設定する

wp-cron を無効化してサーバー側の cron ジョブを設定すると、予約タスクがより確実に実行され、予約投稿の失敗エラーの解決に役立ちます。手順は次のとおりです。

  • FileZilla などの FTP クライアント、またはホスティング会社のファイルマネージャーで WordPress サイトのルートディレクトリにアクセスします。
WordPress のディレクトリ
  • wp-config.php ファイルを見つけて右クリックし、「編集」を選びます。
wp-config ファイルを編集する
  • このコードを /* That's all, stop editing! Happy blogging. */ の前に追加し、wp-config.php ファイルを保存します。
PHP
define('DISABLE_WP_CRON', true);
予約投稿の失敗エラーを切り分けるために wp cron ジョブを無効化する
  • ホスティングのコントロールパネル(cPanel、Plesk など)にログインし、通常は「詳細」または「システム」カテゴリーにある「Cron ジョブ」セクションを探します。
cPanel の WordPress Cron ジョブ

cron ジョブの実行間隔を設定します。15 分ごとが手始めとして適しています。cPanel では次の設定を使えます。分:*/15、時:*、日:*、月:*、曜日:*

コマンド欄に次のコマンドを追加し、http://yourwebsite.com を実際のサイト URL に置き換えてから、「新しい Cron ジョブを追加」をクリックして設定を保存します。

ShellScript
wget -q -O - http://yourwebsite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
新しい Cron ジョブを追加する

wp-cron を無効化してサーバー側の cron ジョブを設定すると、WordPress の予約タスクの信頼性が大きく高まります。これにより予約投稿の失敗エラーが解決し、コンテンツが時間どおりに公開されるようになります。

さらに詳しくは、WordPress の cron ジョブを追加・変更する方法の詳細ガイドをご覧ください。

まとめ

こうした先回りの対策を取れば、途切れのない公開スケジュールを維持し、サイトの信頼性を高め、タイムリーで価値あるコンテンツで読者を引き続き惹きつけられます。トラブルシューティングはサイト運営の一部であり、適切なツールと知識があれば、WordPress サイトをスムーズに動かし続けられます。

さまざまな解決策を試し続け、ご自身の構成やホスティング環境に最も合う方法を見つけてください。

関連記事

Rene Hermenau

著者: Rene Hermenau

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