register_block_pattern_category()WP 5.5.0

Регистрирует новую категорию для блок-паттернов, чтобы сгруппировать их в редакторе блоков.

В эту категорию можно будет добавлять кастомные кастомные блок-паттерны. Это упрощает организацию и поиск паттернов в редакторе.

Рекомендуется вызывать на хуке init.

Важно: категория будет отображаться в редакторе только если в неё добавлен хотя бы один паттерн.

Категория указывется в параметре categories.

При регистрации паттерна через register_block_pattern():

add_action( 'init', 'my_plugin_register_patterns' );
function my_plugin_register_patterns() {
	register_block_pattern(
		'my-plugin/two-buttons',
		[
			'title'       => __( 'Две кнопки', 'my-plugin' ),
			'categories'  => [ 'buttons' ],
			'content'     => '
				<!-- wp:buttons {"align":"center"} -->
				...
				<!-- /wp:buttons -->
			',
		]
	);
}

В темах паттерны можно создавать добавив PHP файл в папку /patterns, в комментариях php файла указываются параметры паттерна:

<?php
/**
 * Title: Example
 * Slug: theme/example
 * Categories: agnostic_page
 */

Паттерны ядра регистрируются в файле wp-includes/block-patterns.php.

Список категорий паттернов из ядра - _register_core_block_patterns_and_categories():

banner          —  Выделенные секции для демонстрации ключевого контента.
buttons         —  Паттерны, содержащие кнопки и призывы к действию.
columns         —  Многостолбцовые паттерны с более сложной компоновкой.
text            —  Паттерны, содержащие преимущественно текст.
query           —  Отображение последних записей в виде списков, сеток и других макетов.
featured        —  Подборка высококачественных и отобранных вручную паттернов.
call-to-action  —  Секции, направленные на побуждение к конкретному действию.
team            —  Различные дизайны для отображения участников команды.
testimonials    —  Отзывы и мнения о вашем бренде или бизнесе.
services        —  Краткое описание вашей деятельности и того, чем вы можете быть полезны.
contact         —  Отображение контактной информации.
about           —  Представление себя или вашей компании.
portfolio       —  Портфолио — демонстрация ваших последних работ.
gallery         —  Различные макеты для отображения изображений.
media           —  Макеты с включением видео или аудио.
videos          —  Различные макеты с видеоконтентом.
audio           —  Различные макеты с аудиоконтентом.
posts           —  Отображение последних записей в виде списков, сеток и других макетов.
footer          —  Разнообразные дизайны подвалов с информацией и навигацией по сайту.
header          —  Разнообразные дизайны шапок с названием сайта и навигацией.

Используйте unregister_block_pattern_category(), когда нужно убрать (удалить) категорию.

Работает на основе: WP_Block_Pattern_Categories_Registry::register()

Хуков нет.

Возвращает

true|false.

  • true - если категория успешно зарегистрирована.
  • false - в противном случае.

Использование

register_block_pattern_category( $category_name, $category_properties );
$category_name(строка) (обязательный)
Уникальный идентификатор категории (слаг). Рекомендуется использовать префикс плагина или темы, как вендор (неймспейс), например: my_theme/cat_name.
$category_properties(массив) (обязательный)

Массив свойств категории. Доступные поля:

  • label (строка) — Название категории.
  • description (строка) — Описание категории (необязательно).

Смотрите также: WP_Block_Pattern_Categories_Registry::register()

Примеры

0

#1 Регистрация категории "Hero"

Создаёт категорию "Hero" для паттернов, связанных с заголовками.

add_action( 'init', 'my_plugin_register_pattern_categories' );

function my_plugin_register_pattern_categories() {
	register_block_pattern_category(
		'my-plugin-hero',
		[
			'label'       => __( 'Hero', 'my-plugin' ),
			'description' => __( 'Паттерны связанные с заголовками.', 'my-plugin' ),
		]
	);
}
0

#2 Проверка наличия категории перед регистрацией

Избегает повторной регистрации категории, если она уже существует.

add_action( 'init', 'my_plugin_register_pattern_categories' );

function my_plugin_register_pattern_categories() {
	$registry = WP_Block_Pattern_Categories_Registry::get_instance();

	if ( ! $registry->is_registered( 'my-plugin-hero' ) ) {
		register_block_pattern_category(
			'my-plugin-hero',
			[
				'label' => __( 'Hero', 'my-plugin' ),
			]
		);
	}
}
0

#3 Список всех категорий через JS

Чтобы получить список всех зарегистрированных категорий, вставьте в инспектор js:

wp.data.select('core').getBlockPatternCategories()

Список изменений

С версии 5.5.0 Введена.

Код register_block_pattern_category() WP 6.9

function register_block_pattern_category( $category_name, $category_properties ) {
	return WP_Block_Pattern_Categories_Registry::get_instance()->register( $category_name, $category_properties );
}