見出し画像

MovableTypeでカスタムフィールドを使ったjson形式での出力方法

今回、使用するカスタムフィールドは、以下になります。

・画像
・テキスト
・テキスト(複数行)
・チェックボックス
・URL  

記事IDと日付についてはテンプレートタグを使って出力します。

※テンプレートタグ  参考URL ↓ https://www.movabletype.jp/documentation/appendices/tags/

スクリーンショット 2019-12-05 18.51.38

1,ダッシュボードから、カスタムフィールドの新規を選択します。

2,システムオブジェクトから順に入力と選択をしてください。(テンプレートタグはcf_○○などわかりやすい名前をつける)


スクリーンショット 2019-12-15 14.40.38

3,ダッシュボードのデザインからインデックステンプレートを新規でtest.jsonを作成してください。

[
<mt:Entries>  
{
  "id": <mt:EntryID encode_json="1">,
  "title": "<mt:EntryTitle encode_json="1">",
  "date": "<mt:EntryDate format="%Y%m%d" language="ja">",
  "img": "<mt:cf_imgAsset><$MTAssetURL$></mt:cf_imgAsset>",
  "text": "<mt:cf_text encode_json="1">",
  "body": "<mt:cf_body encode_json="1">",
  "rink": "<mt:cf_rink encode_json="1">",<MTIf tag="cf_pickup">
  "pickup": 1<MTElse>
  "pickup": 0</MTIf>
}<mt:If name="__last__"><mt:Else>,</mt:Else></mt:If>
</mt:Entries>
]
ここではカスタムフィールドを使って、json形式で作成した内容について説明します。
・"id"はmt:EntryIDで記事のid番号を表示します。
・"title"はmt:EntryTitleで記事タイトルを表示します。
・"date"はmt:EntryDateで日付を表示します。またフォーマットで表示方法を変えられます。
日付に関するテンプレートタグのモディファイアリファレンス ↓
https://www.movabletype.jp/documentation/appendices/date-formats.html
・"img"はmt:cf_imgAsset(テンプレートタグ)の中に<$MTAssetURL$>を入れることで画像が表示されます。上記のように、画像の場合はテンプレートタグのうしろにAssetを付けなければ表示されません。
・"text"はmt:cf_textでテキストを表示します。
・"body"はmt:cf_bodyで改行テキストを表示します。
・"rink"がmt:cf_rinkでリンクを挿入できます。
・"pickup"はifで分岐しています。チェックボックスにチェックしたら表示する。チェックしなかったら非表示になります。

※タイトルや記事には[encode_json="1"]を指定することで、jsonとして扱うことが出来ます。指定しないと文字化けする場合があります。
他にMTタグ内で、encode_html="1"を指定することで文字コードに変換し、decode_html="1"で文字化けを改善出来ます。

<mt:If name="__last__"><mt:Else>,</mt:Else></mt:If>
・最後にjsonファイル内にあった上記の内容は、MTEntries内で最後の記事のときはカンマをいれない、記事が作成されたときはMTElseでカンマをいれるような処理になっています。これにより、最後にカンマが入らないため表示されます。

補足
MTタグ内では、モディファイアを指定することが出来ます。
ex.
・記事を10件表示する場合 ↓ 
 lastn="10"
・記事を昇順(ascend)、降順(descend)にする場合 ↓
sort_order="ascend | descend"
・特定のサイト内の記事一覧を表示する場合 ↓
include_id="1"(サイトのid番号)
・特定のカテゴリーで記事一覧を表示する場合 ↓
category="test"

上記以外にも様々なモディファイアを指定出来ます。
※MT モディファイアリファレンス 参考URL
https://www.movabletype.jp/documentation/appendices/modifiers/

最後にjsonテンプレートを保存して、新規で記事を作成してください。
作成したらurlの後ろに、test.jsonを入れて開くと以下のようにjson形式で出力されます。また、記事の内容を変えるとjsonファイルが更新されます。

スクリーンショット 2019-12-16 10.24.46

このように、json形式のテンプレート機能を使うと、記事の作成、更新する度にjsonファイルも更新されます。また、様々な形で文字列を出力できるので自由度が高く、とても便利です!ぜひ、試してみてください!


この記事が気に入ったらサポートをしてみませんか?