主题化Drupal 8-循环浏览所有已发布的文章并打印特定部分

时间:2019-05-28 09:40:33

标签: drupal drupal-8

我正在尝试创建我的第一个Drupal 8主题。在首页上,我想列出所有带有标题,摘要,发布日期等的文章。

我或多或少使用视图实现了这一点。基本上是{{page.content}}的树枝,但发现它确实不灵活,我并没有真正得到想要的结果。我要做的只是遍历所有文章并“手动”打印该文章的每个部分。例如:

{% for page in pages %}
  {{ page.content.title }}
  {{ page.content.datePosted }}
  {{ page.content.body }}
{% endfor %}

这样,我可以更好地控制正在发生的事情,并且在部署时无需在视图模块中进行大量配置。实现此目标的最佳解决方案是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

我建议使用“视图”。配置您的视图(按内容类型等进行过滤),您有很多参数可以实现所需的功能。

将视图设置为显示“内容”并为其提供视图模式(您可以使用默认的teaserfull或创建自己的视图模式)。然后,您可以为此创建一个自定义模板:

node--xxxx--teaser.html.twig

为了知道如何命名自定义模板文件,请在Twig中启用sites/default/services.yml调试。将调试变量设置为true。并清除缓存。然后,您将在源代码中看到像这样的模板名称建议:

    <!-- FILE NAME SUGGESTIONS:
   * node--1--full.html.twig
   * node--1.html.twig
   x node--oeuvre--full.html.twig
   * node--oeuvre.html.twig
   * node--full.html.twig
   * node.html.twig
   -->

在树枝上,您可以进行以下模板制作:

<a href="{{ url }}">{{ content.my_field_image[0] }}</a>

<h2><a href="{{ url }}">{{ node.title.value }}</a></h2>

<p>{{ content.body }}</p>