ダリの雑記:WEBプログラム版

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

 

おこったバグ現象

まずカスタムフィールドにて、テンプレートタグ名「EntryProductImageData」という「画像」用フォームを作成。

次にテンプレートにて

[html]
<mt:If tag="EntryProductImageData">
<mt:EntryProductImageDataAsset><$MTAssetThumbnailLink width="200" $></mt:EntryProductImageDataAsset>
</mt:If>
[/html]

と記述したところ、再構築時に以下のようなエラーが出ました。

エラー内容:EntryProductImageDataAssetタグを正しいコンテキストで使用していません。

もちろんMTEntriesタグの中で使ってますし、変な記述もしてないはずなんですが、記事作成・編集にて「EntryProductImageData」のカスタムフィールドに画像を登録すると必ずこのエラーが表示されてしまいます。

※ちなみに普通のレンタルサーバなどではこの現象は起きません。独自に専用サーバを立てているところに設置すると、まれにこのようなことが起きます。

 

解決方法

原因は全く分からなかったのですが、「そういえば以前も確か似たようなことあったなぁ。あの時は確かカスタムフィールドのテンプレート名に大文字を入れたのに勝手に小文字に変換されたんだっけ・・・」というのを思いだし、以下の対処方法を試しました。すなわち

テンプレートタグに大文字は使わない。

カスタムフィールドのテンプレートタグ名を「entry_product_image_data」に変更し、テンプレートの記述を

[html]
<mt:If tag="entry_product_image_data">
<mt:entry_product_image_dataAsset><$MTAssetThumbnailLink width="200" $></mt:entry_product_image_dataAsset>
</mt:If>
[/html]

に変更したところ、正常に再構築され、サムネイルも表示されるようになりました。

ググってもなかなか原因が出てこないので焦りましたよ。

改めて「MT テンプレートタグ名 大文字」でググったらこんなページが。

カスタムフィールドのテンプレートタグを使うと、再構築でエラーが発生する | Movable Type 4 FAQ

そういえば以前発生した時はSQLiteで、今回のサーバはPostgreSQLだった・・・

なんてやっかいな・・・

カスタムフィールドのテンプレートタグ名を付けるときは大文字は使わないほうがよさそうですね。

モバイルバージョンを終了