register_block_type( string|WP_Block_Type $name, array $args = array() )

Registers a block type.

Description Description

Parameters Parameters


(string|WP_Block_Type) (Required) Block type name including namespace, or alternatively a complete WP_Block_Type instance. In case a WP_Block_Type is provided, the $args parameter will be ignored.


(array) (Optional) Array of block type arguments. Any arguments may be defined, however the ones described below are supported by default.

  • 'render_callback'
    (callable) Callback used to render blocks of this block type.

Default value: array()

Top ↑

Return Return

(WP_Block_Type|false) The registered block type on success, or false on failure.

Top ↑

Source Source

File: wp-includes/blocks.php

function register_block_type( $name, $args = array() ) {
	return WP_Block_Type_Registry::get_instance()->register( $name, $args );

Top ↑

Changelog Changelog

Version Description
5.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by jmau

    You can pass custom $attributes which can be used both on editor and front-end in render_callback :

    register_block_type( 'my_namespace/my_block', [
    	'render_callback' => 'render_callback',
    	'attributes'      => [
    		'some_string' => [
    			'default' => 'default string',
    			'type'    => 'string'
    		'some_array'  => [
    			'type'  => 'array',
    			'items' => [
    				'type' => 'string',
    ] );

    Important (tested in 5.0.3) : in case of array attributes you MUST specify items type. Otherwise it would trigger a notice.

  2. Skip to note 2 content
    Contributed by Shah Alom

    Here is an example snippet that I use for one of my own projects (which is – …

    function mcqa_register_block_related_quiz() {
        if ( ! function_exists( 'register_block_type' ) ) {
            // Gutenberg is not active.
        register_block_type( 'mcqac/related-quiz', array(
            'editor_script' => 'mcqac-related-quiz-block-script',
            'editor_style'  => 'mcqac-related-quiz-block-editor-style',
            'style'         => 'mcqac-related-quiz-block-frontend-style',
        ) );
    // Hook: Editor assets.
    add_action( 'init', 'mcqa_register_block_related_quiz' );

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