Zum CPT:
Mittels des CPT kannst du eine völlig eigene Darstellung von Beiträgen erstellen.
Aber: meist fügt man den Inhalt mittels the_content ( https://codex.wordpress.org/Function_Reference/the_content ) ein und dieser Content wird im Dashboard mittels des WYSIWYG vom User selbst erstellt und gestaltet. Daher mein Hinweis auf die Custom Fields.
Zu den CustomFields:
Mittels Custom Fields kann man viele verschiedene Dinge "anstellen". ZBsp: zusätzliche Contentblöcke einfügen, den Loop zu Ausgabe von Daten manipulieren, Metadaten mitgeben etc.
In deinem Fall könntest du zBsp. im CPT den WYSIWYG Editor ganz deaktivieren und nur einen reinen Texteditor (in welchem du auch kein HTML-Zulässt) integrieren und zusätzlich vier Felder in denen der User Bilder hochladen kann/muss erstellen. Und in welcher Art und Weise der Text und die einzellnen Bilder dann im Frontend ausgegeben werden legst du dann im CPT-Template selber fest. D.h. der User hat keine Möglichkeiten in die Formatierung der Artikel einzugreifen, da du diese direkt im Template sozusagen hardcodest.
LG, pixselig