• Home
  • Craft CMS
  • Craft 3 のテンプレートで現在表示されているページがトップページかどうかを判別する

Craft 3 のテンプレートで現在表示されているページがトップページかどうかを判別する

Craft 3 で現在表示されているページがトップページかどうかを判別する方法をご紹介します。ナビゲーションで現在表示されているページに active クラス等をつける際に役立つと思います。

Twig テンプレート

方法は簡単で、

{% if craft.app.request.segments|first == '' %} active{% endif %}

という条件分岐を追加すればOKです。

craft.app.request.segments|first は、例えば URL が example.com/service/websites/ とうページの場合には service が該当します。

この分岐方法であれば、Craft で多言語サイトを作るとき、URL が、

example.com => Japanese
example.com/en => English

のようになっていても、 システム設定の Sites で適切にマルチサイトの設定をしておけば、英語サイトの example.com/en/service/websites/ を表示しているときでも encraft.request.firstSegment にはなりませんので安心です。

以上です。