---
title: "レンダリングバリアント用のカスタムトークンを作成します"
slug: "create-a-custom-token-for-a-rendering-variant"
abstract: ""
---
# レンダリングバリアント用のカスタムトークンを作成します

SXAレンダリングバ [リアン](https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/create-a-rendering-variant.html "Create a rendering variant")トを使ってコンポーネントのレンダリング方法を変えることができます。レンダリングバリアントを素早く拡張したい場合は、カスタムresolveVariantTokensパイプラインを使ってバリアントトークンのセットを拡張できます。

カスタムトークンは、特定のフィールド値をフォーマットしたり、通常のレンダリングバリアントアイテムでは得られない複雑なデータを公開するのに役立ちます。例えば、Sitecoreのアイテムの値に変換を行う場合などです。これは、例えばPageListコンポーネントのレンダリングバリアントで親アイテムフィールドを表示したい場合に便利です。

レンダリングバリアント用のカスタムトークンを作成するには:

1.  resolveVariantTokensパイプラインに追加のプロセッサを追加して、自分だけのトークンを定義します。まず、トークンプロセッサを作成します。例えば、$parentName:
    
    public class ResolveParentName : ResolveVariantTokensProcessor
    {
     public override string Token => "$parentname";
    
     public override void ResolveToken(ResolveVariantTokensArgs args)
     {
     // this if statement is quite important in order to support this token in JSON Variants
     if (args.ResultControl != null)
     {
     args.ResultControl.Controls.Add(new LiteralControl
     {
     Text = args.ContextItem.Parent.Name
     });
     }
     else
     {
     args.Result = args.ContextItem.Parent.Name;
     }
     }
    }
    
2.  resolveVariantTokensパイプラインにプロセッサを登録します:
    
    pipelines
     <resolveVariantTokens>
     <processor type="YOUR\_NAMESPACE.ResolveParentName, YOUR\_ASSEMBLY" resolve="true" />
     </resolveVariantTokens>
    </pipelines>
    
3.  トークンを適用するには、コンテンツエディターで追加したいレンダリングバリアントに移動し、**トークン** フィールドの$キーを使ってカスタムトークンを入力します。
    
    ![SXA-token.png](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/sxa/93/sitecore-experience-accelerator/images/SXA-token.png)