Movable Typeで記事一覧のjsonを生成する

Movable Typeのコンテンツタイプで投稿したデータでjsonを生成することがあったので、その際の対応方法をメモ。

サンプルコード

今回はコンテンツデータのラベルと公開日、コンテンツタイプのフィールドで追加したカテゴリーを含める想定で試してみます。

インデックステンプレートで以下の内容を作成して、jsonファイルで保存します。

{
  "data":[
    <mt:Contents content_type="【コンテンツタイプ名】" limit="10">
    {
      "title":"<mt:ContentLabel encode_json="1">",
      "date":"<mt:ContentDate>",
      "category":[
      <mt:ContentField content_field="【カテゴリーのコンテンツフィールド名】">
        "<$mt:CategoryLabel encode_json="1">"<mt:Unless name="__last__">,</mt:Unless>
      </mt:ContentField>
      ]
    }<mt:Unless name="__last__">,</mt:Unless>
    </mt:Contents>
  ]
}

mt:Contentsでループを回しているだけなので特にややこしい点はないですが、ポイントは値をjsonでも扱えるようにencode_jsonを設定している点と、12行目で最後の配列のみカンマを入れないようにしている点です。
これで以下のようなjsonファイルが生成されるようになりました。

{
  "data":[
    {
      "title":"タイトルB",
      "date":"2021年11月 6日 00:41",
      "category":[
        "カテゴリA",
        "カテゴリB"
      ]
    },
    {
      "title":"タイトルA",
      "date":"2021年11月 6日 00:34",
      "category":[
        "カテゴリA"
      ]
    }
  ]
}

今回コンテンツタイプで試しましたが、記事やウェブページでも基本的には同じように生成できます。

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年10月
 12345
6789101112
13141516171819
20212223242526
2728293031