Создать тему или "натянуть" верстку на CMS это вопрос не просто какого-то переноса разметки из одних файлов в другие. Часто это именно внедрение функционала, который отображается в макете.
Например, если в шапке есть блок с номерами телефона, то надо предусмотреть, как из админки эти номера будут добавляться, и как их выводить. Если есть блок в макете "Свежие новости" с карточками статей, значит при создании темы надо как-то организовать сбор последних записей и потом их вывод. В этом плане WP имеет, конечно, готовые решения, но часто если брать их "из коробки", то и выводятся они с версткой, которую предусмотрели разработчики WP, иначе надо либо переделать свою верстку, либо вникать в то, как работает готовое решение и как-то его менять. Так что без PHP будет тяжело. Если ничего нестандартного не надо, то все достаточно просто.
Тема WP состоит из стилей css, и файлов-шаблонов php, а также скрипта functions.php, который отвечает больше за функционал. Тему можно создать как с нуля, так и унаследоваться от какой-то готовой, и переопределить в ней шаблоны и стили.
Главный файл темы, как ни странно, это style.css. Сначала в папке /wp-content/themes/ создаете новый каталог, в нем создаете файл style.css и в этот файл кидаете комментарий:
/*
Theme Name: Имя темы для админки
Author: себя любимого сюда
Text Domain: свои контакты для плюсиков в карму
*/
Если хотите унаследоваться от другой темы надо добавить еще Template: и указать название темы, а точнее папки, где лежит тема.
/*
Theme Name: Имя темы для админки
Author: себя любимого сюда
Text Domain: свои контакты для плюсиков в карму
Template: twentyseventeen
*/
Дальше, если надо переопределить шаблон, просто в своей папке создаете файл с таким же названием, он будет взят в приоритете. Единственное, есть нюанс с functions.php, так как родительский исполняется перед Вашим.
Работая с нуля, без наследования, надо еще добавить файлы index.php, header.php, footer.php и screenshot.png, он отобразиться в админке, как превью темы, последний, если не ошибаюсь, не обязательно. Файл header.php отвечает за вывод шапки, footer.php - подвала. index.php отвечает за все запросы, ЕСЛИ НЕТ более подходящего файла-шаблона. 404.php отвечает за 404 ошибку. page.php отвечает за вывод страницы (в WP можно создавать отдельные страницы), category.php за вывод страницы категорий, single.php за вывод одной записи и тд.
Подробнее
Шаблоны можно создавать и более гибко, например, под какой-то конкретный тип записи, или для записей, которым в админке задан другой шаблон вывода, подробнее о файлах темы
тут.
WP имеет систему виджетов и плагинов, которые значительно расширяют возможности движка. WP предлагает регистрацию своих таксономий, типов записей и всего такого прочего. Смотрите на сайте, который давал по ссылкам выше, а также давали выше в ответах ссылку на codex wprdpress.
Насчет других CMS верно подметили, в каждой по своему, например в OpenCart используется шаблонизатор Twig, и сам движок написан по MVC, то есть функционал отделен от отображения, поэтому в нем легче править шаблоны, в них практически один html, WP похуже, тут все вперемешку с php.
PS: создавая тему еще много есть тонкостей, например, чтобы подключить свои стили, свой js надо знать понятие хуков, и подключать скрипты и стили через вызов функций, которые в свою очередь должны подписаться на события, то есть хуки... Так что, wp не самый легкий вариант, если все эти понятия далеки от понимания, но зато есть
статьи,
видео,
доки. Успехов!