サーバーの移転以来、トラックバックができていないようだと思いながらも、あまり記事を書いていなかったので確信を持てずにいました。思い当たる設定をいくつか直してみたのですが、やはり出ていっていませんでした。
検索してみると実にたくさん引っかかりましたが、どうやら
- wp-include/cron.php の wp_remote_post() の設定時間を長くする
- Smart Update Pinger プラグインを使う1)
- /etc/hosts の 127.0.0.1 にホスト名を加える
の 3 つの解決策に分類されるようです。
まず (1) をやってみましたが、ここでは何も起きず、(2) をやってみると「更新情報サービス」に設定してたところには ping を送信できましたが、トラックバックは別でした。
結局「移転以来」というのが鍵でした。移転というのはいわゆる「自宅サーバー」になった訳ですが、そこに問題がありました。
「自宅サーバー」というのは、つまりルーターの内側にあって、NAT により外側に見えるグローバル IP アドレスと、内側(自分自身を含む)から見えるプライベート IP アドレスが異なっている状態にあるということです。外向きの DNS は立てていたのですが、自分自身 (つまり pasero.net) を 127.0.0.1 や 192.168.x.x と引けなくてもこれまで特に問題はありませんでした (それはそれで驚き)。
「トラックバック」の仕組み上、これではいけないのですね。ひとつの解決策が (3) のように、/etc/hosts で WordPress のあるホスト名を 127.0.0.1 に対応させる方法です。ここでは、VIEWによるスプリットDNSという方法で、内向きの DNS を設定して解決しました。
- 後継のUltimate Plugins Smart Update Pinger というものがあるようです。 ↩
