WordPressで予約投稿という機能がある。その機能を使ってみたのだが、なぜか予約投稿失敗と出てしまった。
結論から言うと2点問題があった。
- ホスト名が引けていない
- 接続がタイムアウトする
この2点を修正していく。
1.ホスト名が引けていない問題の修正
予約投稿はブログへのアクセスがあった際に、投稿すべき記事があった場合に予約された投稿処理を行う仕組みになっているようだ。
予約投稿を実行する際には、HTTP通信で投稿処理を行なっている。そのため、Webサーバからホスト名でアクセス出来ないといけない。
うちの環境の場合ネットワーク内からホスト名を引こうとするとエラーになってしまう。
解決方法として
/etc/hosts
に
192.168.0.2 hmhr.ath.cx localhostname
のように定義した。
2.接続がタイムアウトする
これは
\wp-includes\cron.php
の250行目付近で
wp_remote_post()という関数を読んでいて、そこで ‘timeout’ => 0.01となっているので0.01を10とかにする。(このタイムアウトは秒数単位)
この設定で、とりあえず予約した記事が投稿されることが確認できた。
とりあえず、しばらくこれで様子を見てみよう。