Categories: Новости

Разработка блочных дочерних тем WordPress с помощью одного файла JSON

С того момента, как я открыл свой первый магазин тем в 2008 году, и по сей день как человек, который просто возится, мой план всегда заключался в создании единой темы в форме CSS Zen Garden . Это был проект, который Дэйв Ши запустил в начале 2000-х, чтобы показать, как дизайнеры могут управлять сайтом только с помощью CSS. HTML останется прежним, но дизайн может быть любым.

Я достиг этой цели несколько раз в нескольких проектах. Технически все, что мне когда-либо было нужно, – это архитектурно обоснованная разметка в теме WordPress и собственный CSS в дочерней теме.

Концепция была простой, но со временем мое видение изменилось. Я хотел создать что-то, что упростило бы создание таких дочерних тем. Поэтому я создал собственные системы, чтобы обойти недостаток инструментов WordPress в области дизайна тем. Не хочу слишком хвастаться, но я чувствовал, что создал несколько удобных методов. Они позволили дизайнерам дочерних тем вставлять значения в файлы конфигурации, такие как имена семейств шрифтов и цветовые коды. Большинство из них также могут быть перезаписаны конечными пользователями через настройщик.

К 2018 году я уже усердно работал над тем, что станет моим magnum opus, лучшей темой WordPress, которую я когда-либо создавал. Я также планировал, что он будет моим последним. Некоторое время я думал о том, чтобы выйти из игры. Но это был проект, который мне нужно было довести до конца.

Затем новый редактор блоков все взорвал. Я работал с ним несколько месяцев, прежде чем он был запущен, но я знал, что разработка темы никогда не будет прежней. Проект Гутенберга продолжит созревать и изменит будущее WordPress.

В итоге я запустил свою тему. Это был один из первых коммерческих продуктов, поддерживающих новую блочную систему. Однако я тоже был сбит с толку.

Это были первые дни блочного редактора. На самом деле никто не знал, на что мы будем смотреть через три или более лет, но если бы вы обратили хоть немного внимания, вы могли бы увидеть, что тематика эволюционирует во что-то совершенно иное, чем это было в то время. Я потратил больше года на создание системы тематики, которая вскоре стала бы неактуальной – конечно, я думал, что мы бы достигли этой цели гораздо раньше.

WordPress 5.9 будет поставлять последние подкомпоненты полного редактирования сайта. Это будет включать в себя поддержку блочных тем под капотом. Пользователи, установившие их, могут настроить их с помощью редактора сайта и интерфейса глобальных стилей.

Что меня больше всего волнует, так это то, что будило меня каждое утро 13 лет назад: детские темы.

Блокирующие дочерние темы частично работали в плагине Gutenberg в течение нескольких месяцев. Однако функция, которую я ждал больше всего, была готова только неделю назад. Новый патч позволяет дочерней теме перезаписывать отдельные значения родительского theme.json файла. По сути, два файла объединяются, причем приоритет имеет дочерний.

Почему меня так взволновала эта функция? Потому что это была та же система, которую я создавал в прошлые годы, но лучше.

Увидев эту землю в разрабатываемой версии Гутенберга, первое, что я сделал, – это загрузил настраиваемую тему, над которой я баловался. Это проект, который я строил для развлечения и собственного назидания.

Затем я создал новый проект в своем редакторе кода. Я добавил требуемый style.css файл и вставил соответствующие поля заголовка. Больше мне это не понадобится. Дизайн моей дочерней темы будет полностью зависеть от другой функции.

Я добавил theme.json на корневой уровень дочерней темы и начал получать больше удовольствия от тематики, чем когда-либо.

Я выбрал пару осенних цветов и забавный шрифт для заголовков. В течение нескольких минут моя тестовая установка была покрыта новым слоем краски. Дизайн не был революционным или чем-то в этом роде. Я был просто поражен тем, насколько легко было изменить мой дизайн, добавив несколько значений.

Это тот тип детской тематики, о котором я всегда мечтал. Я хочу иметь возможность переключать элементы дизайна моей темы в разные сезоны и праздники. И я хочу иметь возможность делиться этими дочерними темами с другими.

