WordPress で外部サイトのURLをリンクする際に、URLを自動的にわかりやすいカード型表示に変換してくれるプラグインに、pz-linkcard という便利なものがあるのだが、これが実装が不十分でエラーを出しまくる。
リンク先の文字エンコードがちょっとおかしいとエラー、画像だとおもわれるデータが画像でないとエラーといった具合だ。
リンク先には様々なものがあるので、こうだと思っていたものがこうでない場合は多々あるのだが、そうだと決めつけてプログラムされていて、そうでなかった場合が想定されていないので、PHPがエラーを吐いて、その記事全体がエラーコードで埋まってしまう。
こうなってしまうと、プログラマでない人には対処が難しいかもしれないが、プログラムに手を入れる必要が出てくる。あるいは、そのURLは諦めるという方法もあるが…
修正自体はそれほどむずかしくなる、エラーログからエラー箇所を特定して、エラーが起きないように、事前にデータチェックをするか、エラーが起きた時に try – catch で逃がすかすれば良い。
今のところ、私が修正したのは、文字エンコード指定のエラーと、画像処理関係のエラー。文字エンコードは、判定箇所でエラーだったので、今時のWebはほぼUTF-8 なので、UTF-8固定でかわして、画像処理はデータが正しいBase64エンコードでない場合にエラーになるので、事前に正しいBase64データかどうかを確認するようにした。