カスタムフィールドを利用する
基本的な利用方法
各種類のカスタムフィールドの基本的な利用方法は以下のページをご参照ください。
- 記事のカスタムフィールドを利用する
- カテゴリのカスタムフィールドを利用する
- ウェブページのカスタムフィールドを利用する
- フォルダのカスタムフィールドを利用する
- アセットのカスタムフィールドを利用する
- コメントのカスタムフィールドを利用する
- サイトのカスタムフィールドを利用する
- ユーザーのカスタムフィールドを利用する
カスタムフィールドの入力欄を投稿画面に表示する
追加したカスタムフィールドを記事の投稿画面で表示します。入力が必須のカスタムフィールドは、自動的に表示されます。必須でないものは、画面右上の[表示オプション]をクリックし、チェックボックスを選択して投稿画面に表示します。
カテゴリ関連付けたカスタムフィールドは、そのカテゴリを選択した場合にのみ表示されます。表示オプションで設定すると、カテゴリの選択状態にかかわらず、常時入力欄が表示されるようになります。
またカスタムフィールドや、タグ、概要などの入力欄をドラッグ&ドロップして、投稿画面内で並び替えることができます。
その他のシステムオブジェクトに追加したカスタムフィールドの入力欄がある画面は、以下の表をご参照ください。
システムオブジェクト | 入力欄がある画面 | テンプレートタグ |
---|---|---|
記事 | 記事の投稿画面(表示オプション) | MTEntryCustomFields |
ウェブページ | ウェブページの投稿画面(表示オプション) | MTPageCustomFields |
コメント | コメント編集画面とサイトのコメント欄 | MTCommentCustomFields |
アイテム | アイテムの編集画面(アイテム対象) | MTFileCustomFields |
オーディオ | アイテムの編集画面(オーティオ対象) | MTAudioCustomFields |
ビデオ | アイテムの編集画面(ビデオ対象) | MTVideoCustomFields |
画像 | アイテムの編集画面(画像対象) | MTImageCustomFields |
カテゴリ | カテゴリの編集画面 | MTCategoryCustomFields |
フォルダ | フォルダの編集画面 | MTFolderCustomFields |
テンプレート | テンプレートの編集画面 | MTTemplateCustomFields |
子サイト | 子サイトの全般設定 | MTBlogCustomFields |
親サイト | 親サイトの全般設定 | MTWebsiteCustomFields |
ユーザー | ユーザー情報の編集とプロフィールページ | MTAuthorCustomFields |
入力時の制限事項については『カスタムフィールドの制限事項』をご参照ください。
カスタムフィールドの入力内容をサイトで表示する
入力したカスタムフィールドをサイトで表示するには、テンプレートにカスタムフィールドのテンプレートタグを追記します。テンプレートタグは、カスタムフィールド作成時に指定したものを記述します。カスタムフィールドの一覧で [表示オプション] をクリックし、タグを選択すると、各カスタムフィールドのテンプレートタグが一覧に表示されます。
カスタムフィールドの内容を表示したいテンプレートに、テンプレートタグを記述します。前述の例で追加したカスタムフィールドを表示するためには、以下のように記述します。
<mt:Entries>
<dl>
<mt:If tag="EntryCategory" eq="ドリンク">
<dt>提供形態</dt>
<dd>
<mt:If tag="EntryDataCold">[コールド]</mt:If>
<mt:If tag="EntryDataHot">[ホット]</mt:If>
</dd>
</mt:If>
<mt:If tag="EntryDataPrice">
<dt>価格</dt>
<dd><mt:EntryDataPrice /> 円</dd>
</mt:If>
<mt:If tag="EntryDataIngredients">
<dt>原材料</dt>
<dd><mt:EntryDataIngredients /></dd>
</mt:If>
</dl>
</mt:Entries>
カスタムフィールドの埋め込みオブジェクト(Embed Object)を表示する際の注意点
Movable Type の標準テンプレートでは、プロフィールやコメントのカスタムフィールド項目をサイトで表示する際に、安全のため HTML タグを除去して出力する sanitize="1" を指定しています。このため、カスタムフィールドの『埋め込みオブジェクト』で入力される <embed>や<object> タグは、標準の設定では除去されます。
タグを除去せずにカスタムフィールドの値を表示したい場合は、 sanitize="0" とすることで HTML をそのまま表示できます。ただし、これにより公開サイト上で任意の HTML を表示したり、JavaScript を実行することが可能になります。サイトのセキュリティ保護のために、信頼されたユーザーのみがその項目を編集できるように、コメント認証やユーザーの権限を厳しく設定してください。
カスタムフィールドで "0" を表示する
カスタムフィールドに数字の "0" を入力したときに、そのままでは、テンプレートタグで "0" を出力しません。これは、0 がプログラム的に FALSE を意味するためです。以下のように明示的に評価して出力する必要があります。
<mt:If tag="EntryDataPrice" eq="0"> <dt>価格</dt> <dd>無料</dd> </mt:If>
カスタムフィールドでアップロードした画像を表示
カスタムフィールドで画像をアップロードした場合、通常のテンプレートタグでは画像ファイルへのリンクが表示されます。
リンクではなく、画像として表示するためには、カスタムフィールドのテンプレートタグの末尾に Asset を追加します。例えば、カスタムフィールドが mt:EntryMyPicture というテンプレートタグの場合は、mt:EntryMyPictureAsset
というブロックタグを記述します。
<mt:EntryMyPictureAsset>...</mt:EntryMyPictureAsset>
この Asset タグは、通常の mt:Assets
と同様の機能をもち、ブロック内部で mt:AssetURL
などのアイテム用のタグが利用できます。
以下のサンプルは、カスタムフィールドでアップロードした画像を記事一覧として表示する場合のテンプレートです。カスタムフィールドの編集画面で、テンプレートタグの項目に entrymypicture と入力されているものとします。
<mt:Entries> <mt:IfNonEmpty tag="EntryMyPicture"><$mt:EntryTitle$>で選択された画像: <mt:EntryMyPictureAsset><img src="<$mt:AssetURL$>" /></mt:EntryMyPictureAsset></mt:IfNonEmpty> </mt:Entries>