Как я уже сказал, я раньше создавал такие методы дочерней тематики (я использовал PHP вместо JSON). Тем не менее, это намного более мощно, потому что оно основано на стандартной системе блоков, а не на чем-то особенном, что только горстка людей когда-либо будет использовать.

Некоторые из вас могут спросить, почему я не внес эти изменения через редактор сайта вместо создания дочерней темы. Рич Табор задал, по сути, тот же вопрос сегодня в Твиттере . «Если тема состоит из JSON и шаблонов блоков, которые можно изменять с помощью глобальных стилей, тогда для чего нужны дочерние темы?»

Допустим, я установил блочную тему и сделал несколько корректировок цвета. А теперь представьте, что я хочу смешать это, когда приближается Рождество – добавьте несколько цветов и найдите праздничный шрифт. Когда я внесу эти изменения, моего старого дизайна больше не будет, когда сезон закончится, потому что пользовательские настройки сохраняются на основе активной темы. Конечно, я мог бы записать все свои старые настройки и изменить их все позже. Однако выполнение этого через дочернюю тему означает, что я могу просто переключать темы в любое время. Мои старые настройки останутся нетронутыми.

Возможно, это скорее крайний случай. Кто сейчас вносит сезонные изменения в их дизайн, верно?

Интересно то, что я могу делиться дочерними темами, созданными с помощью одного файла JSON, с другими.

Создание дочерних тем было моей страстью с тех пор, как эта функция появилась в WordPress. В некоторых отношениях он практически не изменился. Темы по-прежнему могут перезаписывать шаблоны из родительского. Они могут продолжить добавлять собственный CSS, если захотят. Но теперь они могут настроить любую часть дизайна из одного стандартизованного файла. Это то, что стоит вернуть моему разработчику и создать еще одну тему.

Я также вижу будущее без дочерних тем, которое по-прежнему имеет те же преимущества, что и совместное использование элементов дизайна.

В каталоге шаблонов блоков уже есть макеты, которые должны работать с любой хорошо созданной темой WordPress. Однако есть и другие компоненты дизайна, которые мы можем разделить в будущем.

Я представляю будущее, в котором WordPress мог бы иметь устанавливаемые цветовые палитры, подобные тем, что предлагает Color Lovers . Просто просмотрите каталог, установите и измените цветовую схему, не находя новую тему. Что-то похожее на недавний плагин Adrian может служить той же цели для шрифтов. Это то, что сообщество может захотеть рассмотреть в будущем. На данный момент никаких идей не должно быть исключено.

На данный момент я счастлива, что в моем распоряжении есть все возможности детской тематики. Изменения должны появиться в Gutenberg 11.8 на этой неделе и в WordPress 5.9 позже в этом году.

writer

Recent Posts

Плагин Delete Me для WordPress помогает владельцам веб-сайтов предоставить право на забвение GDPR

Поскольку до крайнего срока соблюдения GDPR ЕС осталось всего 178 дней , многие владельцы сайтов…

2 года ago

Команда Gutenberg наращивает юзабилити-тестирование в WordCamp US

Команда Gutenberg создаст станцию ​​тестирования удобства использования в WordCamp US, где посетители смогут принять участие…

2 года ago

Плагин распространителя теперь в бета-версии: новое решение для синдикации контента WordPress от 10up

Сегодня компания 10up опубликовала предварительную версию своего плагина Distributor , нового решения для синдикации контента…

2 года ago

Gutenberg 1.8 добавляет большую расширяемость для разработчиков плагинов

На этой неделе был выпущен Gutenberg 1.8 с несколькими заметными улучшениями, которые предоставят разработчикам плагинов…

2 года ago

Gutenberg 15.5 представляет экспериментальную поддержку разметки сетки

На этой неделе был выпущен Gutenberg 15.5 с новыми функциями и улучшениями возможностей полнофункционального редактирования…

2 года ago

DesktopServer 3.8.4 включает подарок сообществу

DesktopServer выпустил версию 3.8.4 своего программного обеспечения для локальной разработки. Эта версия включает в себя…

2 года ago