Example: syndicate children of multiple items

Version: 10.4

You can implement a custom RSS feed based on the following example that syndicates the children of all of the items selected in the field named Sources in the feed definition item.

  1. In the Visual Studio Web application project, compile a class based on the following example:

    RequestResponse
    namespace Sitecore.Sharedsource.Syndication
    {
        public class SelectionFeed : Sitecore.Syndication.PublicFeed
        {
            public override System.Collections.Generic.IEnumerable<Sitecore.Data.Items.Item> GetSourceItem()
            {
                Sitecore.Data.Fields.MultilistField entries = this.FeedItem.Fields["Sources"];
    
                if (entries == null || entries.Count < 1)
                {
                    return new Sitecore.Data.Items.Item[0];
                }
    
                Sitecore.Collections.ItemList list = new Sitecore.Collections.ItemList();
    
                foreach (Sitecore.Data.Items.Item parent in entries.GetItems())
                {
                    foreach (Sitecore.Data.Items.Item child in parent.Children)
                    {
                        if (Sitecore.Syndication.FeedUtil.IsConfiguredForFeed(child))
                        {
                            list.Add(child);
                        }
                    }
    
                }
    
                if (list.Count < 1) {
                    return new Sitecore.Data.Items.Item[0];
                }
    
                list.Sort(new Sitecore.Data.Comparers.UpdatedComparer());
    
                return list.ToArray();
            }
        }
    }
    
  2. In the Template Manager or the Content Editor, in the System/Feeds/RSS Feed data template, in the Extensibility section, add a Treelist field named Sources, and set the Source property of this field to the /sitecore/content item.

  3. In the Content Editor, in the feed definition item, in the Extensibility section, in the Type field, enter the signature of the class: Sitecore.Sharedsource.Syndication.MultiParentFeed, Assembly

  4. In the Content Editor, in the feed definition item, in the Extensibility section, in the Sources field, select items with children to syndicate.

Do you have some feedback for us?

If you have suggestions for improving this article,