Любая компания WordPress, которая создает и поддерживает достойные темы, уже делает по крайней мере некоторую предварительную работу, поскольку WordPress все ближе и ближе к объединению своей будущей системы блочных тем. Тематическая группа Automattic не исключение. Вчера Бен Двайер объявил о новой родительской теме команды Blockbase в блоге Theme Shaper. Он включает поддержку глобальных стилей и шаблонов блоков.
Тема основана на классическом проекте Blank Canvas, готовом для блочного редактора, который Automattic запустил в январе. Еще несколько дней назад он даже назывался Blank Canvas Blocks. Следили за работой команды в последние пару месяцев, ожидая увидеть, как продвигаются Blockbase и Mayland Blocks , дочерняя тема, основанная на оригинальном Mayland, созданном командой.
Команда создала хорошо продуманную систему, которая не позволит им пересматривать каждую тему блока, которую они создают для WordPress.com, каждый раз, когда происходит изменение. Для авторов тем, которым еще предстоит погрузиться в пруд с блочными темами, это также может быть отправной точкой, в которой они нуждаются.
Священным Граалем некоторых дизайнеров блочных тем будет создание проекта, состоящего лишь из theme.jsonфайла. Цель: позволить WordPress сгенерировать весь CSS с помощью настроек и конфигураций стилей. Для всех авторов тем никогда не удастся достичь своих целей в дизайне с помощью этого – большинству потребуется хотя бы немного настраиваемого CSS. И еще неизвестно, является ли такая цель хорошей вещью.
Тем не менее, будущее дизайна тем будет зависеть от стилей, сконфигурированных и сгенерированных с помощью JSON. Blockbase использует эту систему для создания стандартизированного набора ориентиров для своих возможных дочерних тем. Это гарантирует, что создатели не будут постоянно обновлять свои темы, поскольку стили блоков быстро развиваются.
Blockbase служит мостом между тем, что в настоящее время можно настроить с помощью theme.jsonфайла, и тем, что будет возможно в будущем.
Это современные символы подчеркивания (_s) для блоков, и сообществу дизайнеров тем WordPress понадобится продвижение такого проекта. Им понадобится отправная точка и образовательный инструмент, и Blockbase – это именно то, что вам нужно.
Последняя версия от Гутенберга плагин покрывает только часть того , что он и, в конце концов, WordPress будет обрабатывать в ближайшие месяцы и годы. Однако он позволяет авторам тем добавлять пользовательские настройки с помощью settings.customключа, создавая свои собственные переменные CSS, которые автоматически выводятся в заголовок сайта. Тематическая группа использовала эту функцию в своих интересах. Если Gutenberg в настоящее время не поддерживает настройку, у Blockbase есть специальный theme.jsonпараметр. Затем тема использует сгенерированные переменные CSS в своей таблице стилей. Поскольку Гутенберг и WordPress в конечном итоге поддерживают больше этих настроек из коробки, команда может просто удалить ненужный код.
Тема не совсем безвкусная. «Blockbase предназначена для представления всех настроек стиля темы, которые, по нашему мнению, должны в конечном итоге жить в глобальных стилях и настраиваться пользователями», – написал Дуайер. Разработка блочной темы все еще может измениться неожиданным образом, поскольку система продолжает совершенствоваться, и вместе с ней необходимо будет меняться и тема. Стоит ожидать неровностей дороги.
Это проект, из которого могут поучиться будущие и нынешние участники блока. Хотя в настоящее время он доступен через GitHub , Дуайер сказал, что команда может изучить вопрос о том, чтобы сделать его пакетом npm, если будет достаточно интереса.
Одна из самых уникальных особенностей темы – это работа с theme.jsonнастройками через PHP. В functions.phpфайле Blockbase он извлекает имена семейств шрифтов, зарегистрированные в файле JSON. Затем он автоматически загружает связанные с ними таблицы стилей из Google Fonts API. Хотя это не задокументировано в коде (а должно быть), сделано обоснованное предположение, что цель состоит в том, чтобы позволить авторам дочерних тем объявлять шрифты в своих собственных theme.json файлах, а Blockbase обрабатывать загрузку.
Код относительно прост. Важна техника.
Поскольку разработчики пытаются справиться с изменяющейся природой архитектуры тем WordPress, им необходимо будет найти новые решения для некоторых старых проблем, которые они ранее решали в мире, основанном только на PHP. Когда большая часть конфигурации тем перемещается в JSON, а шаблоны – в HTML, может быть легко почувствовать, что они теряют динамическую природу PHP. Это было что-то надежное, и разработчики потратили годы на оттачивание пользовательских систем на базе старого WordPress.
Новый WordPress предоставляет более надежный набор инструментов для дизайна из коробки, но он может показаться немного чуждым. Вот почему просмотр реальных примеров кода того, как другие работают с этими функциями, является жизненно важным шагом в переводе большего числа авторов тем на блочную разработку.
Это может быть небольшая выборка кода, но это умное мышление. В своем путешествии, чтобы узнать больше о том, как работают блочные темы, часто сталкиваются с кирпичной стеной, борясь с системой. Этот код работает с ним, а не против него.
Написано несколько абзацев об одной функции, которая занимает всего 21 строку кода, но хочется видеть элегантно простые решения. Дело не в технике загрузки шрифтов; это решение проблем. Этот код, несомненно, будет скопирован много тысяч раз в ближайшие годы и модифицирован для многих тысяч применений. Если вы разработчик темы и еще не видите ее, вы ее увидите.