Вопрос или проблема
В версии WP 6.7 добавлена функция register_block_template(). Регистрация шаблона здесь, по-видимому, создаёт шаблон страницы, который можно выбрать в настройках записи > шаблоны в правой боковой панели. Вы можете использовать этот метод для регистрации шаблонов, которые включают части шаблона (например, шапки и подвал). Они отображаются в разделе Внешний вид > Редактор > Шаблоны сайта.
С другой стороны, аргумент template в регистрации пользовательского типа записи принимает массив блоков, которые служат по умолчанию для the_content(). Это также называется шаблоном блока.
function my_plugin_register_custom_post_type() {
$labels = array(
'name' => __('Custom Posts', 'textdomain'),
'singular_name' => __('Custom Post', 'textdomain'),
'add_new' => __('Add New', 'textdomain'),
'add_new_item' => __('Add New Custom Post', 'textdomain'),
'edit_item' => __('Edit Custom Post', 'textdomain'),
'new_item' => __('New Custom Post', 'textdomain'),
'view_item' => __('View Custom Post', 'textdomain'),
'search_items' => __('Search Custom Posts', 'textdomain'),
'not_found' => __('No custom posts found', 'textdomain'),
'not_found_in_trash' => __('No custom posts found in Trash', 'textdomain'),
'all_items' => __('All Custom Posts', 'textdomain'),
);
$args = array(
'labels' => $labels,
'public' => true,
'show_in_rest' => true, // Включает поддержку блочного редактора
'supports' => array('title', 'editor', 'thumbnail'),
'template' => array(
array('core/paragraph', array(
'placeholder' => 'Add your content here...',
)),
array('core/image', array()),
),
'template_lock' => 'all', // Запрещает редактирование структуры шаблона
);
register_post_type('custom_post', $args);
}
add_action('init', 'my_plugin_register_custom_post_type');
Таким образом, оба этих понятия являются Шаблонами Блоков? Технически, они оба являются массивом блоков, но один из них внедряет их в the_content(), а другой служит шаблоном страницы.
Таким образом, оба этих понятия являются Шаблонами Блоков?
Как вещи назваются, зависит от науки номенклатуры и не имеет особого значения. Разные люди могут называть вещи по-разному. Я лично могу называть их оба шаблонами блока в смысле, что они оба являются формой введения структуры блоков Gutenberg в WordPress (отсюда блок), которые можно использовать повторно (отсюда шаблон).
Шаблон, зарегистрированный с помощью register_block_template()
, может использоваться для окружающей структуры страницы вокруг контента записи.
Шаблон в аргументе template
функции register_post_type()
— это “массив блоков для использования в качестве состояния по умолчанию для сеанса редактора.”1 То есть, это содержимое записи по умолчанию при начале сеанса редактирования через блочный редактор.
Ответ или решение
Вопрос о различиях между блок-шаблонами и шаблонами редактора сайта затрагивает важный аспект работы с WordPress, особенно в контексте новой функциональности в версии WP 6.7. В этой версии появилась функция register_block_template()
, которая позволяет регистрировать шаблоны для использования в структуре страниц, в то время как параметр template
в функции register_post_type()
служит для определения блоков, которые станут основой содержимого записи при открытии редактора блоков.
Блок-шаблоны, регистрируемые через register_block_template()
Эти шаблоны создаются для всей страницы и позволяют задавать структуру страницы, включая такие элементы, как шапка и подвал. Зарегистрированные таким образом блок-шаблоны становятся доступны в секции "Внешний вид > Редактор > Шаблоны" и могут быть выбраны в настройках страницы на боковой панели. Они служат для формирования общего окружения вокруг собственного контента страницы или публикации.
Блок-шаблоны, используемые в register_post_type()
В то же время, "template" аргумент в функции register_post_type()
задаёт массив блоков, который используется как начальное состояние содержимого в редакторе. Это своего рода заготовка, которая появляется при начале редактирования контента. Этот массив блоков обеспечивает стандартизацию содержимого, предлагая пользователю определённую структуру для заполнения и настраивающую опыт создания публикаций.
Таким образом, оба понятия, хоть и называются шаблонами блоков, обслуживают различные цели и этапы процесса создания контента в WordPress. Шаблоны, созданные через register_block_template()
, фокусируются на внешней структуре страницы, в то время как шаблоны в register_post_type()
концентрируются на содержимом записи.
Эти технологии обе формируют основу для повторного использования и стандартизации блоков в Gutenberg, но обращены они на разные аспекты – оформление страницы в целом и содержимое отдельных постов. Пользователи WordPress должны учитывать эти различия для оптимального использования инструментов платформы.
Если вы работаете с WordPress и стремитесь улучшить свою работу с шаблонами, важно помнить о разнице в применении и настройке этих инструментов для достижения максимальной эффективности.