WordPressでは、ブログ記事を書き溜めて指定した日付に公開できる
「予約投稿」という便利な機能があります。
しかし、時々投稿画面の一覧に「予約投稿の失敗」という赤字のステータスが
表示されていることがあるようです。
その場合、指定日時を過ぎているにも関わらず、記事は公開されずにずっと
放置状態..といった状況になってしまいます
なぜこのような状況になるのでしょうか?
実は、WordPressは「wp-cron」という独自のcron(疑似cron)を使って
プログラムを動かしているためです。
※cronというのはざっくりいうと「指定したスケジュールに、指定した
プログラムを起動してくれるサーバーの機能」のことです。
疑似cronでは、時間になったら即実行ではなく、ファイルにアクセスしてから
実行するひと手間があるため、
・アクセスが全くない
・キャッシュプラグインを入れていて予約がちゃんと認識されない
といった原因で失敗するケースがあるようです
したがってこれらの対処としては、
①代替cronを使用する
②キャッシュプラグインを停止する
③予約投稿ができるプラグインを導入する
といった選択肢があります。
①については、wp-config.phpに、以下の一行を入れるだけで対応が可能です。
define(‘ALTERNATE_WP_CRON’, true);
②は「Autoptimize」や「WP Fastest Cache」などいろいろありますが、
停止しても問題なければ一時的に止めてどうなるかを検証しましょう。
③は「Scheduled Post Trigger」などがオススメでよく出てくるかと思います。
ただし、予約投稿のためだけにプラグインを入れるのは、サイトのパフォーマンスに
影響するので、①や②で解決できなく、予約投稿をどうしても必要な場合に使うのが
良いと思います。
予約投稿をフル活用するためにも、失敗が頻発するようでしたら、上記のように
原因を特定すると良いでしょう