cms - это попытка сэкономить, так что там в целом низкий уровень, и это больно. Процедурщина сама по себе не плоха в маленьких количествах, точечно, но без контроля превращается в ад зависимостей и глобальных состояний. ООП там тоже есть, но скорее "типа ООП" - когда ад зависимостей и глобальных состояний оборачивается в классы. Это вообще офигеть, глаза вытекают, без отладчика лучше даже не подходить - не распутаешь.
На самом деле тут все зависит от человека, от его опыта и образования. Те кто поопытнее в основном стараются писать примитивный, предсказуемый, простой код. Те кто не развивался или хотят казаться поопытнее - оперируют шаблонами для виду, реально все запутывая.
Проблема в том, что конкретно на cms реально опытных 2,5 человека от всей толпы, а это страдания: сам за всех нормально не сделаешь, значит по факту работаешь с мешаниной вместо кода. Так что в этом плане фреймворки конечно получше - там в целом уровень лучше. Но не факт - писать говнокод никто не запрещает на любом уровне, просто меньше откровенных новичков.
Мне кажется тут еще сильно влияет порог входа: чем проще начать, тем хуже ситуация наблюдается. Например питон и php позволяют творить дичь, и люди её творят. Более строгие языки за дичь сразу по рукам бьют - там все более однообразно.
Полезные плагины
PODS - создание кастомных типов
ADMIN COLUMNS
dbDelta
payment-onlyne (bitza)
simple-table (bitza)
PublishPress Capabilities
PublishPress Permissions
Кстати, про иерархию я уже записывал видеоурок.
Список ниже показывает приоритет задействования PHP-шаблонов файлов темы для отображения типа записей «Страницы».