category

Craft CMS でエントリの親エントリの情報を表示する #craftcms

2019-09-09

bp出版社 | bit part 合同会社
https://bit-part.net/craftcms/...

を書いていたときに、追加拡張としても書いたのだけどカテゴリ(エントリで代用)の親子関係を出してみようと思ったので調整。

@BUN の以下のエントリを参考にしたやり方もありつつ。

Craft CMS のストラクチャーで親子関係のデータを取得する | BUN:Log
https://bunlog.dreamseeker.dev...

@tinybeans に教えてもらった方法で試してみた。

元々のコードがこんな感じ。

{% for category in entry.sample_publisher_category.limit(null) %}
<a href="/sample_publisher/category/{{category.slug}}">{{category.title}}</a>
{% endfor %}

自カテゴリ(CMS)のみの表示。

ここに親のエントリがあるかどうかを追加して

{% for category in entry.sample_publisher_category.limit(null) %}
	{% for parent in category.ancestors.all() %}
	<a href="/sample_publisher/category/{{ parent.slug }}">{{ parent.title }}</a> /
	{% endfor %}
<a href="/sample_publisher/category/{{category.slug}}">{{category.title}}</a>
{% endfor %}

こんな感じにすることで、親カテゴリも表示された。

ancestorOf
https://docs.craftcms.com/v3/d...

リンクの設定もできているが、テンプレート側としては親カテゴリのときには子カテゴリのエントリも出すという設定にはなっていないのでそこは調整が必要になる。