[WordPress]AmazonLinkをWordPress 2.7に対応させる

Written by uechoco 1月 09
このエントリをはてなブックマークに追加[WordPress]AmazonLinkをWordPress 2.7に対応させるのはてなブックマーク被リンク数このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

WordPress 2.7にしてからずっと気になっていたのが、AmazonLinkプラグインが正しく描画されないことです。新規投稿画面を開くとページの先頭に描画されてしまいます。

amazonlink-default

WordPressプラグイン開発についての知識はないけれど、ぺちぱーの端くれですので、自分で調べて直してみました。

まずはAmazonLink.phpのソースを眺めていて気になったキーワードをGoogle先生にききます。3つ目のキーワードで「dbx_post_advanced」を調べたら、ビンゴでした。

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

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

publishToMixi 1.2.1をWordPress2.7対応させる。 | 独り言v6

プラグインは違えど、症状は同じ。どうやら、AmazonLinkプラグインが新しいプラグイン形式に対応していないようです。正確に言うと、フック関数のアクション識別子が古いようです。これをバージョンによって新しくしてやればいいわけですね。

直すところはAmazonLink.phpの109行目あたりの

php:
  1. add_action('dbx_post_advanced', array(&$this, '_dbxPost'));

という1行を次のように書き換えます。

php:
  1. global $wp_version;
  2. if (substr($wp_version, 0, 3)>= '2.5') {
  3.   add_action('edit_form_advanced',array(&$this, '_dbxPost'));
  4. } else {
  5.   add_action('dbx_post_advanced',array(&$this, '_dbxPost'));
  6. }

これをアップロード(もしくはプラグインエディタで直接編集)すれば、ページの先頭に描画されていたのが、しっかりと投稿画面の下の方に来ています。

amazonlink-layout-x

よくみると、タイトルデザインが適用されていませんね。

ついでなので、これも直してみました。といってもソースコードを載せると長くなるので、最後にダウンロードリンクを置いておきます。軽く修正内容を説明すると、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-fix-ue

見た目も他のプラグインと同じようになりました。これでAmazonLinkが使えるプラグインになりましたね!

さてさて、WordPress 2.7対応のAmazonLink.php(zip圧縮)を用意しました。AmazonLink.phpだけを圧縮しているので、ダウンロード、解凍後、AmazonLinkプラグイン(Ver 0.9.2)のフォルダ内の該当ファイルを上書きして下さい。ライセンスはAmazonLinkから引き継いでGPLとなります。

このエントリをはてなブックマークに追加[WordPress]AmazonLinkをWordPress 2.7に対応させるのはてなブックマーク被リンク数このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

4 Responses to “[WordPress]AmazonLinkをWordPress 2.7に対応させる”

  1. コメント by Miew on 2009 年 4 月 26 日 13 : 19 : 05

    始めまして、最近、WordPressを始めたばかりのMiewです。 大変有用な情報を提供いただきありがとうございます。

    amazonLinkは、よさそうだなぁと思っていたのですが、うまく動いていないような感じがしていたので助かりました。

    で、細かいことで申し訳ないのですが、書き変える場所のコードや書き換えコードの中の’&’と’>’がそれぞれ’&’と’>’に変換されて表示されているようです。 このままコピペなりタイプしてしまうと、エラーになってしまってプラグインが上手く起動出来なくなってしまいますので
    訂正していただいた方がよろしいのかと。

    原因は、おそらくSyntaxHighlighterを使っているせいだと思います。 SytaxHighlighterとWordPressを組み合わせると最初は良いのですが、編集を繰り返すと、&や<>等が’&’や’<>’にどんどん変換されてしまうそうです。

    詳しくは、「WordPressのSyntaxHighlighterを使うと無茶苦茶になるよ」に書いてありました。
    http://blog.aulta.net/2008/08/12/wordpress%E3%81%AEsyntaxhighlighter%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E7%84%A1%E8%8C%B6%E8%8B%A6%E8%8C%B6%E3%81%AB%E3%81%AA%E3%82%8B%E3%82%88/

  2. コメント by uechoco on 2009 年 4 月 26 日 13 : 56 : 42

    WordPressの進化が早いのでプラグインが追い付いていなかったりするんですよね。お役に立てて何よりです。

    SyntaxHilighterのコードは直しておきました。ご指摘ありがとうございます。SyntaxHighlighterの大元のエンジンがGeSHiなので、愛用しているのですが、GeSHiはどのWYSIWYGエディタとも相性が悪いんですよね。インデントスペースが消されたり、HTMLエンティティが変換されたり。特にインデントがなくなるのが一番厄介です。いつもはWordPressのHTMLビューで対応しています。

    幸いにもSytaxHighlighterを使うような人はプログラミングの知識がある方が多いので、各自の裁量で何とかなっているのがWordPress界なのかな。

  3. コメント by よしとも on 2009 年 8 月 9 日 16 : 54 : 06

    えーと、すみません AmazonLink の作者です(^^;
    忙しくてなかなか進まなかった Amazon の新しい仕様への対応が終わって、2.7以降での動作確認を始めたらフォームの出る位置がおかしいので情報を漁っていてたどり着きました。

    修正部分を取り込ませていただきますね。まだ未解決の問題があるのですが、タイムリミットが近いので今週末までにはベータ版として公開を予定しています。

    # GPLでよかった

  4. コメント by uechoco on 2009 年 8 月 9 日 22 : 59 : 51

    おお作者さんでしたか!お役に立てて何よりです。AmazonLinkのようないいプラグインがあるとブログが楽しくなります。
    私はプラグイン屋ではないので、修正内容でおかしなところがあるかもしれないので、そこら辺はよろしくお願いします。
    ずいぶん前に直したっきりだったので、ご連絡したほうがよかったのかもしれないですね。。

Comments RSS rss うえちょこ@ぼろぐ TrackBack Identifier URI rss うえちょこ@ぼろぐ

コメントをどうぞ