読者です 読者をやめる 読者になる 読者になる

zuzuの開発日記

iMona@zuzu等の開発者であるzuzuの趣味や業務で学んだ事などを書き連ねるブログ

WP iTunesをECS4.0に対応させてみた。

ネタ メモ

元々、別のブログに合ったものですが、そのブログを閉鎖させるため、こちらに加筆訂正を加えながら移したものです。


どうもzuzuです。
僕がもう一つやっているとあるサイトではWP iTunesを使って自分が今再生している曲をサイトに表示させています。
ですがWP iTunesがCDジャケットを取得するためのAWS3.0は2008年3月31日に終了してしまいました。
それに気付かず4月の初めから使い始めた僕はずーっとなぜジャケットが表示されないんだゴラっ!と思っていたわけですが、
久しぶりにWP iTunesの紹介をしているサイト(http://blog.idiotcomputer.jp/2005/05/20_0024.php)を見てAWS3.0が使えなくなっている事に気付き、
それなら僕が最新版のアマゾンのWebAPIに対応させてやんよ、と意気込んで、
一時間半後……たった今、その対応を完成させました。
ということで今回はWP iTunesでジャケット写真の取得できるように修正する方法を紹介したいと思います。
ちなみにこの記事はPHPがある程度理解できて、なおかつWP iTunesをPHP5で動かしていることが前提です。
それではレッツゴー!

修正するべき点は”wp-itunes.phpの中の”get_amazon_image”という関数だけです。

その関数の中身を以下のコードに置き換えて下さい。

注意:<?phpと?>は色づけするためのダミーです。実際、置き換える時は消して下さい。

<?php
     global $wpit_associate_id, $wpit_dev_token, $wpit_use_curl;

    //Build the URL to call Amazon with
    $keywords = $artist.” “.$album;
    $keywords = str_replace(*”, ” “, $keywords);
    $keywords = str_replace(”〜”, ” “, $keywords);
    $keywords = str_replace(.”, ” “, $keywords);
    $keywords = str_replace(” ”, ” “, $keywords);
    $keywords = urlencode($keywords);

    $amazon_url = “http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=$wpit_dev_token&AssociateTag=$wpit_associate_id&Operation=ItemSearch&ResponseGroup=Images&ContentType=text/xml&Page=1&Version=2004-10-04&SearchIndex=Music&Keywords=$keywords”;

    //Get the XML from Amazon
    $image_path = “”;
    $xml_data =simplexml_load_file($amazon_url);
    if($xml_data->Items->Request->Errors->Error->Code == “”){
        $image_path = $xml_data->Items->Item[0]->MediumImage->URL;
    }

    return $image_path;
?>

これで後は書き換えた”wp-itunes.php”をアップし直せば以降は正常にジャケット写真の取得が出来ます。
また

<?php
    $image_path = $xml_data->Items->Item[0]->MediumImage->URL;
?>

の部分の”MediumImage”を書き換える事によって取得する画像サイズの変更が出来ます。
「SmallImage」にすることによって小さい画像、
「MediumImage」にすることによって中ぐらいの画像
「LargeImage」にすることによって大きめの画像
となります。
またこのコードでは日本語のタイトルでも正常に検索できるように幾つかの日本語や全角スペースなどを半角スペースに変換してから、さらにURLエンコードしています。

ジャケット画像のリンク先を日本のアマゾンの検索結果にする方法

get_wp_itunes_store_linkという関数の中身を以下に書き換えて下さい。

<?php
    $keywords = $artist.” “.$album;
    $keywords = str_replace(*”, ” “, $keywords);
    $keywords = str_replace(”〜”, ” “, $keywords);
    $keywords = str_replace(.”, ” “, $keywords);
    $keywords = str_replace(” ”, ” “, $keywords);
    $keywords = urlencode($keywords);
    return “http://www.amazon.co.jp/gp/search?ie=UTF8&keywords=$keywords&tag=$wpit_associate_id&index=music&linkCode=ur2&camp=247&creative=1211″;
?>
広告を非表示にする