You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Sulu Twig模板中通过内容ID获取页面URL

在Sulu Twig模板中通过内容ID获取页面URL的方法

在Sulu中创建页面链接时,<sulu-link />标签能满足多数场景,但有时仅需获取纯URL(比如传递给JavaScript函数或用作表单action)。Sulu v2.5中依赖sulu_content_load返回的urls属性生成URL的方法,在v2.6中因该属性被移除而失效;直接硬编码资源定位符的话,后台修改定位符会导致URL失效。

针对这个问题,Sulu v2.6及后续版本提供了两种可靠的解决方法:

方法一:通过内容对象生成URL

先加载指定ID的内容对象,再用sulu_content_url函数生成对应语言的URL:

{% set termsAgreement = sulu_content_load('123-123-123-123') %}
{% set termsAgreementUrl = sulu_content_url(termsAgreement, request.defaultLocale) %}

也可以合并为一行代码:

{% set termsAgreementUrl = sulu_content_url(sulu_content_load('123-123-123-123'), request.defaultLocale) %}

方法二:直接通过内容ID生成URL(更高效)

如果不需要加载完整的内容对象,可直接用sulu_route函数通过内容ID和语言生成URL,避免不必要的内容加载:

{% set termsAgreementUrl = sulu_route('123-123-123-123', request.defaultLocale) %}

以上两种方法都会自动适配后台修改的资源定位符,确保URL始终有效,无需手动维护硬编码路径。

内容的提问来源于stack exchange,提问作者Mario A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:12:05