Sitecore XPインスタンスを8.2 Update-7にアップグレードすると、レイアウト デルタがp:before=""のみで構成されている場合、レンダリングの順序が変わる可能性があります。その結果、コンテンツがフロントエンド サイトに正しく表示されません。
以前のSitecore XPバージョン(8.1 Update-1以前)では、レイアウト デルタは、p:before=""属性のみを使用して上から下まで作成・処理されていました。
Sitecore XP 8.1 Update-2からSitecore XP 8.2 Update-6までは、レイアウト デルタは、以下の属性セットを使用して上から下まで作成・処理されていました:
Sitecore XP 8.2 Update-7(Sitecore 9.0 Update-2に統合)以降、関連する問題を修正する一環として、解析ロジックが変更されました。そのため、レイアウト デルタは、上記の属性セットを使用して逆の順序で解析されています。
この問題を解決するには、以下を実行してください:
//影響を受けるすべてのアイテム(すべてのコンテンツ アイテムまたは特定のテンプレートのアイテムである可能性があります)を収集し、アイテムごとに以下の方法を使用します: public void UpdateLayoutField(Item item) { bool isSharedLayoutFieldUpdated = false; foreach (var language in item.Languages) { Item itemInLanguage = _database.GetItem(item.ID, language); if (itemInLanguage.Versions.Count > 0) { foreach (Item itemVersion in itemInLanguage.Versions.GetVersions()) { foreach (Field f in itemVersion.Fields) { if (f.ID == FieldIDs.FinalLayoutField) { itemVersion.Editing.BeginEdit(); string fieldValue = Sitecore.Data.Fields.LayoutField.GetFieldValue(itemVersion.Fields[FieldIDs.FinalLayoutField]); LayoutField.SetFieldValue(f, fieldValue); itemVersion.Editing.EndEdit(); } } if (!isSharedLayoutFieldUpdated) { foreach (Field f in itemVersion.Fields) { if (f.ID == FieldIDs.LayoutField) { itemVersion.Editing.BeginEdit(); string fieldValue = LayoutField.GetFieldValue(itemVersion.Fields[FieldIDs.LayoutField]); LayoutField.SetFieldValue(f, fieldValue); itemVersion.Editing.EndEdit(); isSharedLayoutFieldUpdated = true; } } } } } } }