The block_categories_all WordPress PHP filter allows you to modify the default array of categories for block types.
Usage
add_filter('block_categories_all', 'my_custom_block_categories', 10, 2); function my_custom_block_categories($block_categories, $block_editor_context) { // your custom code here return $block_categories; }
Parameters
$block_categories
: array[] – The array of categories for block types.$block_editor_context
: WP_Block_Editor_Context – The current block editor context.
More information
See WordPress Developer Resources: block_categories_all
Examples
Add a new block category
Add a new category named ‘My Custom Category’ to the block categories list.
add_filter('block_categories_all', 'add_my_custom_category', 10, 2); function add_my_custom_category($block_categories, $block_editor_context) { $block_categories[] = array( 'slug' => 'my-custom-category', 'title' => __('My Custom Category', 'textdomain'), 'icon' => 'wordpress', ); return $block_categories; }
Remove a block category
Remove the ‘Widgets’ category from the block categories list.
add_filter('block_categories_all', 'remove_widgets_category', 10, 2); function remove_widgets_category($block_categories, $block_editor_context) { $block_categories = array_filter($block_categories, function($category) { return $category['slug'] !== 'widgets'; }); return $block_categories; }
Rename a block category
Rename the ‘Design’ category to ‘Layout’.
add_filter('block_categories_all', 'rename_design_category', 10, 2); function rename_design_category($block_categories, $block_editor_context) { foreach ($block_categories as &$category) { if ($category['slug'] === 'design') { $category['title'] = __('Layout', 'textdomain'); break; } } return $block_categories; }
Change the icon of a block category
Change the icon of the ‘Text’ category to ‘editor-text-color’.
add_filter('block_categories_all', 'change_text_category_icon', 10, 2); function change_text_category_icon($block_categories, $block_editor_context) { foreach ($block_categories as &$category) { if ($category['slug'] === 'text') { $category['icon'] = 'editor-text-color'; break; } } return $block_categories; }
Reorder block categories
Move the ‘Media’ category to the top of the block categories list.
add_filter('block_categories_all', 'reorder_media_category', 10, 2); function reorder_media_category($block_categories, $block_editor_context) { $media_category = null; foreach ($block_categories as $key => $category) { if ($category['slug'] === 'media') { $media_category = $category; unset($block_categories[$key]); break; } } if ($media_category) { array_unshift($block_categories, $media_category); } return $block_categories; }