Sitecore has been using the unversioned standard field “__Display name
” along with the built-in “Name
” for as long as I can remember. Basically, the item Name
is similar to a shared field and is limited to small set of characters. An item name can basically be A-Z, a-z, 9-0, space and a few special characters, such as underscore (_
), dash (-
), dollar-sign ($
). It may also be a single star (*
).
Since the Name
is very limited, the __Display name
fields allows users give item more user friendly names. Since it’s persisted in an unversioned field, it also allows for translation. The Sitecore.Data.Items.Item
class has a convenience read-only DisplayName
property that returns the content of the __Display name
field, if set, otherwise it fallbacks on the item Name
. This principle is used basically everywhere in Sitecore. It’s used when rendering the item tree, as link text on rendered links and so on.
In Sitecore 9.2 (I believe), Sitecore made a small, but very important breaking change on how the Display Name works. I can’t recall seeing this change been noted in any release notes either, but I might have missed it.
Update: I realize I’ll need to keep updating to this post as I receive more input. I’ll keep them the bottom of the post.
Continue reading