如何解释sitecore是否以未创建的语言返回项目?

时间:2015-11-09 14:04:11

标签: sitecore

我有一个用荷兰语定义的项目,它看起来如下: enter image description here

当我尝试通过查询它的父母来找到这个项目时,我找不到它。

 rootTagItem.Axes.GetDescendants() ....

看着立即窗口我可以告诉父母包含该项目,但是用英语让我感到困惑?!

rootTagItem.Axes.GetDescendants()
Sitecore.Data.Items.Item[23]

Veehouderij-Varkens (en#1@web), id: {ED94B438-722B-498B-9499-84F749BB8429}
Database: "web"
Id: "{ED94B438-722B-498B-9499-84F749BB8429}"
Language: "en"
Name: "Veehouderij-Varkens"
Version: "1"

我们如何解释该项目是否以英文版本返回,尽管未定义英文版本(见图片)?

Marek的回复被接受了,因为他提供了解释它的链接。

1 个答案:

答案 0 :(得分:6)

这就是Sitecore的工作方式。

如果此项目有其他语言版本,即使没有您的语言版本,Sitecore也会返回此项目。

您需要检查的是.Versions.Count()

rootTagItem.Axes.GetDescendants().Where(d => d.Versions.Count > 0);

有些人称他们为empty items。我不知道它是否是官方Sitecore命名。在Sitecore 8.1中,您可以强制Sitecore跳过它们。

您可以通过KevinBrechbühl找到有关Enforce language version presence for items in Sitecore 8.1博客的更多信息。