---
title: "コンテンツトークン"
slug: "content-tokens"
abstract: "コンテンツトークンを使ってテキストや数字の行を再利用しましょう。"
---
# コンテンツトークン

コンテンツトークンは [テキストや数字の行を再利用](https://doc.sitecore.com/xp/en/users/sxa/100/sitecore-experience-accelerator/en/create-and-insert-a-content-token.html)できます。例えば価格、著作権表示、バージョン番号、場所などを再利用したい場合に便利です。コンテンツトークンはキーと値を持つコンテンツアイテムで、他の項目のフィールドで参照できます。それらはSXAサイトの*Data*フォルダに保存されています: *sitecore/Content///Data*。

コンテンツトークン置換のロジックは、renderFieldパイプラインのRenderContentTokenプロセッサで実装されています。リッチテキスト、シングルラインテキスト、多行テキストフィールドで、$キーとコンテンツトークン名を括弧内で表示することで、コンテンツトークンを参照できます。

コンテンツトークンを挿入すると、キー値とグレーの背景で認識できます。

![Content token in gray.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/sxa/93/sitecore-experience-accelerator/images/SXA-content-token-grey.PNG)

HTMLでは、いくつかの追加属性が付いたスパンでラップされています。リッチテキストエディタのHTMLでは、以下のようにコンテンツトークンを挿入することが可能です。

<span class="xa-variable" contenteditable="false" data-variableid="{7B10FC53-C296-41B9-8D09-AE5916154438}">Parking</span>

この場合、RenderContentTokenプロセッサは全体スパン要素を、IDでマッチしたコンテンツトークンの関連する値に置き換えます。さらに、リッチテキスト、単行テキスト、多行テキストフィールドの$(キー)としてコンテンツトークンを使うこともできます。このアイテムは以下の検索クエリの結果として取得されます:

ID itemId = Context.Database.DataManager.DataSource.SelectIDs(Templates.ContentToken.Fields.Key, variableKey).FirstOrDefault();
Item item = Context.Database.GetItem(itemId);

このクエリに対して複数の結果がある場合、いずれかの結果が返され、その値はテキストに入力されます。

論理を変えるには、次のことをしなければなりません:

1.  renderFieldパイプラインのRenderContentTokenプロセッサを実装するカスタムプロジェクトを作成します。
    
2.  GetTextVariableValue関数を書き直し、コンテンツトークンアイテムマッピングのカスタムロジックを追加してください。
    
3.  dllをウェブサイトのbinフォルダに組み込みます。
    
4.  設定ファイルを修正し、カスタムプロセッサで次のプロセッサを書き換えます:
    
    <processor type="Sitecore.XA.Feature.ContentTokens.Pipelines.RenderField.RenderContentToken, Sitecore.XA.Feature.ContentTokens" resolve="true" />
    
    設定ファイルがshowconfig.aspxページを正しく使っているか必ず確認してください。