在 Sitecore 8 中,我可以在页面的语言版本中获取字段值吗

In Sitecore 8 can I get a field value in the language version of the page

我想在页面的语言版本中获取一个字段值。例如,我在 en-us 中有一个名为 Search Placeholder 的项目,其字段值 "Select.." 在 en-us 页面上显示了该值。但是当我在 en-gb 中创建搜索占位符并输入值 "Select2..." 时使用下面的代码,它在 en-gb 页面上显示为空白。

string fieldName = "Search Placeholder Text";
Sitecore.Data.Items.Item someItem = Sitecore.Context.Database.GetItem("/sitecore/content/site/shared-content/Search Placeholder");
Sitecore.Data.Fields.Field someField = someItem.Fields[fieldName]; 
string searchPlace = someField.Value;

有没有办法检查搜索占位符是否有页面的语言版本?

首先,您可以将选择的语言传递给GetItem方法:

Sitecore.Context.Database.GetItem(path, language)

然后您可以使用以下方法检查项目是否有该语言的任何版本:

someItem.Versions.Count > 0

如果项目有超过 0 个版本且该字段为空,则表示该项目在将字段添加到模板后尚未发布,或者该字段项目本身尚未发布。