@espinal

Как создать тему для WordPress?

Сверстал "сайт": html+css+js. Хотел перенести его на CMS (так как опыта с серверными языками нет, для написания бэка).
Посмотрел кучу уроков и перечитал много литературы (реально много). Не нашел универсального объяснения.
Я уже задавал тут вопрос, люди посоветовали MODX но, по нему еще меньше понятных уроков.

Как сделать шаблон, тему для CMS, имея готовый сайт (только сверстанный)?

.php не уметь... Есть ли стандартные выражения подходящие для любых сверстанных страниц?
  • Вопрос задан
  • 474 просмотра
Решения вопроса 1
dimovich85
@dimovich85 Куратор тега CSS
https://u-academy.net/
Создать тему или "натянуть" верстку на 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 не самый легкий вариант, если все эти понятия далеки от понимания, но зато есть статьи, видео, доки. Успехов!
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Sanes
@Sanes
Без знаний PHP только Modx. Документации и уроков на русском выше крыши.
Ответ написан
Комментировать
StanislavMychko
@StanislavMychko
Мыслитель
Все зависит от шаблонизатора который используется в CMS. Но я так вижу у вопроса Тег Wordpress.
На Wordpress темы верстаются довольно легко.
Любая тема разбивается на стандартные блоки (шапка сайта, подвал, меню, панель боковая и т.д.). В соответствии этим блокам создаются файлы с названиями. Есть свои особенности, но они указаны в документации.
Вы поймите - одну и туже сверстанную Вами тему (шаблон) для разных CMS нужно "собирать" по разному в соответствии со своими правилами.
Для примера ссылка для Wordpress Создание тем
Ответ написан
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
У вас какая цель переноса вёрстки на ЦМС? Сделать задачу для себя или для заказчика? Если для заказчика — ищите того, кто вёрстку превратит в тему. Если сделать без излишеств и просто, то работы на 1–2 дня. Если вам научиться надо, то с серверным языком немного разобраться придётся. Берёте стандартную вордпресовскую тему и переделываете на свою вёрстку. Если вам для управления сайтом, то почему бы не работать просто с ХТМЛ? Часто придётся менять информацию?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
16 нояб. 2024, в 01:00
3000 руб./в час
15 нояб. 2024, в 23:33
20000 руб./за проект
15 нояб. 2024, в 23:11
1000 руб./за проект