{% content %}
{% content %}
标签将在页面上显示 CMS 内容块 要显示名为 contacts.htm 的内容块,您需要在 content
标记后传递文件名作为字符串引用。
{% content "contacts.htm" %}
子目录中的内容块可以以相同的方式呈现
{% content "sidebar/content.htm" %}
注意: 主题文档 有更多关于子目录使用的详细信息。
内容块可以呈现为纯文本:
{% content "readme.txt" %}
您还可以使用 Markdown 语法:
{% content "changelog.md" %}
内容块也可以与 布局占位符 结合使用:
{% put sidebar %}
{% content 'sidebar-content.htm' %}
{% endput %}
# 变量
您可以通过在文件名之后指定变量来将变量传递给内容块:
{% content "welcome.htm" name=user.name %}
您还可以分配新变量以在内容中使用:
{% content "location.htm" city="Vancouver" country="Canada" %}
在内容内部,可以使用单数花括号的基本语法访问变量:
<p>国家: {country}, 城市: {city}.</p>
您还可以将变量集合作为简单数组传递:
{% content "welcome.htm" likes=[
{name:'Dogs'},
{name:'Fishing'},
{name:'Golf'}
] %}
变量的集合是通过使用{}来访问的:
<ul>
{likes}
<li>{name}</li>
{/likes}
</ul>
注意: 内容块不支持 Twig 语法,请考虑改用 CMS部件 代替
# 将内容设置为 Twig 变量
在任何模板中,您都可以使用 content()
函数将内容设置为变量。 这使您可以在显示之前操作输出。 请记住使用 |raw
过滤器来防止输出转义。
{% set welcomeContent = content('welcome.htm') %}
{{ welcomeContent|raw }}
您也可以将变量作为第二个参数传递给内容。
{% set welcomeContent = content('welcome.htm', { foo: 'bar' }) %}
# 检查内容文件是否存在
hasContent()
函数可用于在不渲染内容的情况下检查内容是否存在。 为了防止内容的呈现,将第二个参数作为 false 传递,如果找到内容文件,它将返回 true 或 false。
{% if hasContent('welcome.htm') %}
{% content 'welcome.htm' %}
{% else %}
<p>未找到欢迎内容!</p>
{% endif %}