The get_block_categories() WordPress PHP function returns all the categories for block types that will be shown in the block editor.
Usage
get_block_categories( $post_or_block_editor_context );
Custom example
$block_categories = get_block_categories( $post ); foreach ( $block_categories as $category ) { echo $category->slug . ': ' . $category->title . '<br>'; }
Parameters
- $post_or_block_editor_context (WP_Post|WP_Block_Editor_Context): The current post object or the block editor context.
More information
See WordPress Developer Resources: get_block_categories()
Examples
Display block categories in a post
function display_block_categories_in_post() { $post = get_post(); $block_categories = get_block_categories( $post ); foreach ( $block_categories as $category ) { echo '<strong>' . $category->title . '</strong><br>'; } } add_action( 'the_content', 'display_block_categories_in_post' );
Add a custom block category
function my_custom_block_categories( $categories, $post ) { return array_merge( $categories, array( array( 'slug' => 'my-custom-category', 'title' => 'My Custom Category', ), ) ); } add_filter( 'block_categories_all', 'my_custom_block_categories', 10, 2 );
Remove a block category
function remove_block_category( $categories, $post ) { return array_filter( $categories, function ( $category ) { return $category->slug !== 'category-to-remove'; } ); } add_filter( 'block_categories_all', 'remove_block_category', 10, 2 );
Change block category title
function change_block_category_title( $categories, $post ) { foreach ( $categories as $category ) { if ( $category->slug === 'category-to-change' ) { $category->title = 'New Title'; } } return $categories; } add_filter( 'block_categories_all', 'change_block_category_title', 10, 2 );
Sort block categories alphabetically
function sort_block_categories_alphabetically( $categories, $post ) { usort( $categories, function ( $a, $b ) { return strcmp( $a->title, $b->title ); } ); return $categories; } add_filter( 'block_categories_all', 'sort_block_categories_alphabetically', 10, 2 );