wordpressで予約投稿が失敗するときの解決方法
2014 June 07
製作中のウェブサイトで予約投稿のテストをしたら「予約投稿の失敗」の表示。
原因を調べてみたら簡単に解決したのでメモ。
▼ 対処法その1
ベーシック認証をかけていると失敗する
wordpressをベーシック認証によってアクセス制限された環境で運用している場合、予約投稿ができないことがあるようです。
今回私はこれが原因でした。
「予約投稿の失敗」が、ベーシック認証が原因なのかどうかは、wordpressをインストールしているサーバーにsshログインした状態で下記コマンドを実行します。(レンタルサーバーの場合はこの確認方法はできません)
$ wget http://hoge.com/wp-cron.php
成功時には「OK」とでます。
失敗時には「Authorization failed.」と返ってきます。
解決方法
.htaccessに「WordPressインストールサーバーのみ制限無しでアクセスできるようにする」という記述を書くことで正常に予約投稿できるようになります。
ベーシック認証の記述をしている.htaccessに下記の4行を追記します。
Satisfy Any order deny,allow deny from all allow from 000.00.0.0 ... ベーシック認証の記述
「allow from 000.00.0.0」の数字には、WordPressをインストールしているサーバーのIPアドレスを記述します。
▼ 対処法その2
Hostsに記述
hostsファイルに以下を追記します。
000.00.0.0 hoge.com
「000.00.0.0」の数字には、WordPressをインストールしているサーバーのIPアドレスを記述します。
▼ 対処法その3
プラグイン「WP Missed Schedule Fix Failed Future Posts」をインストール
WordPressを高速化してくれるキャッシュ系プラグイン(「W3 Total Cache」や「WP File Cache」など)を使用していると予約投稿が失敗している場合があるようです。
これが原因の場合、キャッシュ系プラグイン(「W3 Total Cache」や「WP File Cache」など)を停止するか、
もしくは「WP Missed Schedule Fix Failed Future Posts」をインストールして有効化します。
公式でリンク切れになっていたので、プラグインページはこちら↓
» https://slangji.wordpress.com/plugins/wp-missed-schedule/
これで解決しました!