バージョン プレゼンス機能の適用方法


解説

多言語ソリューションでは、アイテムに特定の言語のバージョンがある場合に、その言語バージョンのWebサイトでのみアイテムがレンダリングされるようにすることができます。

Sitecoreの8.1より前のバージョンでは、要求された言語バージョンのアイテムが存在しない場合、デフォルトの挙動として翻訳されていない空のアイテムが返されました。この場合、実際のコンテンツやItem Not Foundページではなく、多くの'$name'マクロや空のページが表示されるのが一般的でした。これを適切に処理するには、カスタムコードが必要でした。

Sitecore 8.1からは、Webサイトと関連するアイテムまたはテンプレートの標準値レベルで設定可能な[バージョン プレゼンスを適用する]機能があり、以下の設定を使用して前述の挙動を実現することができます。

アイテムのバージョン プレゼンスを有効にすると、APIから返されたアイテムがウェブサイトに表示されるためには、該当言語の実際のバージョンが必要です(言い換えれば、アイテムは翻訳されている必要があります)。コンテキスト言語のバージョンがないアイテムがURLによって要求された場合、この機能が有効になっていると、Sitecoreは[Item Not Found]ページにリダイレクトします。

デフォルトでは、バージョン プレゼンス機能は無効になっています。関連するWebサイト、および関連するアイテムまたはテンプレートの標準値で、この機能を有効にする必要があります。

解決策

次の手順に従って、Sitecoreインスタンスでバージョン プレゼンスの適用を有効にします:

  1. Sitecore構成(**)の必要なサイト(*)でバージョンプレゼンスの適用を有効にします。
    この変更は、任意のカスタムインクルード構成ファイル内で行うことができます。
    <sites>
      <site name="website">
        <patch:attribute name="enforceVersionPresence">true</patch:attribute>
      </site>
    </sites> 
  2. このフィールドの値は、他のフィールドと同様に継承されます。これは、必要に応じて、項目でこの設定を上書きできることも意味します。

    機能を有効にしたいアイテムやテンプレートの標準値で、この機能を有効にします。この機能を有効にするチェックボックス アイテムは、[バージョン プレゼンスを適用する]と呼ばれ、[高度な設定]セクションに配置されます。[高度な設定]がない場合は、リボンの[表示]タブで[標準フィールド]を有効にします。

Notes

* 単一サイトのインストールの場合、Webサイトで十分です。この機能の主な用途はコンテンツ配信であるため、shellサイトやその他のシステムサイトでこの機能を有効にすることは推奨されません。
** ステップ1は、[バージョン プレゼンスを適用する]を有効にする必要がある、Content Deliveryを含むすべてのSitecoreインスタンスに適用されます。