Drupal 9如何在模板获取Venue内容类型链接字段的纯文本URL
解决Drupal 9节点模板获取链接字段纯文本URL的问题
以下是几种可行的方案,按优先级尝试:
1. 直接通过节点对象(node)获取
这是更可靠的方式,绕过content渲染数组的不确定性,直接从实体字段取值:
{% if node.field_cta is not empty %} {{ node.field_cta.uri.value }} {% endif %}
如果是外部链接,uri.value就是完整URL;如果是内部内容链接,会是entity:node/123这种格式,需要转成完整URL的话用:
{% if node.field_cta is not empty %} {{ node.field_cta.url.toString() }} {% endif %}
2. 检查content数组的实际结构
有时候content里的字段结构可能和预期不同,先打印整个字段结构确认:
{{ dump(content.field_cta) }}
查看输出后,找到正确的URL路径。比如可能是content.field_cta['#items'].0.uri或者content.field_cta.0.url.toString(),根据实际结构调整。
3. 确认字段配置和机器名
- 检查新添加的链接字段机器名是否确实是
field_cta,避免拼写错误 - 确认字段的“显示设置”里,是否没有被设置为隐藏或者使用了特殊的格式器(比如只显示文本而不输出URL结构)
4. 使用字段值对象的方法
如果上述方法都不行,试试通过字段项的方法获取:
{% for item in content.field_cta['#items'] %} {{ item.url.toString() }} {% endfor %}
内容的提问来源于stack exchange,提问作者Josh Cronin
相关产品推荐
相关产品推荐

