I am working on a large multilingual website with several dozens of thousands pages are available in numerous languages. It also features news being released on a daily basis by tens of news editors under plenty of nested categories. Thus it was matter of time for me to be asked to implement an adequate RSS Feed solution to expose all the possible data.
Luckily, Sitecore has built-in RSS Feed feature, but unfortunately it has very limited implementation by data driven using Sitecore Queries, obviously this is quite a legacy feature was added into Sitecore way before version 7.0 with its revolutionary Content Search API.
What is wrong with this old-fashioned Sitecore Query:
- it is limited in its applicable functionality
- has complicated synthax
- isn't easy to debug and troubleshoot, especially on complex conditions
- is slooooooow (even fast query is slow!)
- talks to database and generates cache for touched items
That was absolutely obvious that I should use
Content Search API. I googled around and came across some implementation done by
Douglas Couto for Sitecore 7 and Lucene. I reworked it to be compatible for versions
9.*+ and added few new features.
Once you get the items from either TDS serialization or Sitecore package, a new Content search section is added to RSS Feed template to drive the data out of Content Search API rather than Sitecore Query:
All the benefits of Content Search API are available to you from now on. Using this new section one may fine tune the data to be exposed by not just certain page templates, but also filter to be located under specific node, has certain tags and specify recency criteria for that filtered data.
Hope this helps!
I made this 22-minutes long video in order to demonstrate how one can create a preview
environment by creating a new publishing target on an example of vanilla
Sitecore 9.3.
Adding new publishing target is very helpful when you:
- would allow content authors to demonstrate the content being not
in a final state
- want to demonstrate that content to an audience without access to
your Sitecore instance
This demo shows how to create a publishing target database, assign it to
a designated hostname and then also to create an index for a given
preview database. It also demonstrates the difference between publishing
content in non-final-state into both live and preview databases.
Hope it helps!