初のCraftCMS案件を振り返る その4

この記事はCraft CMS Advent Calendar 2020 - Adventarに乗り遅れた記事です。
前回の初のCraftCMS案件を振り返る その3 \| Blog \| riatw.meの続編です。

今回はCraftCMSを使ってみて実際に感じた良いところのうちの一つ、 「テンプレートの自由度の高さ」を取り上げてみようと思います。

CraftCMSのテンプレートはTwigと呼ばれる記法を使って記述します。 慣れるとかなり書きやすい記法です。

Introduction to Templating \| Craft CMS Documentation \| 3.x

習得にかかるコストは非常に低く、一般的なウェブサイトのテンプレートなら1週間程度の学習で十分に書けるようになります。

CraftCMSのテンプレートの書き方はBUNさんのブログ記事がとても分かりやすいのでまずはそちら通りに進めてみることをオススメします。

「サンプル制作で覚える Craft 3 サイト構築の基本」はじめます \| BUN:Log

また、先の記事で標準機能のシンプルさについて触れましたが、テンプレートを書いていても実装のシンプルさを実感します。データ取得部分の書き方で特にそう感じました。

CraftCMSのテンプレートの書き方

CraftCMSではテンプレート上に以下のように記述することでデータを取得が行えます。
エントリとカテゴリを取得する場合、下記のようになります。

エントリの場合

{% set entries = craft.entries.section("セクションA").all() %}
{% for entry in entries %}
    {{ entry.title }}
{% endfor %}

カテゴリの場合

{% set categories = craft.categories.group("カテゴリグループB").all() %}
{% for entry in entries %}
    {{ entry.title }}
{% endfor %}

異なるオブジェクトの場合でもほぼ同じ記法でデータが取得できているのが分かると思います。 はじめて触ったとき、ここにかなり感動しました。

MTだと各オブジェクトごとにタグが異なるため、同じことをする場合に「MTEntries」、「MTTopLevelCategories」、「mt:entrytitle」、「mt:categorylabel」などの様々なタグを学習する必要があります。

もちろん作り込んでいく中で覚えていくことはたくさんありますが、 一般的なウェブサイトのテンプレートを作るだけであれば、覚えることの総量はそこまで多くないと感じています。


今回は「テンプレートの自由度の高さ」について触れてみました。 CraftCMSの学習コストの少なさが少しでも伝われば幸いです。

それではまた次回!