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