我正在尝试创建我的第一个Drupal 8主题。在首页上,我想列出所有带有标题、摘要、发布日期等的文章。
我或多或少地使用视图实现了这一点。基本上 {{ page.content }} 在树枝中,但发现它真的很不灵活,我并没有真正得到我想要的结果。我想做的只是遍历所有文章并"手动"打印该文章的每个部分。例如:
{% for page in pages %}
{{ page.content.title }}
{{ page.content.datePosted }}
{{ page.content.body }}
{% endfor %}
这样我就可以更好地控制正在发生的事情,并且在部署时不会在视图模块中进行大量配置。实现这一目标的最佳解决方案是什么?谢谢!
我建议使用视图。配置您的视图(按内容类型等过滤(,您有很多参数来实现您需要的内容。
将视图设置为显示"内容"并为其提供视图模式(您可以使用默认teaser
、full
或创建自己的视图模式(。然后,您可以为此创建自定义模板:
node--xxxx--teaser.html.twig
要了解如何命名自定义模板文件,请在sites/default/services.yml
中启用Twig
调试。将调试变量设置为 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>