在另一个通道条目标记对中嵌套ExpressionEngine通道条目标记对?

时间:2011-12-07 00:28:34

标签: expressionengine

我做了一些搜索,但似乎无法找到有关将channel entry tag pair嵌入另一个内的任何信息。

当我在模板中尝试以下代码时,它会破坏页面,并且我看到以明文形式显示的开头{reverse_related_entries sort="desc"}

{exp:channel:entries channel="pages"}
    {reverse_related_entries sort="desc"}
        {if show_testimonial}
            {exp:channel:entries channel="testimonials" orderby="random" limit="1"}
                <blockquote>
                    {testimony}
                    <cite>
                        <span class="cite_name">{cite_name}</span><br />
                        <span class="cite_org">{cite_org}</span><br />
                        <span class="cite_title">{cite_title}</span>
                    </cite>
                </blockquote>
            {/exp:channel:entries}
        {/if}
    {/reverse_related_entries}
{/exp:channel:entries}

ExpressionEngine中是否有办法在其自身内嵌一个通道条目标记对?

1 个答案:

答案 0 :(得分:14)

为了在自身内嵌{exp:channel:entries}标记对,您需要使用{embed}变量embed the template within another template

为此,只需将主渠道条目标记修改为如下所示:

{exp:channel:entries channel="pages"}
    {reverse_related_entries sort="desc"}
        {if show_testimonial}
            {embed="template_group/template"}
        {/if}
    {/reverse_related_entries}
{/exp:channel:entries}

然后,使用嵌套通道条目标记对的内容创建一个新模板:

{exp:channel:entries channel="testimonials" orderby="random" limit="1"}
    <blockquote>
        {testimony}
        <cite>
            <span class="cite_name">{cite_name}</span><br />
            <span class="cite_org">{cite_org}</span><br />
            <span class="cite_title">{cite_title}</span>
        </cite>
    </blockquote>
{/exp:channel:entries}

您可以使用以下语法将任何ExpressionEngine模板包含在内,如前所示:

{embed="template_group/template"}

使用嵌入模板是解决一些ExpressionEngine怪癖和Parse Order (PDF,32 KB)的标准方法,但它们确实会对它们造成性能损失,因此请谨慎对待使用{embed}{snippet}