Подготовка к WordPress 5.4: изменения тем и плагинов, о которых должны знать разработчики

Опубликовано: 2020-03-05

С приближением выпуска WordPress 5.4 разработчикам плагинов и тем пора начать тестировать свои расширения и убедиться в отсутствии проблем. Есть также новые API для будущих функций. Вчера основная команда выпустила первый релиз-кандидат для 5.4. Официальный релиз запланирован на 31 марта.

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

Разработчики темы

Скриншот нового блока социальных иконок, используемого через редактор блоков.
Новый блок социальных иконок.

Есть несколько изменений, которые авторы тем захотят протестировать. WordPress 5.4 имеет несколько дополнительных функций темы. Он также имеет несколько изменений, связанных с разметкой, которые могут нарушить дизайн темы во внешнем интерфейсе и в редакторе блоков. К сожалению, для авторов тем, которые хотят поддерживать несколько версий WordPress, некоторые из этих изменений могут означать небольшое дополнительное раздувание CSS.

Блоки социальных иконок и кнопок

WordPress 5.4 представляет два новых блока: социальные иконки и кнопки. Блок социальных значков позволяет пользователям вставлять значки/ссылки до 40 различных социальных сетей. Блок кнопок позволяет пользователям группировать несколько блоков кнопок вместе. Авторы тем, внедряющие пользовательские стили редактора блоков, должны учитывать эти новые блоки, чтобы убедиться, что они выводятся правильно.

Создание пользовательских пресетов градиента

Новый API градиентов позволяет авторам тем определять пользовательские предустановки градиента, которые пользователи могут использовать либо с блоками групп, либо с блоками кнопок. Авторам тем нужно будет проделать некоторую работу, чтобы улучшить бельмо на глазу, то есть предустановки градиента по умолчанию. Приложив немного усилий, градиенты могут стать полезным инструментом в распоряжении пользователя. Авторы тем также могут полностью отключить градиенты, если не хотят их поддерживать.

Изменения разметки и стиля редактора блоков

Авторы тем, которые напрямую нацелены на определенные классы редакторов, должны будут проверить свои стили редакторов блоков. Многие классы с префиксом editor- были изменены для использования префикса block-editor- . Элемент-обертка с .edit-post-layout__content был полностью удален. Несколько элементов-оболочек были удалены из блоков и компонента форматированного текста. Встроенные в Core отступы и отрицательные поля для блоков были переработаны, что является долгожданным дополнением. Возможно, авторам тем больше не придется бороться с несколькими вложенными селекторами, чтобы обеспечить базовый рабочий макет, соответствующий внешнему интерфейсу.

Эти изменения уже сломали несколько тем, которые я видел. Есть большая вероятность, что многим авторам тем потребуется обновить стили редактора блоков.

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

Разметка календаря и изменения класса

Основная команда изменила разметку функции get_calendar() , которая также влияет на виджет Календарь. В выходных данных календаря больше нет элемента <tfoot> . Вместо этого ссылки на предыдущий и следующий месяц были перемещены в элемент <nav> под элементом <table> .

Выходные данные календаря также добавляют или изменяют несколько идентификаторов и классов:

  • .wp-calendar-table добавлен к элементу-оболочке.
  • .wp-calendar-nav добавлен к элементу оболочки навигации.
  • .wp-calendar-nav-next заменяет идентификатор #next в ссылке на следующий месяц.
  • .wp-calendar-nav-prev заменяет идентификатор #prev в ссылке на предыдущий месяц.

Это критические изменения. Любой пользовательский CSS, ориентированный на старый HTML или идентификаторы, необходимо будет обновить.

Разработчики блоков

Снимок экрана редактора кода, который демонстрирует исходный код для создания блочного плагина.
Исходный файл JavaScript, созданный сценарием формирования блоков.

Для разработчиков плагинов, которые создают пользовательские блоки, WordPress 5.4 представляет несколько новых API и инструментов для работы с системой блоков.

Блочные леса

У разработчиков есть новый пакет NPM для быстрого создания блочного плагина. С помощью одной команды npm init @wordpress/block <plugin-name> скрипт создаст новый каталог и создаст соответствующие файлы PHP, CSS и JavaScript, необходимые для создания блочного плагина. Разработчики могут использовать современные инструменты JavaScript по умолчанию или при желании использовать версию ES5.

Цель пакета блочных шаблонов состоит в том, чтобы авторы плагинов создавали одноблочные плагины, которые в конечном итоге попадут в официальный каталог блоков.

API коллекций блоков

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

API вариантов блокировки

Новый API вариаций блоков позволяет разработчикам блоков создавать копии блоков с вариациями. Каждый зарегистрированный вариант будет отображаться как отдельный блок в средстве вставки блоков, из которого пользователи смогут выбирать.

Хорошим примером этой функции является новый блок социальных иконок. Это единый блок с 40 вариациями для разных социальных сетей.

Другие изменения, связанные с разработчиками

Есть еще несколько важных изменений, которые касаются как плагинов, так и темы разработки.

Новые хуки навигационного меню

После ожидания, ожидания и ожидания разработчики наконец-то получили некоторые часто запрашиваемые крючки для добавления настраиваемых полей на экран администратора меню навигации и настройщик. Как минимум один билет на 9 лет, но лучше поздно, чем никогда. В прошлом разработчикам приходилось использовать пользовательский класс Walker для выполнения некоторых необходимых настроек. Однако одновременно можно было использовать только один класс Walker, а это означало, что несколько плагинов, внесших изменения, не будут работать вместе.

Основная команда добавила новый хук wp_nav_menu_item_custom_fields на экран администратора навигационного меню, который появляется перед кнопками «переместить» для отдельных пунктов меню. Для паритета с админом, пункты навигационного меню имеют новый wp_nav_menu_item_custom_fields_customize_template в настройщике. Эти хуки позволят разработчикам добавлять настраиваемые поля формы, необходимые для добавления настраиваемых данных в пункты навигационного меню.

apply_shortcodes() псевдоним функции

WordPress 5.4 представляет новую apply_shortcodes() . Это псевдоним функции do_shortcode() . Новая функция обеспечивает более семантически правильное имя функции. Как правило, функции с префиксом do_ ожидают вывода или какого-либо действия. Функции с префиксом apply_ ожидают возврата данных.

Если вы создаете тему или плагин с областями, поддерживающими шорткоды, вам нужно переключиться на новую функцию. Хотя do_shortcode() в настоящее время не помечена как устаревшая, ее конечной целью должно быть именно это.