表达式引擎 - 如果url中没有url_title,则显示默认条目

时间:2013-08-23 17:43:07

标签: url title expressionengine

{exp:channel:entries dynamic="yes" limit="1"}
   // some code
{/exp:channel:entries}

动态设置为on,以便显示url_title作为url的最后一段存在的条目。一切正常。

我还有一个索引页面(作为频道条目),其url_title是'index_page'。但我希望默认情况下显示此页面,而不必显示此最后一个网址段。有没有办法做类似的事情:

{exp:channel:entries dynamic="yes" default_url_title="index_page" limit="1"}
  // some code
{/exp:channel:entries}

花了最后一小时谷歌搜索无效!

感谢。

3 个答案:

答案 0 :(得分:0)

使用嵌入?

第一个模板(通过url_title捕获您的普通页面:

{exp:channel:entries dynamic="yes" require_entry="yes" limit="1"}
    {if no_results}
        {embed:template-group/template}
    {/if}

   // some code
{/exp:channel:entries}

第二个模板 - 模板组/模板(这会捕获index_page一个):

{exp:channel:entries dynamic="no" url_title="index_page"}
   // some code
{/exp:channel:entries}

答案 1 :(得分:0)

不是使用嵌入(因为它们会降低ExpressionEngine的速度(http://www.sidd3.com/10-tips-to-optimize-expressionengine-website-for-better-performance/),而是另一种方法是使用URL段。

例如,如果您使用的url_title位于segment_2中,则可以执行以下操作:

{if segment_2 == ""}

    <!-- So this is your default index page -->
    {exp:channel:entries dynamic="no" url_title="index_page"}
        // some code
    {/exp:channel:entries}

{if:else}

    <!-- And this is all the other pages -->
    {exp:channel:entries dynamic="yes" limit="1"}
    // some code
    {/exp:channel:entries}

{/if}

在else子句中,我宁愿手动将url_title参数解析为url_title =“{segment_2}”......但那只是我。

答案 2 :(得分:0)

{if segment_2 == ""}
    <!-- So this is your default index page -->
    {exp:channel:entries dynamic="no" url_title="index_page" limit="1"}
{if:else}
    <!-- And this is all the other pages -->
    {exp:channel:entries dynamic="yes" limit="1"}
{/if}

    // some code
{/exp:channel:entries}