get_block_editor_server_block_settings(): array

Prepares server-registered blocks for the block editor.

Description

Returns an associative array of registered block data keyed by block name. Data includes properties of a block relevant for client registration.

Return

array An associative array of registered block data.

Source

function get_block_editor_server_block_settings() {
	$block_registry = WP_Block_Type_Registry::get_instance();
	$blocks         = array();
	$fields_to_pick = array(
		'api_version'      => 'apiVersion',
		'title'            => 'title',
		'description'      => 'description',
		'icon'             => 'icon',
		'attributes'       => 'attributes',
		'provides_context' => 'providesContext',
		'uses_context'     => 'usesContext',
		'block_hooks'      => 'blockHooks',
		'selectors'        => 'selectors',
		'supports'         => 'supports',
		'category'         => 'category',
		'styles'           => 'styles',
		'textdomain'       => 'textdomain',
		'parent'           => 'parent',
		'ancestor'         => 'ancestor',
		'keywords'         => 'keywords',
		'example'          => 'example',
		'variations'       => 'variations',
		'allowed_blocks'   => 'allowedBlocks',
	);

	foreach ( $block_registry->get_all_registered() as $block_name => $block_type ) {
		foreach ( $fields_to_pick as $field => $key ) {
			if ( ! isset( $block_type->{ $field } ) ) {
				continue;
			}

			if ( ! isset( $blocks[ $block_name ] ) ) {
				$blocks[ $block_name ] = array();
			}

			$blocks[ $block_name ][ $key ] = $block_type->{ $field };
		}
	}

	return $blocks;
}

Changelog

VersionDescription
6.4.0Added block_hooks field.
6.3.0Added selectors field.
5.0.0Introduced.

User Contributed Notes

  1. Skip to note 2 content
    // Define a callback function to register block settings
    function wpdocs_register_block_settings() {
        $block_type = 'core/paragraph'; // Replace with the block type you want to customize
    
        $settings = get_block_editor_server_block_settings( $block_type );
    
        // Modify the block settings as needed
        $settings['attributes']['customAttribute'] = array(
            'type'    => 'string',
            'default' => 'Custom Default Value',
        );
    
        // Re-register the block with the modified settings
        register_block_type( $block_type, $settings );
    }
    
    // Hook the callback function into the 'init' action
    add_action( 'init', 'wpdocs_register_block_settings' );

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