かわたま.net

Enjoy Creative! かわたまのwebメモ

wordpressで予約投稿が失敗するときの解決方法

2014 June 07

Tag:

製作中のウェブサイトで予約投稿のテストをしたら「予約投稿の失敗」の表示。

wordpressで予約投稿が失敗するときの解決方法

原因を調べてみたら簡単に解決したのでメモ。

▼ 対処法その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アドレスを記述します。

>> macでHosts設定の手順はこちらを参照

▼ 対処法その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/

これで解決しました!