KUSANAGIとAmazonJS

Pocket

敷島神社

前のエントリーでAmazonJSとKUSANAGIは相性が悪いなどと記載してしまいましたが、誤りでしたので訂正させていただきます。

相性が悪いと思った不具合事象は、AmazonJSでのAmazonへのリンク表示です。本来「画像、商品名、メーカー、価格、商品ランキング」等が表示されるべきエリアに「画像、商品ランキング(SalesRank)」しか表示されないという事象。

これはPHP7に切り替える事で、解決しました。root権限で以下のコマンドを実行ですね。

kusanagi php7

以前に、HHVMからPHP7に変更しても結果は変わらないと記載したのですが、これはキャッシュの問題でした。つまり上記コマンドを実行して、その直後からAmazonリンクが本来の形に反映されると思い込んでいて、「反映されないなー、PHP7にしても無駄だったか」となっていたのですが、実はHHVM時に取得したキャッシュを表示していただけでした。

AmazonJSの説明にも書いてありました。

商品情報を取得はjavascriptではなくサーバサイドのPHPで実行されます。このためWordPress側でページキャッシュを使っている場合にページキャッシュが更新されるまでAmazonの商品情報が更新されないことがあります。

ただ、自分の場合KUSANAGIプラグインの”ページキャッシュ”は有効にしていなかったのですが、この設定とは別におそらくKUSANAGIの独自APの中でデフォルトでキャッシュされる部分があるのでしょう。

[amazonjs asin=”B001NRHRU0″ locale=”JP”]

という事でPHP7に切り替えてしばらくしたら、ご覧の通り本来の情報が取得できました。価格情報の横に(YYYY/MM/DD HH:MM時点)と表示されているのがサーバ側でキャッシュされた時間ですね。

キャッシュがクリアされる時間がどのくらいなのかは、体感ですが1日ないし2日くらいです。

また、蛇足かもしれませんが、AmazonJS内がSalesRankなど英語表記になっている場合や、コメント欄が英語表記になってしまっている場合は、KUSANAGIプラグインの”翻訳アクセラレーター”にて「高速化を有効にする」のチェックを外す事で解決すると思います。

KUSANAGIは便利です。それは間違いありません。そして簡単です。簡単な故に、知らない設定がデフォルトで色々組み込まれているので、何か不具合を見つけたら、まずは設定を見直すことをオススメします。

Pocket