2019-07-05

Craft CMS のセクションの情報をURLを見て取り出す

昨日のエントリのセクションの情報を取り出すところ。

news セクション用のテンプレートでかいてるのであまり汎用性はなく専用的な感じではあるのですが、例えばURLによって動的にかわったり、共通のテンプレートを利用している場合にどうするか、というのを @BUN に教えてもらいました。

segments を見て取り出す

{% set sectionHandle = craft.app.request.segments | first %}
{% set section = craft.sections.getSectionByHandle(sectionHandle) %}

例えば example.com/news/ だったときはこんなかんじで、 news がとりだせます。

craft.app.request.segments はドメイン以下のディレクトリ単位で配列で入ってくるそうなので、今の場合は最初のところが取り出せればいいので first で取り出す形になります。

URLからとりだすことで、同じテンプレートを流用して、見せ方や表示させる内容を切り替えたりすることができるようになりますね。

思考的にまだ慣れていない感じはありますが、動的CMSなのでURLベースに色々と考えていく必要がありますね。