Craft cmsのルートの使い方

今回の記事もCraft cmsのネタになります。
色々試している最中なんですが、今回はルートの設定からテンプレートを設定する方法を紹介したいと思います。

セクションの設定を見ていて、あれ?そのブログのカテゴリ一覧やタグ一覧とかのテンプレートってどのように設定すれば良いのか?
という疑問からルートの設定というものを知ったので、メモしておきます。(他に正式な?やり方があるのかもだけど)
なんとなく出来たので紹介したいと思います。

/log/asset/craft01.png

  1. 設定画面をクリック
  2. ルートをクリック

/log/asset/craft02.png

  1. 新規ルートをクリック

/log/asset/craft03.png

  1. モーダルウィンドウ内を入力
  2. 1番目のテキストエリアは、URLの見え方を設定(手入力や下のトークンを選び意図するURLを作成)
  3. 2番目のテキストエリアは、URLロード時に呼び出したいテンプレートへのパスを入力する

上記の流れで、ルートの設定は完了です。
次は、タグの一覧ページを作る方法をルートの設定からやってみました。

タグページ用のテンプレートを作成

自分のtemplatesディレクトリ内の好きなところにロードしたいテンプレートファイルを作成しましょう。
今回は、logディレクトリ内に_tag.htmlというテンプレートファイルを設置しました。

  
craft/templates/log/_tag.html
  

以下のようなタグを出力させる内容で記述しました。

  
{% extends "_layout" %}
{% block content %}
{% set tag = craft.tags.title(tag).first() %}
<h1>Entries tagged with "{{ tag.title }}"</h1>
{% set entries = craft.entries.relatedTo(tag).order('title') %}
{% if entries | length %}
    <ul>
        {% for entry in entries %}
            <li>{{ entry.getLink() }}</li>
        {% endfor %}
    </ul>
{% else %}
    <p>No entries could be found with that tag.</p>
{% endif %}
{% endblock %}
  
  • タグ名の出力
  • 呼び出した現在のタグ取得
  • タグに該当する記事をforで展開させる

/log/asset/craft04.png

  • URLの設定「log/tag」
  • テンプレートロードは「log/tag」

これで設定完了になります。ご自身の環境に合わせてブラウザでアクセスしてみましょう。

  
http://craft.example.net/log/タグ名
// タグ付与されている記事一覧が出力される
  

Movable Typeなどのカテゴリの一覧だったりだと、ブログに入りアーカイブテンプレートなどの設定をするのが、
Craftのルート設定はシンプルにURL設計ができる点では素敵ですね。
まだまだ勉強中で手探りな感じが続きますが、使いこなしていきたいですね。

Author

札幌でフロントエンドエンジニアとして働いています。好きな音楽はSIAM SHADE!
SIAM SHADEの六人目のメンバーとして日々ロックを愛し続けている。
HTML,CSS,JavaScriptをベースにCMS構築が得意です。
HAMWORKS社員 https://ham.works