プロジェクト全体を通して、リンク (外部または内部またはメディア) に Sitecore の一般リンク フィールドをよく使用します。私が持っている 1 つの基準は、すべてのページに「NavigationTitle」というフィールドがすべてのページにあるということです。これにより、CMS 作成者は、アイテムがリンクされているときはいつでも、アイテムのテキストの表示を制御できます。理想的には、そのアイテムがリンクされているときはいつでも、システムがターゲットアイテムからそのフィールドを使用する方法を見つけることができるようにしたいと考えています. ここに例があります。
私のサイトのすべてのページに次の基本的なフィールドがあるとしましょう
- NavigationTitle (テキスト)
- コンテンツ (リッチ テキスト)
Promo というデータ テンプレートがあるとします。Promo には次のフィールドがあります。
- タイトル(本文)
- 内容(テキスト)
- イメージ(イメージ)
- リンク(総合リンク)
プロモーションのリンク フィールドは、内部ページまたは外部ページにリンクできます。現在、プロモを表示するサブレイアウトを作成するときに、<sc:Link>
タグを使用してリンク フィールドを出力すると、Sitecore は最初にリンク フィールドのテキストをテキストとして使用すると思います。それ以外の場合は、テキストにアイテム名を使用すると思います。
ターゲット アイテムのアイテム名を使用する代わりに、ターゲット アイテムの特定のフィールド値を使用したいと考えています。そして、Glass Mapper などと連携して機能するように、このコードを十分に低いレベルで実行したいと考えています。そのため、Glass Mapper を使用して Link フィールドを (Editable メソッドなどを使用して) 出力すると、正しいリンク テキストが表示されます。
誰も私がこれを行う方法を知っていますか? 通常の General Link Field から継承し、何かをオーバーライドするカスタムの General Link Field を作成する必要があるかもしれないと推測しています。推測です。どんな助けでも大歓迎です。