Consider a site with a very flat hierarchy that has a lot of basic pages. Most pages on the site are extremely similar, so they can all share the same entry type (and thus, fields) without problems.
The problem is, there are a few pages that have wildly unique content layouts. There's special content that will only ever be used on these pages.
From my understanding, there's a few solutions to this:
- Use a Matrix field in the Page entry type and add a block for each special page you need. This lets you build the unique pages, but for the dozens of other "normal" pages it becomes very weird and unnatural (plus there's nothing stopping the client from erroneously adding the 'special page' Matrix blocks on non special pages).
- Using multiple entry types, but this is also a bit clunky and would mean have to using a Channel or Structure.
- Use Global sets (one for each special page). Also a bit of a dirty workaround.
Is there a cleaner way to achieve "one-off" fields that are used only by a specific entry?
Another CMS - Bolt - has a solid solution to this: Template Specific Fields. As another example: using WordPress with ACF, you can assign field layouts on a per-entry basis if required.
I was hoping something similar could be achieved in Craft.