ひとり言

WordPressの予約投稿に失敗することがあるのか……原因はなんだろう

早く寝ないといけない時もあるので、記事を書き終えたら予約投稿を利用することがあります。

予約投稿は初めての使用ではなく、何度も設定して過ごしていたので、まさか失敗があるとは思いませんでした。

 

14日の記事を予約投稿にしていたけど、予約投稿に失敗していたのです。

翌日、投稿一覧を見たら、14日の記事が予約投稿の失敗と赤字で表示されており、何ごと!?となって慌ててその14日の記事を公開しました。

 

なので、15日に2つ記事が公開されていました。

日付は編集できるので毎日更新のていを装っているけど、ほぼ毎日更新なのです。

ルーターの不調で、投稿できなかった日もありましたし、寝過ごしてしまい深夜に何か書いて前日の日付で投稿もしています。

そんなわけで、毎日更新する努力はするけど、絶対ではないことをご了承ください。

 

WordPressの予約投稿に失敗した原因とは

WordPressの予約投稿に失敗する原因はいくつかあるので、調べてみました。

 

  • 予約投稿ボタンの押し忘れ
  • WordPressがアップデートされていない
  • WordPressのタイムゾーンが正しくない
  • WordPressにベーシック認証がかかっている
  • キャッシュ系プラグインが原因
  • 代替Cronの設定を試してみる
  • アクセス数が極端に少ないことが原因

 

予約投稿ボタンの押し忘れ

初歩的だけど、ありがちなミスです。

私も初めて予約投稿を設定した時は、設定が出来てるのか出来ていないのか不安になりました。

 

投稿時間を設定すると、「公開」が「予約投稿」に変わるので、それで予約設定が完了したと勘違いしそうになります。

記事の編集を保存し、必ず予約投稿ボタンを押すことを忘れないようにしましょう。

 

WordPressがアップデートされていない

WordPressが古いバージョンだったり、古いプラグインが邪魔をしていたりすると、予約投稿に失敗する原因に繋がります。

更新が必要なときは、WordPressのダッシュボードに通知が来るので、必ずアップデートしておきましょう。

プラグインも同様に、最新のものをアップデートしてください。

 

WordPressのタイムゾーンが正しくない

タイムゾーンの設定が原因で予約投稿に失敗したり、投稿される時間がズレたりする場合があります。

タイムゾーンは、管理画面から「設定」→「一般」から見れます。

日本であれば、タイムゾーンが「東京」または「UTC+9」であれば問題ないでしょう。

変更の保存を忘れずにクリックし、保存が完了したらタイムゾーンを確認してみてください。

 

WordPressにベーシック認証がかかっている

WordPressにベーシック認証がかかっていると、予約投稿に失敗することがあります。

WordPressのシステム側でCronが動作する際に、予約投稿を実行しようとしてベーシック認証で弾かれて失敗してしまう場合です。

WordPressにログインし続けている場合は、毎回失敗するわけではないので、そこまで気にしなくてもいいかもしれません。

 

失敗が気になる人は、ベーシック認証を解除するか、予約投稿の影響を受けない設定に変更する必要があります。

ですが、ディレクトリを編集する作業になり、WordPressの設定を大きく崩すリスクがあるので、必ずバックアップを取ってからディレクトリを編集するようにしてください。

 

ベーシック認証を解除するには、ディレクトリの中にある「.htaccess」ファイルに、下記のコードを追加します。

Satisfy any
order allow,deny
allow from all

解除した状態で、もう一度予約投稿の設定をしてみてください。

難しそうだと思ったら、やらないほうがいいでしょう。

 

キャッシュ系プラグインが原因

WP File CacheやWP Super Cacheなどの「キャッシュ系プラグイン」が、1番多い原因といわれています。

サイトの読み込み速度を改善するために、キャッシュ系プラグインを利用することが簡単ですが、WordPressの環境によってはCronの処理が阻害されてしまい、予約投稿が失敗するケースが多いようです。

 

キャッシュ系プラグインを有効化している人は、一度プラグインを無効にして予約投稿できるか試してみましょう。

 

代替Cronの設定を試してみる

キャッシュ系プラグインを無効にしたくない場合は、代替Cronを設定することで解決できます。

WordPressのインストールディレクトリ直下にあるwp-config.php内に、下記の1行を追加するだけです。

 

define(‘ALTERNATE_WP_CRON’, true);

 

必ずしも効果がでるとは限りません。

これでも予約投稿が上手くいかない場合は、諦めてキャッシュ系プラグインを無効化したほうがいいでしょう。

 

アクセス数が極端に少ないことが原因

指定した日時に自動で投稿されるわけではなく、予約していた時間帯に誰かがアクセスすることで、公開される仕様らしいです。

基本的には読者がアクセスしても、運営者がアクセスしても投稿されるので、運営上の問題点はありません。

サーバーの管理上の関係でこのような仕組みになっています。

 

確実に予約投稿させたい場合は、「Scheduled Post Trigger」というプラグインを使いましょう。

「Scheduled Post Trigger」を有効化するだけで、予約投稿ができるようになります。

 

私の場合はベーシック認証?それともアクセスが……

私はキャッシュ系プラグインを入れてないので、ベーシック認証かアクセスが無かったか、になると思います。

15日に、WordPressの認証でIDとパスワードを入力を求められたし、14日の夜はそれで投稿が弾かれてしまったのかなと推測します。

 

決してアクセスが無いとか……ないとか……。

友達に見てくれている人がいるので、0ではないはず。

 

解決策をどうしようか考えたけど、予約投稿のためにディレクトリをいじってまでベーシック認証を解除したいかといわれると、危ない橋を渡りそうな気がするので、私はしなくてもいいかな。

ベーシック認証がかかっていると、予約投稿が失敗しやすいと思っておくだけでいいと思います。

 

小難しく考えず、どうしても確実に予約投稿したいのなら「Scheduled Post Trigger」をインストールしたほうがよさそう。

では、また次回。