1

循环填充的不仅仅是我写给循环的特定集合。我试过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

  1. 家庭暴力.html
  2. 毒品犯罪.html
  3. dui.html
  4. xxx

实践集合

外星人:/legal/collections/_practices

  1. 民法.html
  2. 刑法.html
  3. 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

4

0 回答 0