先日唐揚げを食べようとしていたら、親切な方から「おたくのWordPressさん、落ちてますよ」と教えてもらいました。どうしたことかと思ってみて見ると、シングルページが中身からっぽになってしまいました。
色々調べると、Amazonの商品情報を出すwp tmkm Amazonというプラグインがエラーを起こしてコケてたんですね。このサーバはnginxというのを使っているのですが、設定ミスでログを吐かなくなっているので、特定に時間がかかっちゃいました。
で、このプラグインは作者さんがすでに更新を停止されているので、待っていても直らないので、自分で直しました。
必要な方は以下からダウンロードしてください。
変更点は以下になります。
- PHP4対応だったので書き直し、5.3でもエラーが出ないように
- 手元にあったファイルを直しただけなので、元が誰のかは不明。
- よくわからないJSフォルダなどを消した
- 管理画面からアソシエイトIDなどを入力できるように
- リクエストをキャッシュするように変更
- リストを出力する関数があるが、ページネーションが変なので、そこはもう知らない。1ページにずらーっと出します。
以前もフォーラムでこっそり配ったことがあるので、もし僕がつくったやつを使っている危篤かな方がいたら、以下の変更点に注意してください。
- PEAR依存をやめて、API叩く部分を自前のコードに書き換え
- XMLパーサーをSimpleXMLElementに、キャッシュシステムをWordPressのTransient APIに
- 画像は24時間ぐらいキャッシュしなきゃいけないような気がしたけど、ドキュメントあさってもわかんなかった
アップロード手順はこんな感じです。
- 以前のプラグインを停止する
- Amazon Web ServiceとAmazonアフィリエイトに登録して、アクセスIDなどを取得する。
- wp-tmkm-amazonプラグインフォルダを全部削除する
- ダウンロードしたzipを解凍してアップロード
- プラグインを有効化する
- 管理画面の設定 > WP Tmkm Amazonへ移動し、速攻でアクセスID、シークレットアクセスIDを入力する
手順5から手順6の間にサイトを訪問されるとエラーになりますので急いでください。
このプラグインを緊急避難的にメンテナンスしてますが、他にもやってる人がいるっぽいですね。ランダムにアソシエイトIDを僕のに書き換えるような設定にすればやるき出るかなーと思いました。動作確認のため、「アフィリエイト」で検索して出てきた書籍をぺたぺた貼っておきますね。
[429] [429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)
[429] [429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)
[429] [429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)