Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Movable Type 7 ManualMovable Type 7 マニュアル

カスタムフィールドを利用する

最終更新日: 2020.04.01

基本的な利用方法

各種類のカスタムフィールドの基本的な利用方法は以下のページをご参照ください。

カスタムフィールドの入力欄を投稿画面に表示する

追加したカスタムフィールドを記事の投稿画面で表示します。入力が必須のカスタムフィールドは、自動的に表示されます。必須でないものは、画面右上の[表示オプション]をクリックし、チェックボックスを選択して投稿画面に表示します。

カテゴリ関連付けたカスタムフィールドは、そのカテゴリを選択した場合にのみ表示されます。表示オプションで設定すると、カテゴリの選択状態にかかわらず、常時入力欄が表示されるようになります。

またカスタムフィールドや、タグ、概要などの入力欄をドラッグ&ドロップして、投稿画面内で並び替えることができます。

その他のシステムオブジェクトに追加したカスタムフィールドの入力欄がある画面は、以下の表をご参照ください。

入力欄がある画面とテンプレートタグ
システムオブジェクト 入力欄がある画面 テンプレートタグ
記事 記事の投稿画面(表示オプション) MTEntryCustomFields
ウェブページ ウェブページの投稿画面(表示オプション) MTPageCustomFields
コメント コメント編集画面とサイトのコメント欄 MTCommentCustomFields
アイテム アイテムの編集画面(アイテム対象) MTFileCustomFields
オーディオ アイテムの編集画面(オーティオ対象) MTAudioCustomFields
ビデオ アイテムの編集画面(ビデオ対象) MTVideoCustomFields
画像 アイテムの編集画面(画像対象) MTImageCustomFields
カテゴリ カテゴリの編集画面 MTCategoryCustomFields
フォルダ フォルダの編集画面 MTFolderCustomFields
テンプレート テンプレートの編集画面 MTTemplateCustomFields
子サイト 子サイトの全般設定 MTBlogCustomFields
親サイト 親サイトの全般設定 MTWebsiteCustomFields
ユーザー ユーザー情報の編集とプロフィールページ MTAuthorCustomFields

入力時の制限事項については『カスタムフィールドの制限事項』をご参照ください。

カスタムフィールドの入力内容をサイトで表示する

入力したカスタムフィールドをサイトで表示するには、テンプレートにカスタムフィールドのテンプレートタグを追記します。テンプレートタグは、カスタムフィールド作成時に指定したものを記述します。カスタムフィールドの一覧で [表示オプション] をクリックし、タグを選択すると、各カスタムフィールドのテンプレートタグが一覧に表示されます。

mt7-customfields-manage-cf-list-tag.png

カスタムフィールドの内容を表示したいテンプレートに、テンプレートタグを記述します。前述の例で追加したカスタムフィールドを表示するためには、以下のように記述します。

<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>
目次