我做了一些搜索,但似乎无法找到有关将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中是否有办法在其自身内嵌一个通道条目标记对?
答案 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}
。