【问题标题】:Grav template -- Twig not listing child pagesGrav 模板 - Twig 未列出子页面
【发布时间】:2018-09-02 22:10:31
【问题描述】:

我用这样的分类法制作了几页重力。

- Home (category type)
- programming (category type)
- stuff (category type)
    - stuff1 (page type)
    - stuff2 (page type)
    - stuff3 (page type)

我还制作了一个名为“category”的模板类型,它有望抓取到 stuff1/2/3 的所有链接并将它们作为链接放置在“stuff”页面上。我的代码看起来有点像这样:

    {% block body %}
        {% block content %}
        <ul>
            {% for p in self.children %}
                <li><a href="{{p.url}}">{{ p.title }}</a></li>
            {% endfor %}
        </ul>
        {% endblock %}
    {% endblock %}

最终目标是获得一个简单的儿童链接列表,类似于:

<ul>
   <li><a href="/stuff1">stuff1</a></li>
   <li><a href="/stuff2">stuff2</a></li>
   <li><a href="/stuff3">stuff3</a></li>
</ul>

我尝试过使用 page.children、self.children 和其他一些东西,但似乎没有什么能让它按我想要的方式工作。

任何帮助将不胜感激。

【问题讨论】:

    标签: twig grav


    【解决方案1】:

    恐怕我不太明白你所说的“类别类型”和“页面类型”是什么意思......

    Page Collections 上的文档可能会很有帮助。

    示例: 如果您想要一个带有模板“category.html.twig”的页面,该页面显示包含某个类别(或标签)的所有页面的 url 列表,您可以执行以下操作:

    1. 创建一个页面'category.md',在frontmatter中定义一个类别集合:

      content:
        items:
          '@taxonomy.category': mycategory
      
    2. 创建一个模板“category.html.twig”,其中包含:

      <ul>
        {% for p in page.collection() %}
          <li><a href="{{p.url}}">{{p.title}}</a></li>
        {% endfor %}
      </ul>
      

    生成的页面将如下所示:

    <ul>
        <li><a href="/site-stack">Home</a></li>
        <li><a href="/site-stack/blog/hero-classes">Body & Hero Classes</a></li>
    </ul>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      相关资源
      最近更新 更多