gpt4 book ai didi

sitecore - GetItemsOfType() 站点核心扩展函数返回什么?

转载 作者:行者123 更新时间:2023-12-04 06:18:54 29 4
gpt4 key购买 nike

因为我担心与 相关的性能问题IsItemOfType() 函数( read more here ),我正在尝试使用 重写它GetItemsOfType() 功能。

这是一个代码:

<xsl:variable name="home" select="ancestor-or-self::item[sc:IsItemOfType('_MenuRoot',.)]"></xsl:variable>
<xsl:variable name="home2" select="sc:GetItemsOfType('_MenuRoot', ./ancestor-or-self::item)"></xsl:variable>
<div>
<xsl:value-of select="count($home/item)" /> <!-- returns 4 -->
<br />
<xsl:value-of select="count($home2/item)" /> <!-- returns 0 ??? -->
<br />
</div>

不幸的是 GetItemsOfType() 功能不返回带 child 的项目?
知道为什么吗?

最佳答案

似乎 GetItemsOfType() 仅查看从项目的当前模板继承的模板。因此,如果 item1 属于模板 t1,并且 t1 继承自 t2,那么它只会返回 item1,如果您询问它是否继承自 t2 而不是 t1。

你可以自己编写代码。这并不难。你可以这样做:

    public bool InheritsFrom(Item item, ID templateIdToTest)
{
Template template = TemplateManager.GetTemplate(item);

if (template.ID == templateIdToTest)
return true;

return template.DescendsFrom(templateIdToTest);
}

关于sitecore - GetItemsOfType() 站点核心扩展函数返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6861874/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com