amazonアソシエイトが重いのを解消
- 2023.08.07 Monday
- 14:43
前回の投稿から10年以上立ってますが…。
サイトリニューアルしたけど、一部のページが表示されたあともずっと読み込み中のままぐるぐる矢印が回ってた問題、何が重いのか分からなかったが、やっと判明。
受賞作候補作のアマゾンリンクつけてるページが重かったわけだが、amazonアソシエイトの画像リンクについてくる1px画像が原因だった。
ためしにいくつかのページで1px画像を削除したら、すぐ表示完了した。
しかしアマゾンリンクは年度ごとに少ないときでも5個、多いとき(コミック巻数多いなど)は数十個ある。1つ1つ修正するのはうんざりなので、CMSの強みで一括でできないか考えた。
以下のMODXのスニペットを作った。
アソシエイトの画像リンクは
<a href="http://www.amazon.co.jp/gp/product/**ほげほげ**&tag=アソシエイトID"><img border="0" src="画像のURL&tag=アソシエイトID" ></a><img src="http://ir-jp.amazon-adsystem.com/**ほげ**" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
という形なので、ページに書き出すときにaタグで囲まれている部分のみ取り出せばいい。
スニペット名は a取り出す
phpの正規表現でこう書く。
$output = preg_match("/<a(.*?)<¥/a>/", $output, $match);
print $match[0];
preg_matchの使い方はこちらを参考
画像ダグを記載してるテンプレート変数に
[+TV変数:a取り出す+]
として無事1px画像をページに書き出さないようにできました。
この1px画像、デザイン上も邪魔なのでcssで非表示にしてたんですが、元から書き出さないほうがスマート。
- スニペット
- -
- -