Как использовать движки при написании сайта?
1. Можно взять готовый движок с необходимым функционалом, дописать к нему модуль и получить сайт.
2. Можно использовать фреймворки, которые дают только "основу" движка, без бизнес-логики.
3. Можно написать всё с нуля.
Трудозатраты сравните сами.
1 - готовый дом, нужно построить только "удобства"
2 - только фундамент
3 - пустой земельный участок
Движки, как правило, распространяются по определенной лицензии, и изменять разрешается далеко не все движки. Поэтому в качестве примера привел написание модуля.
CMS намного чаще используют для того, чтобы сделать готовый сайт, не написав ни строчки кода (ну только шаблон сверстать или свистнуть откуда-нибудь). 
> как связать свой код
Здесь всё зависит от CMS. Варианты
0) самый печальный - CMS проприетарная, код зашифрован. Здесь - никак (кроме последнего пункта ниже, но тоже не факт). 
1) как раз случай с wordpress - ко многим CMS можно писать свои плагины, используя "внутреннее API" самой CMS.
2) если CMS плагинов не предполагает, но код открыт/доступен - можно переписать часть кода так, как необходимо. 
3) отдельные гении пишут просто независимый код, который напрямую взаимодействует с той же базой, что и cms. Оправдано в очень-очень редких случаях. 
А зачем использовать - чтобы не плодить тонны говнокода, который делает одно и то же.