В этой статье мы рассмотрим, как использовать фильтр block_categories_all
в WordPress для регистрации новых категорий блоков Gutenberg. Это помогает организовать блоки в редакторе, делая их более удобными для поиска и использования.
Описание
Фильтр block_categories_all
позволяет добавлять, удалять или изменять категории блоков в редакторе Gutenberg. Категории блоков группируют блоки по темам, что упрощает их поиск и выбор.
Примеры использования
Рассмотрим несколько примеров использования фильтра block_categories_all
.
Добавление новой категории блоков
Этот пример показывает, как добавить новую категорию блоков под названием «Мои блоки»:
function myplugin_register_block_category( $categories ) {
return array_merge(
$categories,
array(
array(
'slug' => 'my-custom-category',
'title' => __( 'Мои блоки', 'myplugin' ),
),
)
);
}
add_filter( 'block_categories_all', 'myplugin_register_block_category' );
Удаление категории блоков
Этот пример показывает, как удалить категорию блоков с определённым slug
:
function myplugin_remove_block_category( $categories ) {
return array_filter( $categories, function( $category ) {
return $category['slug'] !== 'common';
} );
}
add_filter( 'block_categories_all', 'myplugin_remove_block_category' );
Изменение названия существующей категории блоков
Этот пример показывает, как изменить название существующей категории блоков:
function myplugin_rename_block_category( $categories ) {
foreach ( $categories as &$category ) {
if ( $category['slug'] === 'common' ) {
$category['title'] = __( 'Основные блоки', 'myplugin' );
}
}
return $categories;
}
add_filter( 'block_categories_all', 'myplugin_rename_block_category' );
Регистрация пользовательского блока в новой категории
Этот пример показывает, как зарегистрировать пользовательский блок в новой категории блоков:
function myplugin_register_custom_block() {
register_block_type( 'myplugin/custom-block', array(
'title' => __( 'Custom Block', 'myplugin' ),
'category' => 'my-custom-category', // Используем нашу новую категорию
'attributes' => array(
'content' => array(
'type' => 'string',
'default' => __( 'Hello, world!', 'myplugin' ),
),
),
'render_callback' => 'myplugin_render_custom_block',
) );
}
add_action( 'init', 'myplugin_register_custom_block' );
function myplugin_render_custom_block( $attributes ) {
return sprintf( '<div>%s</div>', esc_html( $attributes['content'] ) );
}
Заключение по block_categories_all
Использование фильтра block_categories_all
предоставляет разработчикам гибкость для добавления, удаления и изменения категорий блоков в редакторе Gutenberg. Это помогает улучшить организацию блоков и сделать их более удобными для поиска и использования.
Пример использования выше показывает, как легко добавить новую категорию, удалить существующую или изменить её название, а также назначить категорию пользовательскому блоку.