---
title: "アイテムおよびフィールド拡張"
slug: "item-and-field-extensions"
abstract: "SXAのアイテム延長について詳しくはこちらをご覧ください。"
---
# アイテムおよびフィールド拡張

このトピックでは、フィールド、アイテムプロパティ、フィールドプロパティへのアクセスを容易にするSXAのアイテム拡張について説明します。

## アイテムプロパティ

### i\_item。子供たち

アイテムの子リストをItemリストとして返します。

#### 例

項目の子をリンクのリストとしてレンダリングします:

{{ for i\_child in i\_datasource.children }}
<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_child.url%20%7D%7D">{{ i\_child.Title }}</a><br/>
{{ end }}

### i\_item.display\_name

アイテムのDisplay Nameを返品します。

#### 例

データソース項目のDisplay nameをリンクのテキストとして使用して、コンポーネントデータソースへのリンクをレンダリングします:

<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_datasource.url%20%7D%7D">{{ i\_datasource.display\_name }}</a>

### i\_item.id

商品のIDを返却します。

#### 例

アイテムのIDを出力します:

{{ i\_item.id }}

### i\_item.has\_children(子どもたち)を

アイテムに子があるtrue返品します。

#### 例

現在のページに子ページがある場合は、以下の子へのリンクを表示してください:

{{
 if i\_page.has\_children
 for i\_child in i\_page.children
 }}<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_child.url%20%7D%7D">{{ i\_child.display\_name }}</a><br/>{{
 end
 end }}

### i\_item.has\_layout

商品にレイアウト情報があれば返品true 。

#### 例

子を持つページの子をレンダリングします:

{{
 for i\_child in i\_page.children
 if i\_child.has\_layout
 }}<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_child.url%20%7D%7D">{{ i\_child.display\_name }}</a><br/>{{
 end
 end }}

### i\_item.言語

アイテムの言語コードを返します。

#### 例

もしそのアイテムが英語でレンダリングされている場合、以下のような事実を記載したテキストを出力します。

{{ if i\_page.language == 'en' }}
This page is rendered in English<br/>
{{ end }}

### i\_item.media\_url

アイテムのメディアURLを返します。

#### 例

Promoコンポーネント画像へのダウンロードリンクをレンダリングします:

<a download href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_datasource.PromoIcon.media/_url%20%7D%7D">{{ i\_datasource.PromoIcon.name }}</a>

### i\_item.名前

アイテムのNameを返品します。

#### 例

データソース項目のNameをリンクのテキストとして使用して、コンポーネントデータソースへのリンクをレンダリングします:

<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_datasource.url%20%7D%7D">{{ i\_datasource.name }}</a>

### i\_item.パス

アイテムの経路を戻します。

#### 例

*/sitecore/content*下にある場合のみリンクを表示してください:

{{ if string.starts\_with i\_item.path "/sitecore/content" }}
<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_item.url%20%7D%7D">{{ i\_item.Title }}</a><br/>
{{ end }}

### i\_item。親

アイテムの親を返却します。

#### 例

データソース項目の親へのリンクをレンダリングします:

<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_item.parent.url%20%7D%7D">{{ i\_item.parent.Title }}</a><br/>
{{ end }}

### i\_item.template\_id

アイテムテンプレートのIDをstringとして返します。

#### 例

アイテムのIDを出力します:

{{ i\_item.template\_id }}

### i\_item.template\_name

アイテムテンプレートの名前をstringとして返します。

#### 例

アイテムテンプレート名を返す:

{{ if i\_item.template\_name == "Gallery Image" }}
 ... render HTML for Gallery image
{{end}}

### i\_item.url

サイトLinkProviderを使って商品のURLを返します。

#### 例

データソース項目のDisplay nameをリンクのテキストとして使用して、コンポーネントデータソースへのリンクをレンダリングします:

<a href="https://doc.sitecore.com/xp/ja/developers/sxa/93/sitecore-experience-accelerator/%7B%7B%20i/_datasource.url%20%7D%7D">{{ i\_datasource.display\_name }}</a>

### i\_item.version

アイテムのバージョン番号を返します。

#### 例

アイテムのバージョン番号を出力してください:

{{ i\_item.version }}

## アイテムフィールドの取得とレンダリング

### i\_item。フィールドネーム

テンプレート内のフィールドをレンダリングします。

#### 例

テンプレート内のフィールドを、アイテムオブジェクトにFieldNameを付け加えてレンダリングします:

{{ i\_item.Title }}

> !注i\_item.FieldName 「.」「」「」や「空白」などの特殊文字を含むフィールドへのリンクをフォローすることはできません。データ属性やフィールドのフォールバックもサポートしていません。その場合はsc\_field関数をご利用ください。

## 場の拡張特性

### i\_item。Field.raw

フィールドの生の値を返します。例えば、JavaScriptで使うアイテムや編集できないボタンのIDをレンダリングする場合などです。

#### 例

ボタンでテキストをレンダリングする:

<button type="button" class="btn btn-primary">{{ i\_item.ButtonText.raw }}</button>

### i\_item。フィールド。ターゲット

項目へのリンクを格納できるフィールドで選択されたアイテムを返します。フィールドに複数のアイテムへのリンクを含めれば、リストの最初のアイテムが返されます。フィールドが空の場合は、関数はnull値を返します。

> !注i\_item.Field.target特殊文字(例えば「.」「」「」、空白欄など)を含むフィールドのリンクを追うことは許可しません。このような場合は、sc\_follow関数を使用します。

#### 例

プロモーションコンポーネントからリンクされた製品についてさらに詳しく表示してください:

{{ i\_linkedpage = i\_item.PromoLink.target }}
<h2>{{ i\_linkedpage.Title }}</h2>
<b>Content</b>:{{ i\_linkedpage.Content }}

### i\_page。フィールド。ターゲット

項目へのリンクを格納できるフィールドで選択されたアイテムの配列を返します。フィールドが空の場合、関数は空のリストを返します。

> !注i\_page.Field.target特殊文字(例えば「.」「」「」、空白欄など)を含むフィールドのリンクを追うことは許可しません。このような場合は、sc\_followmany関数を使用します。

#### 例

現在の製品に関連する商品をレンダリングします:

{{ for i\_product in i\_page.RelatedProducts.targets }}
 <h2>{{ i\_product.Title }}</h2>
 <b>Content</b>:{{ i\_product.Content }}
{{ end }}

## フィールドカスケードとフォールバックの作業

フルエント表記法でフィールドを使う場合、フィールドカスケードやフォールバックを使って複雑なシナリオを簡素化できます。フルエント表記法でフィールドをカスケードリンクして、.targetヘルパーを呼ばずにアイテムに連絡を取ることができます。例えば: i\_item.FieldLinkingToItem.HelperOrFieldToRender。

例えば、記事ページ上のFirstNameというフィールドをレンダリングする場合、それはAuthor Infoというフィールドの一部であり、Authorというフィールドの一部である:

Article by: {{ i\_page.Author.FirstName }}

複数のデータテンプレートをサポートするテンプレートは、フィールド名を流暢な表記法でカスケードすることで作成できます。テンプレートエンジンはフィールドを左から右に解析・レンダリングしようとし、アイテム上で最初に見つけたフィールドをレンダリングします。

例えば、ページにAuthorフィールドがない場合、テンプレートエンジンはi\_pageから直接FirstNameフィールドをレンダリングしようとします。