我有一个输入网址结构,如:
www.site.com/template_group/template_1/entry_id
但我希望它是:
www.site.com/template_group/template_1/entry_id/url_title。
Entry_id将是提供exp:channel:entries的段。如何将www.site.com/template_group/template_1/entry_id重定向到www.site.com/template_group/template_1/entry_id/url_title。
非常感谢!
答案 0 :(得分:12)
以下内容应该有效 - 它未经测试,但它会让你很好地了解如何继续使用它。
{if segment_4==""}
{exp:channel:entries channel="x" limit="1" dynamic="no" entry_id="{segment_3}"}
{redirect="template_group/template_1/{entry_id}/{url_title}"}
{/exp:channel:entries}
{/if}
答案 1 :(得分:5)
将它放在模板的最顶层:
{if segment_4 == ""}
{exp:channel:entries channel="channel_goes_here" entry_id="{segment_3}"}
{redirect="{site_url}/{segment_1}/{segment_2}/{segment_3}/{url_title}
{/exp:channel:entries}
{/if}
这将检查您是否设置了第四个段,如果没有,它将包含您的entry_id的第三个段,将其提供给channel entries标记,该标记返回您需要的url_title。使用此url_title,您可以轻松地重定向到正确的页面。
答案 2 :(得分:4)
janvl和madebyhippo的好答案
快速注意如果你使用complex conditionals(答案中的那些是简单的,所以你不会遇到这个问题)是EE会解析它们包含的频道条目标签,这会降低性能。< / p>
完全避免此问题