AmazonJSが表示されない原因と解決方法
WordPressでアフィリエイトをやっている人の中にはAmazonJSというプラグインを使用しているケースが多いかと思います。
そこでこんなトラブルに遭ったことはありませんか?
「今まで問題無かったのに急に表示されなくなった!」
今回はこの原因と解決方法について教えたいと思います。
AmazonJSが表示されない原因
AmazonJSが急に表示されなくなる原因は商品のリンク切れです(あるいは他のプラグインとの干渉の可能性もありますが…)。
Amazonに出品されていた商品が削除されることでリンク切れになってしまうんですよね。
ページ内に複数のAmazonリンクを設置している場合、1つでもリンク切れになると全てのリンクが表示されなくなってしまうのがこの問題の厄介なところ。
かといって、全てのページを定期的にチェックして、リンク切れを調べて回るのも手間ですし非現実的かと思います。
AmazonJSの不具合を解消する方法
ページ数が少なければ商品リンクを修正するのもアリだと思いますが、数百ページに及ぶサイトであれば無理です。
根本的な方法で解決してしまいましょう。
この不具合が起こるのはAmazonJSに商品切れの際の処理が書かれていない為なのですが、それを修正すれば問題は解決するという事です。
WordPressのバージョンによって多少画面は違いますが、下記の画面を参考に管理画面メニューの【プラグイン】→【プラグイン編集】を開き、『AmazonJS』を選択し、amazonjs.jsというファイルを編集します。
277行目付近に下記のコードがあることを確認します。
function find(asin, countryCode) { for (var i = 0, length = items.length; i < length; i++) { if (items[i].ASIN == asin && items[i].CountryCode == countryCode) { return items[i]; } } }
これを以下のように修正します。
function find(asin, countryCode) { for (var i = 0, length = items.length; i < length; i++) { if(!items[i]) continue; if (items[i].ASIN == asin && items[i].CountryCode == countryCode) { return items[i]; } } }
if(!items[i]) continue; という記述が加わった感じですね。
意味合い的には「商品の情報が無い場合は処理をスルーする」というものです。
即席のコードなので完璧とは言えませんが、私のサイトで確認した限りでは動作するようになっているので良しとしましょう。
なお、プラグインをアップデートすると記述が消えてしまうので注意です。アップデートした際は動作確認をして、同じ現象が起こる場合は再び記述を追加しましょう。