WordPress 更新 ping 高速化
WordPress 2.0 系では大量に更新 ping を設定すると、投稿後の待ち時間が大変長くなるという問題があります。 全更新 ping サイトに ping が飛ぶまで待たされるわけですね。
先日、kohaku さんと”なんとかならんか”と話していたので、ちょっとコードを追ってみました。 要は、2.0 系で改良されたトラックバック高速化や、ぼくがほげった Google Sitemap みたいにポストの後裏で動いてくれれば見た目高速化になるわけです。
で、絶対本家でも同じことやっていると思ってリポジトリみてみたところ、trunk でやっぱりやっていました。 これ、もらってくれば 2.0 系でも高速化できます。(ただコアファイルいじる必要あります)。まずは、簡単版。
wp-includes/default-filters.php
から、
- add_action('publish_post', 'generic_ping');
とっちゃう。 でもって、
execute-pings.php
- if ( is_array($trackbacks) ) {
- foreach ( $trackbacks as $trackback ) {
- do_trackbacks($trackback->ID);
- }
- }
- generic_ping();
最後に、generic_ping(); を追加。
こんなんで動くと思います。 で、ですね。 体力無くて試してないのです。 エラーになったらごめんなさい。 どなたかお願いします。 🙂
さて、この execute-pings.php たたき方式ですが、やはり無理があったようで(ぼくもあんまり好きではなかった..)、その後の trunk ではスケジューラの機能が実装され、トラックバックや更新 ping もこれに組み込まれる形になっているようです。
#2425 (Pseudo-Cron) – WordPress Trac – Trac
Add a Pseudo-Cron implementation to WP core. Useful for handling future posts, scheduling backups, etc.
うんうん、やっぱりこうでなくちゃ・・・。 2.1 系からの実装です。 本気の方は、2.0.2 にマージしてみてはいかがでしょうか。 🙂