Cover Image for Регистрация блоков только через PHP в WordPress: новые возможности и упрощение разработки

Регистрация блоков только через PHP в WordPress: новые возможности и упрощение разработки

4 марта 2026

Команда разработчиков WordPress Core представила важное обновление, которое существенно упрощает процесс регистрации блоков — теперь это можно делать исключительно средствами PHP, без необходимости создавать файл block.json.

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

Что такое PHP-only регистрация блоков?

Традиционно регистрация блоков в WordPress требовала наличия файла block.json, который описывал метаданные блока: название, атрибуты, категорию, иконку и другие параметры. Начиная с нового подхода, разработчики получают возможность передавать все необходимые параметры напрямую через функцию register_block_type() в PHP-коде, минуя создание отдельного JSON-файла.

Пример регистрации блока с использованием нового подхода:

function gutenberg_register_php_only_blocks() {
    register_block_type(
        'my-plugin/example',
        array(
            'title'           => 'My Example Block',
            'attributes'      => array(
                'title'   => array(
                    'type'    => 'string',
                    'default' => 'Hello World',
                ),
                'count'   => array(
                    'type'    => 'integer',
                    'default' => 5,
                ),
                'enabled' => array(
                    'type'    => 'boolean',
                    'default' => true,
                ),
                'size'    => array(
                    'type'    => 'string',
                    'enum'    => array( 'small', 'medium', 'large' ),
                    'default' => 'medium',
                ),
            ),
            'render_callback' => function ( $attributes ) {
                return sprintf(
                    '<div>%s: %d items (%s)</div>',
                    esc_html( $attributes['title'] ),
                    $attributes['count'],
                    $attributes['size']
                );
            },
            'supports'        => array(
                'autoRegister' => true,
            ),
        )
    );
}

add_action( 'init', 'gutenberg_register_php_only_blocks' );

Ключевые преимущества нового подхода

  • Упрощение структуры проекта — не нужно поддерживать отдельный block.json файл для простых блоков, особенно при серверном рендеринге.
  • Динамическая конфигурация — параметры блока можно формировать динамически в зависимости от настроек плагина, роли пользователя или других условий во время выполнения.
  • Удобство для PHP-разработчиков — разработчики, работающие преимущественно с серверной частью, получают более привычный инструментарий без необходимости углубляться в экосистему JavaScript/Node.js.
  • Ускорение прототипирования — быстрее создавать и тестировать блоки без настройки системы сборки.
  • Совместимость — новый подход полностью совместим с существующей экосистемой WordPress и не ломает обратную совместимость.

Когда использовать PHP-only регистрацию?

Новый метод особенно актуален в следующих сценариях:

  • Создание динамических блоков, которые полностью рендерятся на сервере.
  • Разработка простых блоков без сложной логики на стороне редактора.
  • Ситуации, когда конфигурация блока зависит от данных базы данных или настроек плагина.
  • Быстрое создание прототипов и MVP без настройки инфраструктуры сборки JavaScript.

Сравнение с традиционным подходом через block.json

Важно понимать, что PHP-only регистрация — это дополнение, а не замена существующего подхода. Файл block.json по-прежнему остаётся рекомендованным способом для полноценных блоков с богатым редакторским интерфейсом, поскольку он обеспечивает:

  • Автоматическую регистрацию скриптов и стилей.
  • Поддержку интернационализации строк напрямую из JSON.
  • Лучшую интеграцию с инструментами разработки, такими как @wordpress/scripts.
  • Статический анализ и документирование API блока.

Технические детали реализации

Согласно обсуждению в GitHub Pull Request #8552, изменения затрагивают внутреннюю логику функции register_block_type() и связанных хелперов. Разработчики Core позаботились о том, чтобы новый способ регистрации корректно обрабатывал все стандартные параметры блока, включая атрибуты, supports, стили и скрипты.

Официальная документация по регистрации блоков в Block Editor Handbook уже обновлена с учётом нового подхода и содержит подробные примеры использования.

Что это значит для разработчиков плагинов и тем?

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

Разработчикам тем это нововведение также будет полезно при создании тематических блоков, параметры которых зависят от настроек кастомайзера или опций темы.

Итог

PHP-only регистрация блоков — это шаг навстречу разнообразным сценариям разработки в экосистеме WordPress. Команда Core продолжает работу по снижению порога вхождения и предоставлению разработчикам гибких инструментов.

Источник: https://make.wordpress.org/core/2026/03/03/php-only-block-registration/