[う]MTで「AddClipIDが設定されていないか、他の設定に間違いがあります」というエラーを修正

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

AddClip

ウチのブログでは、ソーシャルブックマークに楽に登録してもらえるよう「AddClip」というサービスを使ってます。

これ、コードを貼り付けるだけでソーシャルブックマーク登録ボタンを記事ページに掲載できるものなんですが、以前から特定の記事だけ「AddClipIDが設定されていないか、他の設定に間違いがあります」というエラーが出ちゃってました。


なんでだろーと思い調べたところ、AddClipのFAQページにこんな記述が。

ブログ専用コードをご利用で、記事のタイトルに「’(シングルコーテーション)」が挿入されていると、設定値が正しく認識されずにエラーとなる場合があります。その場合は大変お手数ですが、シングルコーテーションを「'」という特殊文字に変換頂くか、ウェブサイト用コードをご利用ください。

あー、そーゆーことか。どうりで「Lets Note」の関連記事だけエラーだ出てるわけだ。それに気づけば後は簡単♪ってことで、AddClipのコードをエラーの出ない形に修正しました。

エラーの原因となっているのはこの部分。

AddClipsTitle  = '<$MTEntryTitle$>';

これ、「<$MTEntryTitle$>」で記事タイトルを代入するようになってるんですが、このままだと「Let’s Note」の「’」が入っちゃって、文字列が途中で切れちゃうんですね。

そこで、このように修正。

AddClipsTitle  = '<$MTEntryTitle encode_xml="1"$>';

「encode_xml="1"」というアトリビュートを追記しました。これは、XMLフォーマットで文字をエンコードしなさいよ、というものでして、こうすることで「’」が「&apos;」という実体参照に置き換えられ、文字列が途中で切れずに済みます。

AddClipは、貼り付けるブログの種類にMovableTypeを選ぶことで、MT用のタグを含んだコードが生成されるんですが、FAQに載ってる内容で、しかもその改善方法があるんだから、最初からアトリビュートをつけたコードを吐き出してくれてもいいのになー。困ってる人、多いと思う。