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