循环填充的不仅仅是我写给循环的特定集合。我试过Can A Liquid For Loop 是否包含页面变量
页面头条
---
collection: criminal
---
这是我的 config.yml 设置集合:
配置.yml
# Collections
collections:
practices:
output: true
permalink: /legal-practice/:title:output_ext
civil:
output: true
permalink: /legal-practice/civil-law/:title:output_ext
criminal:
output: true
permalink: /legal-practice/criminal-law/:title:output_ext
attorney:
output: true
permalink: /lawyers/:title:output_ext
collections_dir: collections
刑事收集
外星人:/legal/collections/_criminal
- 家庭暴力.html
- 毒品犯罪.html
- dui.html
- xxx
实践集合
外星人:/legal/collections/_practices
- 民法.html
- 刑法.html
- xxx
我正在访问的文件/practice-law/criminal-defense/index.html
有一个front matter
定义collection: criminal
JSON+LD包含定义了一个CollectionPage
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"name": "{{page.title}}",
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{% for item in site[page.collection] %}
{
"@type": "article",
"name": "{{ item.title }}",
"@id": "{{site.url}}{{ item.permalink }}",
"about": { "@id": "{{item.wikidata}}" },
"mainEntity": { "@id": "{{site.url}}{{ item.permalink }}/#article" }
{% if forloop.last %} } {% else %} }, {% endif %}
{% endfor %}
]
},
"image":
{
"@type": "ImageObject",
"width": {{ page.img_width | default: site.img_width }},
"height": {{ page.img_height | default: site.img_height }},
"url": "{{ page.img_url | default: site.img_url }}"
},
"url": "{{ site.url }}{{ page.url }}",
"description": {{ page.summary | strip_newlines | strip | strip_html | remove: "\n\n" | jsonify }},
"mainEntityOfPage":
{
"@type": "CollectionPage",
"hasPart":
{
"@type": "SiteNavigationElement",
"xpath": "/html/body/nav"
},
"breadcrumb":
{
"@type": "BreadcrumbList",
"itemListElement":
[
{
"@type": "ListItem",
"position": "1",
"item":
{
"@id": "{{ site.url | append: "/index.html" }}",
"name": "Home"
}
},
{% assign crumbs = page.url | split: '/' %}
{% assign crumbs_total = crumbs | size | minus: 1 %}
{% for crumb in crumbs offset: 1 %}
{% if forloop.index == crumbs_total %}
{
"@type": "ListItem",
"position": {{ crumbs_total | plus:1 }},
"item":
{
"@id": "{{ site.url }}{{ page.url }}",
"name": {{ page.crumbtitle | jsonify }}
}
}
{% else %}
{
"@type": "ListItem",
"position": {{ crumbs_total }},
"item":
{
"@id": "{% assign crumb_limit = forloop.index | plus: 1 %}{% for crumb in crumbs limit: crumb_limit %}{{ crumb | append: '/' }}{% endfor %}",
"name": "{{ crumb | replace:'-',' ' | upcase }}"
}
},
{% endif %}
{% endfor %}
]
}
}
}
</script>
结果
相反,循环的是 FS: 的数组,/legal/collections/_practices
而不是_criminal。JSON 循环目标在包含项目列表的任何集合的每个页面上都会发生变化。对于_criminal
. 我将继续使 `JSON+LD 有效。我只是卡在 for 循环中。Google 结构化数据测试工具显示来自_practices集合而不是_criminal的文章循环。https://search.google.com/structured-data/testing-tool#url=https%3A%2F%2Flegaldemo.strikehawk.com%2Fpractice-law%2Fcriminal-defense%2Findex.html