register_block_pattern_category()
Регистрирует новую категорию для блок-паттернов, чтобы сгруппировать их в редакторе блоков.
В эту категорию можно будет добавлять кастомные кастомные блок-паттерны. Это упрощает организацию и поиск паттернов в редакторе.
Рекомендуется вызывать на хуке 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(), когда нужно убрать (удалить) категорию.
Хуков нет.
Возвращает
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()
Примеры
#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' ),
]
);
} #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' ),
]
);
}
} #3 Список всех категорий через JS
Чтобы получить список всех зарегистрированных категорий, вставьте в инспектор js:
wp.data.select('core').getBlockPatternCategories()
Список изменений
| С версии 5.5.0 | Введена. |
Код register_block_pattern_category() 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 );
} 
