MTで「AddClipIDが設定されていないか、他の設定に間違いがあります」というエラーを修正
- 2009/02/27 ,
- Movable Type

ウチのブログでは、ソーシャルブックマークに楽に登録してもらえるよう「AddClip」というサービスを使ってます。
これ、コードを貼り付けるだけでソーシャルブックマーク登録ボタンを記事ページに掲載できるものなんですが、以前から特定の記事だけ「AddClipIDが設定されていないか、他の設定に間違いがあります」というエラーが出ちゃってました。
なんでだろーと思い調べたところ、AddClipのFAQページにこんな記述が。
ブログ専用コードをご利用で、記事のタイトルに「’(シングルコーテーション)」が挿入されていると、設定値が正しく認識されずにエラーとなる場合があります。その場合は大変お手数ですが、シングルコーテーションを「'」という特殊文字に変換頂くか、ウェブサイト用コードをご利用ください。
あー、そーゆーことか。どうりで「Let‘s Note」の関連記事だけエラーだ出てるわけだ。それに気づけば後は簡単♪ってことで、AddClipのコードをエラーの出ない形に修正しました。
エラーの原因となっているのはこの部分。
AddClipsTitle = '<$MTEntryTitle$>';
これ、「<$MTEntryTitle$>」で記事タイトルを代入するようになってるんですが、このままだと「Let’s Note」の「’」が入っちゃって、文字列が途中で切れちゃうんですね。
そこで、このように修正。
AddClipsTitle = '<$MTEntryTitle encode_xml="1"$>';
「encode_xml="1"」というアトリビュートを追記しました。これは、XMLフォーマットで文字をエンコードしなさいよ、というものでして、こうすることで「’」が「'」という実体参照に置き換えられ、文字列が途中で切れずに済みます。
AddClipは、貼り付けるブログの種類にMovableTypeを選ぶことで、MT用のタグを含んだコードが生成されるんですが、FAQに載ってる内容で、しかもその改善方法があるんだから、最初からアトリビュートをつけたコードを吐き出してくれてもいいのになー。困ってる人、多いと思う。
