unregister_block_style( string $block_name, string $block_style_name ): bool

Unregisters a block style.

Parameters

$block_namestringrequired
Block type name including namespace.
$block_style_namestringrequired
Block style name.

Return

bool True if the block style was unregistered with success and false otherwise.

Source

function unregister_block_style( $block_name, $block_style_name ) {
	return WP_Block_Styles_Registry::get_instance()->unregister( $block_name, $block_style_name );
}

Changelog

VersionDescription
5.3.0Introduced.

User Contributed Notes

  1. Skip to note 4 content

    The following code sample unregister the style named ‘fancy-quote’ from the core quote block:

    unregister_block_style( 'core/quote', 'fancy-quote' );

    Important: The function unregister_block_style only unregisters styles that were registered on the server using register_block_style. The function does not unregister a style registered using client-side code.

  2. Skip to note 5 content

    As Marie Comet mentioned, you cannot use unregister_block_style() on a style that was registered serverside (e.g. via PHP). The following PHP will not unregister a block style from the core/table block:

    // PHP
    unregister_block_style( 'core/table', 'stripes' );

    You can use the Block API via JavaScript to unregister it. Running the following JavaScript will successfully unregister the style.

    // JavaScript
    wp.blocks.unregisterBlockStyle( 'core/table', 'stripes' );

    For more info, look under Styles in the Block API Reference of the Block Editor Handbook.

  3. Skip to note 6 content

    I wanted to unregister default core/quote block Plain style.

    First I have tried unregister_block_style(‘core/quote’, ‘plain’) – not working!

    Then I tried JS wp.blocks.unregisterBlockStyle() – partly working! Block style was removed from editor, but was present in FSE Style guide section!…

    Then I came back to PHP and tried to filter block.json args:

    add_filter( 'register_block_type_args', function ( $args, $block_type ) {
    	if ( 'core/quote' === $block_type ) {
    		unset($args['styles']);
    	}
    
    	return $args;
    }, 10, 2 );

    … And it worked finally! This API seems inconsistent… (

You must log in before being able to contribute a note or feedback.