WordPressの予約投稿が失敗する原因とは?【5つの原因】

チャオ(・∀・)♪

 

WordPressの予約投稿が時々失敗する…。原因は?

 

こんな疑問に答えます。考えられる原因を5つ(+1つ)用意したので、参考になれば幸いです。

 

 

WordPressの予約投稿が失敗する原因とは?【5つの原因】

 

それではさっそく解説に移りたいと思いますが、その前に一つ確認です。

 

「予約投稿」はちゃんとクリックしましたか?

 

  • 記事タイトルの後ろに「予約済み」という表記がない
  • 日付のところに「予約済み」という表記がない
  • 「公開予約(2)」などの表記がない

 

もし上記に当てはまったら、それは記事の編集後に予約投稿のボタンを押し忘れている可能性があります。ここから先を読み進める前に、一度確認してみることをおすすめします。

 

キャッシュ系プラグインを使っていますか?

 

WP File CacheやWP Super Cacheなどのキャッシュ系プラグインによってCronが正常に処理できなくなり、予約投稿が失敗してしまうケースもあります。Cronとは、予め設定した時間に決められたプログラムを実行するためのOSです。

 

このような場合における解決策は次の2つです。

 

  1. 代替Cronを設定する
  2. キャッシュ系プラグインを削除(或いは無効化)する

 

WordPressには、Cronが正常に動作しなくなった時に備えて、「代替Cron」という仕組みが標準で備わっています。Cronの代わりに動作する予備のCron、ということですね。

 

一番の解決は、キャッシュ系プラグインを削除(または無効化)する方法ですが、なるべくなら削除したくないという方もいるでしょう。そんな時は、代替Cronを設定してみるのがおすすめです。

 

「wp-config.php」に下記コードを記述しましょう。

 

define(‘ALTERNATE_WP_CRON’, true);

 

ただし、代替Cronを設定しても相変わらず予約投稿に失敗してしまうケースもあります。もし上手くいかないのであれば、プラグインを停止させる他ありません。

 

停止させてもなお解決しないようであれば、ファイルサーバ内に残ったキャッシュデータが原因として考えられます。FTPツールでサーバにアクセスして、以下のファイルの内どれか1つでもある場合、手動で削除してみましょう。

 

  • wp-content/wp-cache-config.php
  • wp-content/advanced-cache.php
  • wp-content/object-cache.php

 

キャッシュ系プラグインを使わないサイト表示速度の向上方法について書いた記事を参考までに載せておきます。まずは記事に書いている施術を全て試してみてください。

 

サイトの表示速度を改善させるために必要なこと

 

WordPressは最新バージョンですか?

 

WordPressは、なるべくなら常に最新のバージョンにしておいた方が良いです。でも、最新版へバージョンアップすることで何かしらの不具合が発生してしまうケースもあるので、それを懸念する方もいるでしょう。

 

もし最新バージョンのアップデートによって不具合が発生した場合は、WordPressのダウングレード(古いバージョンに戻すこと)をすれば一旦は大丈夫です。

 

その方法について書いた記事があるので、良かったら参考にしてみてくださいね。

 

WordPressの更新で不具合があった時の対処法

 

ベーシック認証はかけていませんか?

 

ログインIDやパスワードを使わないとアクセスできないようにするのがベーシック認証ですが、これも予約投稿が失敗してしまう原因の一つになります。

 

詳しい仕組みは分からないですが、予約投稿を実行する時にベーシック認証によるアクセス制限が発動し、Cronを阻害してしまうケースもあるようです。

 

後述するプラグインを使うことで、ベーシック認証を適用したままでも(恐らく)予約投稿が出来るようになると思うので、試してみてください。

 

サイトへのアクセス数はどれぐらいですか?

 

実は、WordPressの予約投稿(Cron)は「予約投稿する時間帯にアクセスがあった場合に処理を実行する」という仕様みたいです。「みたい」と言っていますが、僕の実体験から基づいて、本当にこの仕様になっていると94%断言できます。

 

実際に、今よりアクセス数が少なかった頃でも予約投稿をしていたのですが、結構な頻度(2~3回に一度)で失敗していました。「予約投稿に失敗しました」というエラー文が出るので一目で分かりますよね。

 

結局、僕は後述するプラグインを使って解決させました。その時に比べるとアクセス数が増えてきた今では、予約投稿は99.9%失敗しません。

 

アクセス数が少ない目安は、一日10PV未満くらいです(当時の僕がそうでした)。Googleアナリティクスでアクセス解析して、今の数値を確認してみましょう。

 

タイムゾーンが東京またはUTC+9になっていますか?

 

タイムゾーンとは、世界各国の地域に合わせた時間帯を設定できる機能です。要は現地時間を設定できる機能ということですね。

 

WordPressメニュー「設定」→「一般」を開き、(日本に住んでいるなら)タイムゾーンの設定が「東京」もしくは「UTC+9」になっているか確認してみてください。

 

もし現在時刻と記事の編集画面で表示されている予約日時の時刻が異なっている場合は、タイムゾーンの設定に問題があるかもしれません。

 

 

どうしても解決できないのならプラグインを使おう

 

上で解説した方法どれを試しても解決に至らなかった場合は、ここで紹介するプラグインを使ってみてください。

 

15分間隔で失敗した予約投稿をチェックして投稿してくれる「WP Missed Schedule」

 

WP Missed Schedule」は、15分置きに予約投稿のスケジュールを確認し、正常に働いていない場合のみ処理を実行させるというプラグインです。

 

 

 

インストールして有効化するだけで良いので便利です。

 

アクセス数が増えてきたら予約投稿には失敗しなくなると思うので、それまでの繋ぎとして入れておくと良いでしょう。

 

 

まとめ

 

以上、WordPressの予約投稿が失敗してしまう原因と解決方法についての解説でした。

 

  1. キャッシュ系プラグインを停止、もしくはデリートする
  2. 代替Cronを設定する
  3. WordPressを最新バージョンにする
  4. 頑張ってサイトへのアクセスを増やす
  5. タイムゾーンの設定を現地時間に合わせる
  6. 「WP Missed Schedule」を有効化する

 

参考になれば幸いです。

 

それでは、ここまで読んでいただきありがとうございました。

チャオ(・∀・)

 

PS.
記事が参考になったら、ぜひRSS登録お願いします!毎日更新しているので、RSSとの相性バツグンですよ(・∀・)♪

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です