久々にプログラミングの勘を取り戻そうとかと思いつつ、wordpress2.7にアップデートしたところ動かなくなってしまったpublish To Mixiプラグインを修正してみた。



通常下の方に表示される投稿のためのフォームが、なぜか左上に表示される。怪しいと思っていたら、単純にHTMLタグより先に出力してしまっているらしい。

何かつらつらと読んで、とりあえずplugin APIとアクションに付いての説明を理解する。なんとなくアスペクト指向っぽいな、と思いつつフックのコードを見る。なんとなくフックの挙動が違っているな・・・と思いつつ、grep使って、同様のフックを使っているAll-in-one SEOプラグイン(宝の持ち腐れ:))と見比べるとビンゴ。2.5以降は別のフックを使っているようだ。と言うわけで同様のアクションに置き換えてみるとあっさり動作。

変更前:
add_action( 'dbx_post_advanced', 'renderOption');
add_action( 'publish_post', 'publishHandler' );

変更後:
if (substr($aiosp->wp_version, 0, 3) >= '2.5') {
add_action( 'edit_form_advanced', 'renderOption');
} else {
add_action( 'dbx_post_advanced', 'renderOption');
}
add_action( 'publish_post', 'publishHandler' );

こんな感じ。プラグインエディタならそのまま編集できるのでありがたい。別途ダウンロード版を用意する予定は今の所ありません。