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" ] } ] }
今回コンテンツタイプで試しましたが、記事やウェブページでも基本的には同じように生成できます。
コメントが承認されるまで時間がかかります。