---
title: "例:シンジケーションエントリーカテゴリ"
slug: "example--syndication-entry-categories"
abstract: "シンジケーションAPIを使って各シンジケーションエントリに複数のトピックカテゴリを関連付ける方法の例です。"
---
# 例:シンジケーションエントリーカテゴリ

RSS形式を使って、各シンジケーションエントリに複数のトピックカテゴリを関連付けることができます。カテゴリの一覧を、カテゴリ定義アイテムを含むフォルダとして管理できます。

シンジケートされた項目のデータテンプレートに選択フィールドを追加すれば、CMSユーザーが任意の数のカテゴリ定義項目を選択できます。各シンジケーションエントリにカテゴリを含めることで、カテゴリ定義項目の名前をSystem.ServiceModel.Syndication.SyndicationItem.Categoriesリストに入力できます。

以下の例を基に、シンジケーションエントリーのカテゴリを含むカスタムフィードを実装できます。

1.  Visual StudioのWebアプリケーションプロジェクトでは、以下の例に基づいてクラスを追加します。
    
    namespace Sitecore.Sharedsource.Syndication {
    
     using System.ServiceModel.Syndication;
    
     public class CategorizedFeed: Sitecore.Syndication.PublicFeed
    
     {
     protected override SyndicationItem RenderItem(Sitecore.Data.Items.Item item) {
     Sitecore.Diagnostics.Assert.ArgumentNotNull(item, "item");
     SyndicationItem entry = base.RenderItem(item);
     Sitecore.Data.Fields.MultilistField entries = item.Fields"Categories";
     if (entries != null) {
     foreach(Sitecore.Data.Items.Item category in entries.GetItems()) {
     if (category != null) {
     entry.Categories.Add(new SyndicationCategory(category.Name));
     }
     }
     }
     return entry;
     }
     }
    }
    
2.  **コンテンツエディター**のフィード定義項目の拡張**性**セクションの**Type**フィールドで、.NET型の署名を入力します。例えば:Sitecore.Sharedsource.Syndication.CategorizedFeed, Assembly
    
3.  **コンテンツエディター**でカテゴリ定義アイテムを含むフォルダを作成します。
    
4.  **テンプレートマネージャー**または**コンテンツエディター**のシンジケーションエントリに使われるデータテンプレートで、「**カテゴリ**」という選択フィールドを追加し、その**カテゴリフィールドの****ソース**プロパティを、前ステップで作成したカテゴリ定義アイテムを含むフォルダに設定します。
    
5.  **コンテンツエディター**のシンジケーションエントリーの**カテゴリ**欄で、関連するカテゴリを選択します。
    

> !ヒントCategoriesフィールドを含むデータテンプレートを作成し、そのデータテンプレートをシンジケーションをサポートするテンプレートのベーステンプレートとして追加してください。