WordPressの予約投稿が失敗する件の解決方法

WordPress2.6以降には、予約投稿という便利な機能があります。
未来の日付で投稿すると、その日付になったときに自動的に公開してくれる、というものです。
(厳密には、「その日付以降に誰かがアクセスしたとき」です。サーバーのCronを使っているわけではなく、内部プログラムが指定時刻に HTTP リクエストを発行する仕組みだそうなので。誰もいないシベリアの森で木が倒れたが、誰もその音を聞かなかった。その木は本当に倒れたか?というやつです。)

しかしこの予約投稿が、どうもうまく機能しないという声が多いようです。
WordPressのサポートフォーラムを日本版、本家と相当数見て回ったけど、みんなおろおろと困っているばかりで、有効な解決策がないようでした。「自分の場合はこれで解決」という声はありましたけど、決定打に欠けるというか。

僕もハマってしまったんですが、どうにか解決することが出来ました。
この解決方法は、
サーバーのroot権限があり
ターミナルで接続できること
が条件です。

WordPressの予約投稿機能を司るのは、WordPressフォルダ直下にある wp-cron.php というプログラムです。(これがないバージョンは予約投稿できません)
まず、これをwgetで取得してみてください。

wget http://yourdomain.com/wordpress/wp-cron.php

これでOKが出る人は、多分予約投稿出来ているか、あるいは全く別の問題です。
いつまで経っても帰ってこない、もしくは404エラーの場合は、この解決方法を試してみてください。

/etc/hosts
を編集します。

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost

デフォルトだとこんな感じでしょうか。

広告

ここに、WordPressが参照すべき、そのブログのドメインとIPを追加記述してあげます。

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
192.168.1.11           yurdomain.co.jp

このIPは、バーチャルホストの場合はそのローカルIPを、そうでない場合はグローバルIPを入れてください。

これでひとまず多分うまくいく、はず。対症療法に近いので、継続調査予定。

この辺が参考になりました。
WordPress Problem with Scheduled Post Solved | Busy Blogging Dot Com
WordPress › Support » Missed Schedule – Scheduled Posts Not Publishing With 2.7
この辺は参考になりませんでした。
WordPress › フォーラム » 予約投稿がうまくできません。
WordPress › フォーラム » 指定日(予約)投稿ができません
ここはちょっと参考になりました。
WordPress › フォーラム » Basic認証下で、予約投稿が効かない

About: dacelo


13 thoughts on “WordPressの予約投稿が失敗する件の解決方法”

  1. Pingback: k_kanamori
  2. Pingback: nisimura megumi

Leave a Reply

Your email address will not be published. Required fields are marked *