6

我有一个单一的条目 url 结构,如:

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。

非常感谢!

4

3 回答 3

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}
于 2012-11-06T09:30:16.213 回答
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 的第三个片段,将其提供给频道条目标签,该标签返回您需要的 url_title。使用此 url_title,您可以轻松地重定向到正确的页面。

于 2012-11-06T09:30:45.230 回答
4

janvl 和 madebyhippo 的好答案

快速注意,如果您使用复杂的条件(答案中的条件很简单,所以您不会遇到这个问题)是 EE 将解析它们包含的频道条目标签,这会降低性能。

如果您发现自己处于这种情况,最好使用诸如switcheeifelse 之类的 Mark "The croxton" 插件来完全避免该问题

于 2012-11-06T11:00:40.540 回答