OXY NOTES

WordPressの予約投稿が失敗した時に試す4つの解決策

決まった時間に記事を投稿できる便利な予約投稿

SNSでのバズり具合が記事の閲覧者を大きく左右する昨今、読者が読みやすい・アクション起こしやすい時間に更新するということも大切なテクニックの1つです。

そんな重要な投稿時間を予め登録できる「予約投稿」。
ぜひ有効に使いたいところですが、結構投稿に失敗するお茶目さんであることが知られています。

調べてみると4つの解決策に集約されるようなのでまとめてみました。


目次

1.ベーシック認証を利用している場合
2.キャッシュ系プラグインが原因の場合
3.代替Cronを使った対処法
4.それでもだめならWordPressをアップデートしてみる


1.ベーシック認証を利用している場合

WordPressの予約投稿は、「wp-cron.php」で擬似的にcronのような自動実行をしています。予約投稿の際は、WordPress自身がWordPressにアクセスして投稿を行います。

投稿画面にベーシック認証を導入している場合は「wp-cron.php」が認証を行えないため、予約投稿が失敗してしまします。

そこでWordPressが設置してあるIPアドレスに対してはベーシック認証を無効にする必要があります。

Satisfy Any
order deny,allow
deny from all
allow from 192.168.0.0

# ベーシック認証の記述
(省略)

192.168.0.0の部分はWordPressを置いているサーバのIPに変更してください。
IPがわからないという方はコチラにドメインを入力すればIPはわかります。

参考URL

http://ja.forums.wordpress.org/topic/8010
http://kotori-blog.com/wordpress/future_miss/


2.キャッシュ系プラグインが原因の場合

などなど、名だたるキャッシュ系プラグインが原因になりうるとのことです。それぞれバージョンによって動かなかったり、オブジェクトキャッシュを有効にすると動かなくなるなど、イマイチ原因も判然としません。

そんなときは「WP Missed Schedule Fix Failed Future Posts」というプラグインのインストールをお勧めします。

注意点として、5分程度のラグが発生することがあります。厳密に◯分ちょうどに投稿したいという場合には、キャッシュ系のプラグインを無効にする必要があるかもしれません。


3.代替Cronを使った対処法

WordPressには予約投稿がうまく動作しない時のために、「代替Cron」という仕組みが用意されているようです。
ルートディレクトリにある「wp-config.php」に以下の記述を追加するだけで有効になります。試しに利用してみてください。

define('ALTERNATE_WP_CRON', true);

参考URL:
http://ja.forums.wordpress.org/topic/13258
http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86#.E4.BB.A3.E6.9B.BF_Cron


4.それでもだめならWordPressをアップデートしてみる

私はWordPressを3.9.0から3.9.1にしたところ直りました。

今まで予約投稿できていたのに急にできなくなっておかしいな?」という場合はWordPressを最新のものにアップデートしてみてください。


最後の対処法はなんとも閉まらない話ですが、新しいバージョンが出たからといってすぐに飛びつくと、バグがあるかもしれないよ。という話でした。