2023/01/20

MovableTypeで「~Assetを正しいコンテキストで使用していません」というエラーメッセージ

数年来これといった収穫を残していない、何か誓いを立てたところで易々と残せる気もしない身としてはちょっと苦手な「年頭の挨拶」についての一考もまとめきらないうちに、困って解決してメモっておいたほうがよいことがでてきたので書き留めておきたい。本年もよろしくどうぞ。

掲題の件、MTで構築して納めたサイトの管理画面でサーバ移転後に発生してしまっていたエラー。
結論からいうと、↓のブログ記事のいうとおり、テンプレートタグをすべて小文字に直すことで見事解決することができた。「いつか同じことで困る人が現れるから書いておく」精神の人、本当にありがとう。

【MT】カスタムフィールドのテンプレートタグ名によるバグ【PostgreSQL・SQLite】

サーバの環境がどう変わったのかは把握していないのだけど、自分が出くわしたエラーの状況はリンク先に書いてあるのとまったく同じで、それまで正常に動作していたはずのカスタムフィールド(画像)タグで掲題のとおりのメッセージが表示され、再構築に至らなくなっていた。

解決法について、先述のブログ主さんはキャメルケースをやめて総小文字+アンダースコアのフィールド名に直したと書いているけど、テンプレート上でカスタムフィールドを記述するMTタグは、実は大文字も小文字も区別されないので、例えば「CustomImage」というタグ名だったなら、テンプレートに記述済みの<MTCustomImageAsset>~</MTCustomImageAsset>という記述を変える必要はなかった。カスタムフィールドの設定で「テンプレートタグ」欄を「customimage」に直して再構築すればそれでOK。

なぜか画像以外のカスタムフィールドは問題ないという不思議現象で、タグ記述は明らかに間違ってないから、仮に自力で問題箇所を切り分けられたとしても何故そうなるのか悩み果てたことだろうと思う。
解決に導いてくれたのがたった1件の記事だったので、後の人々のために加勢しておきたく記事にした次第。