我正在尝试 for 循环访问 sitecore 模板而不是项目
好的,这是我的 xslt,用于循环遍历主页项目的项目,但我希望能够循环遍历模板...这样做的原因是,我的 xslt 可以更具体,而不是显示家居用品
<xsl:template match="*" mode="main">
<div id="aside">
<ul id="nav">
<xsl:for-each select="$home/descendant-or-self::item[position() <= 6]">
<li>
<sc:link>
<sc:text field="Title"></sc:text>
</sc:link>
</li>
</xsl:for-each>
</ul>
<div class="advertisement">
<sc:image field="Image"></sc:image>
</div>
</div>
</xsl:template>
Ok so this is my xslt for looping through the items of the home item, but I would like to be able to loop through the template... The reason for this is so that my xslt can be more specific instead of showing everything under the home item
<xsl:template match="*" mode="main">
<div id="aside">
<ul id="nav">
<xsl:for-each select="$home/descendant-or-self::item[position() <= 6]">
<li>
<sc:link>
<sc:text field="Title"></sc:text>
</sc:link>
</li>
</xsl:for-each>
</ul>
<div class="advertisement">
<sc:image field="Image"></sc:image>
</div>
</div>
</xsl:template>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从您的 xslt 看来您正在谈论导航。我不会循环遍历不同的模板,而是创建一个特定的导航模板,该模板只有一个名为 ShowInNavigation 的字段。
然后您的所有其他模板都将继承这个模板,并且导航 xslt 将变得更简单
另外,不要在导航中使用 descendant-or-self::item 因为随着网站的增长,导航将成为您的瓶颈。
最好使用 $home/item[sc:fld('ShowInNavigation') = '1'] ,然后对上面的主节点进行硬编码。所以 xslt 将变成:
From your xslt it seems you are talking about the navigation. Instead of looping through different templates I would create a specific Navigation template that has only one field called ShowInNavigation.
Then all your other templates will inherit this one and the navigation xslt will become simpler
Also don't use descendant-or-self::item in the navigation because as the site grows the navigation will become your bottleneck.
Better use $home/item[sc:fld('ShowInNavigation') = '1'] and then hardcode the home node above. So the xslt will become: