WordPressの予約投稿に失敗する原因と見るべき重要ポイントのまとめ!
WordPressのブロガーの方なら恐らく使っているである予約投稿機能。
指定した日時に達すると自動的に作った記事が投稿されるというものです。
たくさん記事を書いた場合に日付を分けて投稿したり、
忙しくて記事が書けない日でもその時間に公開されるので大変便利ですよね。
先日、私が運営している別のWordPressの管理画面を開いたら、
なぜか登録しておいた「予約投稿」に失敗していました。
今までこんなことなかったのになぜ?と思いながら、再度直近の日時で指定して様子を見てみることにしました。
しばらくして予約投稿が無事できていたので、問題ないであろうと別の日付で予約投稿し放置。
そしたらまた、予約投稿に失敗していたのです。
もう何がなんだかわかりませんでしたので、WordPressの予約投稿の仕組みついて調べてみました。
WordPressの予約投稿の仕組みに秘密が!
予約投稿の仕組みはApacheのCronによって動作し、
無人で作成した記事を投稿してくれるものだと思っていましたが、実は違うようです。
もちろんCron制御はされているんですが、もうひとつ条件が必要らしいです。
予め、未来の日時を指定した記事を予約投稿しておきます。
指定した日時を超えただけでは自動投稿されず、
予約していた時間帯に誰かがアクセスすることで、公開されるという仕様らしいです。
要するに自動ではなく、ユーザアクションによってあたかも自動投稿しているようなのです。
つまり全くアクセスのないブログで、予約投稿していても失敗に終わってしまうという訳です。
WordPressの予約投稿に失敗する原因とは?
今お話ししたことは、あくまでWordPressの仕様についてです。
アクセスの少ないブログの場合は、
無条件で予約投稿に失敗するケースが多いんですが、この他にもいろいろな原因があります。
代表的なものも含め以下に解決策を記載しておきます。
- キャッシュ系プラグインが原因の場合
- 代替Cronの設定を試してみる
- ベーシック認証を利用している場合
- アクセス数が極端に少ないことが原因の場合
- それでも無理ならWordPressをアップデートしてみる
順番に試してみて下さい。
キャッシュ系プラグインが原因の場合
一番多い原因は恐らく「キャッシュ系プラグイン」ではないかと思います。
ウェブサイトの読み込み速度を著しく改善する場合、キャッシュ系プラグインを利用することで手っ取り早いですが、WordPressの環境によってはCronの処理が阻害されてしまい、結果「予約投稿が失敗」するケースが多いようです。
代表的なプラグインにはWP File CacheやWP Super Cache などですね。
一応停止すれば、Cronが正しく動作するようになる可能性が非常に高いです。
解決策としてはキャッシュ系プラグインを停止します。
しかし、これだけではまだ予約投稿に失敗してしまうことがあります。
というのもキャッシュ系プラグインを無効化しても、
ファイルサーバ内にキャッシュデータが残ってしまい、そのファイルが悪さするからです。
FTPツールなどでファイルサーバにアクセスし、wp-contentフォルダ直下の以下のファイルが存在するか確認しましょう。
- wp-content/wp-cache-config.php
- wp-content/advanced-cache.php
- wp-content/object-cache.php
もしいずれか1個でもあれば手動で削除します。
ここまでの作業でほとんどの方は「予約投稿」が正常になります。
ただしこの方法は、そもそもウェブサイトを軽量化することを目的に導入しているはずなので、
キャッシュを無効にするのにはやや抵抗があります。
キャッシュ系プラグインを無効化せずにCronを正しく動作させるテクニックを次にご紹介します。
代替Cronの設定を試してみる
あくまで保険的な機能ですが、どうしてもキャッシュ系プラグインを停止したくない方向けに代替Cronというものを設定します。
必ず成功するとは限りませんが、試してみる価値はあります。
WordPressには予約投稿がうまく動作しない時のために、
「代替Cron」という仕組みが用意されています。
WordPressのインストールディレクトリ直下にあるwp-config.phpに、下記の一文を追加するだけです。
1 | define('ALTERNATE_WP_CRON', true); |
記述したら、しばらく放置し、予約投稿が動作するか検証します。
うまくいったらラッキーだと思って下さい。
これでも動作しない場合は、諦めてキャッシュ系プラグインを無効化するしかないでしょう・・・。
ベーシック認証を利用している場合
特定のユーザに対して記事を公開する為に、
BASIC認証を行なっているサイトの場合、予約投稿の失敗する報告が多いです。
意外とありがちなんですが、WordPressのシステム側でCronが動作する際に、
予約投稿を実行しようとしてBASIC認証で弾かれ失敗してしまうというパターンです。
これに関してはBASIC認証を解除するか、予約投稿の影響を受けない設定に変更する必要があります。
とりあえずBASIC認証を採用しているサイトは「予約投稿」が失敗しやすいよ!という報告です。
アクセス数が極端に少ないことが原因の場合
記事の冒頭でお話しした通り、WordPressの予約投稿は、
一定のアクセスがないと実行されないという仕様になっています。
アクセスがないブログは予約投稿ができないといっても過言ではありません。
とはいってもアクセス数が少ないブログでも予約投稿を動作させたい!という方におすすめのプラグインがあります。
記事の一番下にその魔法のようなプラグインを紹介していますので、是非ご覧下さい。
それでも無理ならWordPressをアップデートしてみる
何を試してもうまく行かない最終手段としてWordPressのバージョンを最新版にアップデートするという方法があります。
アップデートによって予約投稿が正常に動作するようになったという報告もそこそこ多いみたいです。
ですが、新しいバージョンが出たからといってすぐに飛びつくと、
思いもよらぬ不具合が発生する場合も考えられるのですぐには飛びつかず、どうしようもない場合はアップデートといった感じが望ましいでしょう。
最短5分で予約投稿を正常に動作させる魔法のプラグイン
ある意味ここが大目玉とも言えるほど内容になります。
実は失敗した予約投稿を投稿し直すという魔法のようなプラグインがあります。
「WP Missed Schedule Fix Failed Future Posts」という名称のプラグインなんですが、試に私が運用している別のブログに導入したら一気に解消されました。すばらしいプラグインです。
WP Missed Scheduleとは?
具体的には5分間おきに失敗した予約投稿をチェックし、
もしあれば最大10記事まで強制的に公開させます。
予約投稿に失敗記事がなければ何もしません。
10記事ずつ徐々に公開していくので、処理もそんなに重くなる心配もありません。
注意点としては失敗を未然に防ぐ機能ではなく、失敗していれば対応する、といプラグインです。
先述のように「アクセスが少ないけど予約投稿したい!」という場合におすすめですね。
WP Missed Scheduleのダウンロード
このプラグイン悲しいことに私が初めてダウンロードしようとした時にはすでに、
公式のWordPressのプラグインページからなくなっていました。
いろいろ探すもダウンロードできるサイトがなく諦めかけていたところひとつだけありました。
使い方も単純で、WP Missed Scheduleをダウンロードし解凍したら、
pluginsフォルダに配置して、あとはWordPressの管理画面で有効化してあげるだけです。
これで予約投稿が失敗しても、自動的にプラグインが投稿し直してくれるようになります。
最新記事 by よっき (全て見る)
- 「圧着」と「圧接」の違い!コネクタを使った効率的な配線作業! - 2019年10月26日
- 夏の暑さ対策は大丈夫?冷却性能抜群のおすすめCPUクーラー!メモリに干渉しない最強の商品を紹介! - 2018年5月1日
- 自作PC弐号機のケースを換装!SilverStone製のミニタワーで冷却性とかっこよさを追求! - 2018年3月11日
スポンサードリンク