[WordPress]AmazonLinkをWordPress 2.7に対応させる
WordPress 2.7にしてからずっと気になっていたのが、AmazonLinkプラグインが正しく描画されないことです。新規投稿画面を開くとページの先頭に描画されてしまいます。
WordPressプラグイン開発についての知識はないけれど、ぺちぱーの端くれですので、自分で調べて直してみました。
まずはAmazonLink.phpのソースを眺めていて気になったキーワードをGoogle先生にききます。3つ目のキーワードで「dbx_post_advanced」を調べたら、ビンゴでした。
久々にプログラミングの勘を取り戻そうとかと思いつつ、wordpress2.7にアップデートしたところ動かなくなってしまったpublish To Mixiプラグインを修正してみた。
通常下の方に表示される投稿のためのフォームが、なぜか左上に表示される。怪しいと思っていたら、単純にHTMLタグより先に出力してしまっているらしい。
プラグインは違えど、症状は同じ。どうやら、AmazonLinkプラグインが新しいプラグイン形式に対応していないようです。正確に言うと、フック関数のアクション識別子が古いようです。これをバージョンによって新しくしてやればいいわけですね。
直すところはAmazonLink.phpの109行目あたりの
という1行を次のように書き換えます。
これをアップロード(もしくはプラグインエディタで直接編集)すれば、ページの先頭に描画されていたのが、しっかりと投稿画面の下の方に来ています。
よくみると、タイトルデザインが適用されていませんね。
ついでなので、これも直してみました。といってもソースコードを載せると長くなるので、最後にダウンロードリンクを置いておきます。軽く修正内容を説明すると、AmazonLink.phpの500行目付近から_dbxPost()関数の定義が始まっています。ここをAll in One SEO Packプラグイン(Ver 1.4.6.16)のall_in_one_seo_pack.phpの1402行目から始まるadd_meta_tags_textinput()関数を参考に修正します。All in One SEO Packでは、バージョンが2.5以上かどうかで出力するレイアウトタグを変更しています。これをレイアウトブロックの先頭と末尾で行えばよいわけです。
見た目も他のプラグインと同じようになりました。これでAmazonLinkが使えるプラグインになりましたね!
さてさて、WordPress 2.7対応のAmazonLink.php(zip圧縮)を用意しました。AmazonLink.phpだけを圧縮しているので、ダウンロード、解凍後、AmazonLinkプラグイン(Ver 0.9.2)のフォルダ内の該当ファイルを上書きして下さい。ライセンスはAmazonLinkから引き継いでGPLとなります。


