技術日記
Amazon Reloaded Plugin改造Edit

WordPressでAmazonから書誌情報を取得するプラグインは、ググったらWP-Amazonという名前をあちこちで見かけるんだけど、WordPressの管理ツールからプラグイン検索しても出てこない。よくわからないんで、Amazon Reloadedとかいうのをインストールしてみた。

投稿ページでAmazonを検索して、見つかった商品の画像やタイトルをリンク付きで投稿フォームに挿入する、という基本的な機能は十分なんだけど、これは著者情報とかはとってきてくれないらしい。著者情報は個人的には必須なんで改造して対応させた。

amazon-reloaded-for-wordpress.php

$imageUrls = array();
 $images = $item->getElementsByTagName('URL');
 for ($imageNumber = 0; $imageNumber < $images->length; $imageNumber++) {
 $imageUrls[] = $images->item($imageNumber)->nodeValue;
 }
// ↓ここから↓
 $authorNames = array();
 $authors = $item->getElementsByTagName('Author');
 for ($authorNumber = 0; $authorNumber < $authors->length; $authorNumber++) {
 $authorNames[] = $authors->item($authorNumber)->nodeValue;
 }

 $actorNames = array();
 $actors = $item->getElementsByTagName('Actor');
 for ($actorNumber = 0; $actorNumber < $actors->length; $actorNumber++) {
 $actorNames[] = $actors->item($actorNumber)->nodeValue;
 }

 //$item = array('asin'=>$asin, 'name'=>$name, 'detailPageURL'=>$detailPageUrl, 'imageURLs'=>$imageUrls);
 $item = array('asin'=>$asin, 'name'=>$name, 'detailPageURL'=>$detailPageUrl, 'imageURLs'=>$imageUrls, 'authors' => $authorNames, 'actors' => $actorNames);
// ↑ここまで↑

amazon-reloaded.js

var $newRow = jQuery('#arfw-result-template').clone().attr('id','arfw-result-' + this['asin']).addClass('arfw-result');
 $newRow.html($newRow.html().replace(/%ASIN%/g,this['asin']).replace(/%NAME%/g,this['name']).replace(/%DETAIL_PAGE_URL%/g,this['detailPageURL']).replace(/%IMG_SRC%/g,this['imageURLs'][0]).replace(/%IMG_SRC_MED%/g,this['imageURLs'][1]).replace(/%IMG_SRC_LRG%/g,this['imageURLs'][2]));
// ↓ここから↓
 if (this['authors']) {$newRow.html($newRow.html().replace(/%AUTHOR%/g,this['authors'].join(', ')));}
 if (this['actors']) {$newRow.html($newRow.html().replace(/%ACTOR%/g,this['actors'].join(', ')));}
// ↑ここまで↑

meta-box.php

<td>
 <p></p><a target="_blank" href="%DETAIL_PAGE_URL%">%AUTHOR%『%NAME%』%ACTOR%</a> <a href="%DETAIL_PAGE_URL%"><?php _e( 'Send Link to Editor' ); ?></a></p>
</td>

なんて感じで、%AUTHOR%と%ACTOR%で著者と出演者をテンプレートに埋め込めるようにした。

Published At2010-05-11 10:01Updated At2019-12-30 15:34