- 2008年4月 6日 14:34
- MTカスタムフィールド | MovableType


MT4.1のカスタムフィールドで生成されるタグを記述しないとカスタムフィールドの内容は表示されません。このことから、カスタムフィールド内にフィード配信しないコンテンツを含めて利用しよう、という使い方です。
W3CのFeed Validation Service を利用して、フィードチェックをすると、フィードの要素内に、scriptタグが含まれてると、以下のような警告が出ます。
element should not contain script tag
この警告についての説明ページをみますと、
http://validator.w3.org/feed/docs/warning/SecurityRisk.html より引用
Some feed elements are allowed to contain HTML.However, some HTML tags, like script, are potentially dangerous and could cause unwanted side effects in browser-based news aggregators.For this reason, these potentially dangerous tags are often stripped out on the client side.
JavaScriptのように危険なコードが含まれる可能性のあるタグは、クライアント側で除去されることがありますよ。といったところでしょうか。
例えば、ブログパーツを記事で紹介するようなとき記事内に公開されているソースコードを埋めたいようなことがあります。
ところが、記事本文内にscriptタグで埋め込みますと、Feed Validation Serviceで上記の警告がでてしまいます。
これを回避するのに、feedのテンプレートで、MTEntryExcerptは配信しないようにして、追記部分にソースコードを埋め込む、というのを以前やっていたことがありました。
そのほかには、フィードを概要配信に変えてしまうという手もあります。
この辺のお話は、WingMemoさまの記事、「RSSを配信するということ(2)」が参考になると思います。
ただこれらの方法ですと、全文配信派(この場合、読み手の立場からになるのか?)なひとからすると、一寸不満な部分はあると思います。
そのような場面で、カスタムフィールドを使うというのを考えました。
カスタムフィールドの説明などは、www.movabletype.jpのドキュメントにあるとおりなので、細かな説明は省略します。
冒頭に書いたとおりですが、カスタムフィールドを作成して生成されたタグをページに埋め込まないことには、カスタムフィールドの内容は表示されません。
記事ページ用のカスタムフィールドとして登録しておき、フィードのテンプレートはそのまま何も手を加えなければ、フィードでJavaScriptコードは出力されなくなるというわけです。
以上はカスタムフィールドを利用したほんの一例でしかありません。サイトの運営方針などもありますし。JavaScriptの動作確認をするのなら、テストページを作成して記事内でリンクの形のほうがいいのかも知れません。
おまけですが、例えば、なぞかけエントリなどで、「そのこころは」の部分をカスタムフィールドでといった使い方も考えられるでしょうね(これだけのために使うというのもアレなのでようせんけど)。
- Newer: MTからVoxへクロスポスト
- Older: FOAFのXSLTテンプレートをVicunaで