このブログではずっと「tmkm-amazon」という、古いプラグインを使ってAmazonのアフィリエイトリンクを載せていたのだが、最近
アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。
というエラーが出てリンクが表示されなくなってしまった。原因はわからなかったが、
「そういえば最近WordPressを5.2にメジャーバージョンアップしたな。それに対応してないのかな?」
と思い、もう古いプラグインだから改善されないだろうし、乗り換えを検討して
Amazon公式のWordPressプラグインを入れてみた。
しかし、投稿画面に出てきた検索ボタンを押しても動かない。
「WordPressを新しくしたから、PHPも新しくしないとうまく動かないのか?」
と思い深く考えずPHPを7.3に変更してみたら、PHPのエラーがやたら出るようになってしまった。
- Parse error: syntax error, unexpected 'new' (T_NEW) in
こういうの。ネットで調べると、
- $○○ = & new ××
と書いてあるところを
- $○○ = new ××
にすると動くらしい。よくわからんがやってみたら直った。
すると、次はtmkm-ammazonのプラグインで、「ereg」っていう関数がないと怒られた。
PHPのマニュアルを見ると、「preg_match」に置き換えられたとのことなので、書き換えてみる。
すると、
- Delimiter must not be alphanumeric or backslash in
と出る。どうもpreg_matchでは正規表現文字列を「/」のようなデリミタで囲まないとダメらしい。
仕方ないので、正規表現の文字列を作ってるところの前後に「/」を付与して動かす。
・・・すると、エラーは一通り消え、
アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。
が出てきた・・・フリダシに戻る。
仕方ないので、上のエラーが出る場合もう何も表示しないように対処しておいた。
アフィリエイトリンクは何とかして復活させよう。
後、この記事を書くために「iG:SyntaxHilighter」を使おうとしたら、
- Warning: Illegal string offset atts in
というエラーが出た。どうもPHP7.1以降は変数を自動で配列にしてくれないとか言う原因らしい。
そこで明示的に配列化するコードを追加してみる。ここ。
- if ( array_key_exists( $tag, $this->__geshi_language ) ) {
- if (!is_array($atts)) { //追加
- $atts = array(); //追加
- }//追加 $atts['language'] = $tag; //shorthand tag used, so tag name is language
- }
取り敢えず動いたが、「view plain text」のリンクをクリックしても何も起きん。
もう、一度WordPressに大手術が必要だな・・・。