Команда разработчиков Gutenberg подтверждает, что API Meta Box не будет официально объявлен устаревшим
Опубликовано: 2017-08-09
Дискуссия о том, как Гутенберг будет обрабатывать мета-боксы, разгорелась на выходных после того, как участник прокомментировал проблему GitHub с беспокойством по поводу удаления поддержки мета-боксов из самой последней вехи.
«Я вижу, что эта жизненно важная проблема была снята с любой вехи», — сказал @steveangstrom. «Это снова потеряло приоритет, в то время как навороты для редактирования блога получили много работы и были добавлены в бета-версии. Это очень беспокоит будущее WordPress как CMS».
Джеймс Найлен, один из ведущих разработчиков проекта, заверил последователей темы, что команда Гутенберга не забыла об этой проблеме, а скорее считает ее «чрезвычайно сложной проблемой, которую мы только начинаем изучать, наряду со многими другими проблемами». много других приоритетов для того, чтобы редактор работал хорошо». Он также попросил помощи у сообщества в планировании и тестировании реализации поддержки метабоксов.
Этот ответ многое оставил неясным. Участники обсуждения, многие из которых являются разработчиками, обеспокоенными перспективой переписать все свои метаблоки как компоненты React, задаются вопросом, почему метаблоки не могут работать вместе с новым редактором Gutenberg и почему команда решила включить метаблоки в масштаб проекта.
«Можно ли заменить существующий редактор сообщений TinyMCE на Gutenberg, оставив остальную часть интерфейса, включая метаблоки и существующие хуки, без изменений?» — спросил Кевин Хоффман. Когда Найлен пояснил, что Гутенберг, как написано сегодня, предназначен для post_content , Хоффман резюмировал опасения, которые выразили многие разработчики:
Если Gutenberg действительно задуман как редактор
post_content, то метабоксы следует оставить в покое, поскольку они не связаны сpost_content.Кроме того, потребность в API для перевода метаблоков PHP в метаблоки React является надуманной проблемой. Это не должно быть проблемой, но это стало проблемой, потому что где-то по ходу дела было решено, что переписывание редактора
post_contentтакже должно полностью изменить работу метабоксов.В #2251 вы описали огромную проблему написания такого API. Перевод метаблоков PHP в React для популярного решения для настраиваемых полей, такого как ACF, достаточно сложен, не говоря уже о попытках сделать это для каждой реализации метабокса, которая существует сегодня, популярной или нет. Он не масштабируется.
Поскольку участники Gutenberg поделились, что они только начали изучать проблему мета-блоков, теперь ясно, почему нет дорожной карты того, как проект будет обрабатывать «устаревшие» мета-блоки PHP. В июле Найлен сказал: «Если бы мне пришлось угадывать, где мы окажемся здесь: текущие метабоксы будут перемещены в «устаревшую» область, и мы предоставим API, документацию и примеры для регистрации блока метабоксов «нового стиля». -штучки.
Разработчики плагинов, которые управляют библиотеками метабоксов, агентствами и другими заинтересованными сторонами, следят за билетом, чтобы узнать, как спланировать WordPress 5.0, который был нацелен на выпуск Gutenberg. Андрей Савченко спросил, планирует ли WordPress официально отказаться от API метабоксов, на что команда наконец получила четкий ответ. Матиас Вентура ответил:
«Намеревается ли WordPress официально отказаться от Metabox API?»
Нет.Вопрос, на который еще не получен полный ответ, заключается в том, как работают метабоксы в контексте редактора Гутенберга. Должны ли они оставаться прежними или эволюционировать? Как мы можем двигаться к целям дизайна с наименьшим возможным нарушением?
Этот вопрос затянулся не из-за отсутствия желания, а из-за нехватки ресурсов. Основное внимание в этом проекте уделяется предложению богатого интерфейса редактирования контента, оптимизированного для прямого манипулирования пользовательским контентом с помощью понятия блоков. (Поскольку я активно использовал метабоксы для различных проектов, я считаю, что блоки могут предложить лучший шаг вперед для удовлетворения многих из этих потребностей, обеспечивая при этом лучший пользовательский опыт.)
Вентура перечислил несколько вариантов обработки мета-боксов, которые команда рассмотрела, и попросил помощи у сообщества, чтобы создать лучшее решение:
- Если мы обнаружим, что мета-бокс зарегистрирован, мы можем вернуться к старому интерфейсу, ничего не изменится.
- Мы могли бы разделить редактирование контента и изменение метаинформации на два экрана или этапа.
- Мы можем попытаться увидеть, насколько возможно отобразить их как есть (PHP) под содержимым: #2251.
- Тема/плагин/CPT может отменить регистрацию нового интерфейса по мере необходимости.
- Различные элементы, которые полагались на метаблоки, могли быть преобразованы в блоки для пользовательского интерфейса (по-прежнему сохраняя данные отдельно).
- Мы могли бы реализовать расширяемость мета-боксов на основе API, например, Fields API.
Когда его попросили ответить на вопрос, почему метабоксы включаются в контекст нового редактора, ведущий дизайнер Gutenberg Джоэн Асмуссен пояснил, как команда решила включить метабоксы в рамки проекта:
Гутенберг действительно начал с окна редактора. Первоначальная цель состояла в том, чтобы объединить несколько разрозненных интерфейсов в единый унифицированный блочный интерфейс. Вскоре стало очевидно, что для того, чтобы создать убедительный опыт, вращающийся вокруг этого унифицированного блочного интерфейса, нам пришлось рассмотреть весь процесс написания, включая настройки и публикацию.
Если ключевая сила WordPress заключается в том, чтобы каждый мог легко создавать насыщенные посты, то мы не можем просто проектировать для тех из нас, кто уже знает, как использовать редактор. Мы должны учитывать пользователей, которые никогда раньше не использовали WordPress, и то, что они ожидают от современного интерфейса публикации. В противном случае мы просто добавили бы когнитивную нагрузку к и без того тяжелому интерфейсу.
Вопрос о том, как метабоксы впишутся в контекст редактора Гутенберга, остается открытым. Участники обсуждения очень хотят получить ответ на этот вопрос ради обратной совместимости, а также потому, что он влияет на текущие решения, касающиеся разработки Gutenberg и дизайна экрана.
«Я полностью понимаю, как много работы было проделано для подхода к замене «экрана», — прокомментировал этот вопрос Хави Иварс. «Но разве проект, который начался с целью замены «редактора постов», не должен был вернуться к сообществу, прежде чем в одностороннем порядке принять решение о замене всего экрана редактора?»
API мета-блоков не устарел, но также нет четкого пути вперед в отношении того, как Гутенберг будет поддерживать «устаревшие» мета-блоки PHP. Команда Гутенберга заявила, что проблема не решена из-за нехватки ресурсов. Проект нуждается в вкладе сообщества и лучшем общении, если команда собирается найти решение, которое плавно переведет большинство сайтов WordPress в эпоху Гутенберга с наименьшим количеством поломок.
В настоящее время возможность рендеринга устаревших метаблоков PHP под контентом сопряжена с проблемами и все еще обсуждается. Если у разработчиков недостаточно времени или клиентских ресурсов, чтобы переписать свою работу в метаблоки на основе JS, то для сайтов, которым необходимо сохранить устаревшие метаблоки «PHP», может потребоваться четкий путь для отказа от интерфейса Gutenberg. .

