Using WordPress ‘register_block_type_args’ PHP filter

apply_filters( ‘register_block_type_args’, array $args, string $block_type ) is a WordPress PHP filter that allows you to modify the arguments used for registering a block type in the WordPress editor.

Usage

add_filter( 'register_block_type_args', 'my_function', 10, 2 );

function my_function( $args, $block_type ) {
    // Your code here to modify the $args array
    return $args;
}

Parameters

  • $args (array)
    • Array of arguments for registering a block type.
  • $block_type (string)
    • Block type name including namespace.

Examples

Change block category

add_filter( 'register_block_type_args', 'change_block_category', 10, 2 );

function change_block_category( $args, $block_type ) {
    if ( 'my-namespace/my-block' === $block_type ) {
        $args['category'] = 'custom-category';
    }
    return $args;
}

This code changes the category of the custom block named my-namespace/my-block to custom-category.

Set block as reusable

add_filter( 'register_block_type_args', 'set_block_reusable', 10, 2 );

function set_block_reusable( $args, $block_type ) {
    if ( 'my-namespace/my-block' === $block_type ) {
        $args['supports']['reusable'] = true;
    }
    return $args;
}

This code sets the custom block named my-namespace/my-block as reusable.

Remove block alignment options

add_filter( 'register_block_type_args', 'remove_block_alignments', 10, 2 );

function remove_block_alignments( $args, $block_type ) {
    if ( 'my-namespace/my-block' === $block_type ) {
        $args['supports']['align'] = false;
    }
    return $args;
}

This code removes alignment options from the custom block named my-namespace/my-block.

Add custom attributes

add_filter( 'register_block_type_args', 'add_custom_attributes', 10, 2 );

function add_custom_attributes( $args, $block_type ) {
    if ( 'my-namespace/my-block' === $block_type ) {
        $args['attributes']['custom_attribute'] = array(
            'type' => 'string',
            'default' => 'Hello, World!',
        );
    }
    return $args;
}

This code adds a custom attribute named custom_attribute with a default value of ‘Hello, World!’ to the block my-namespace/my-block.

Set block as non-dynamic

add_filter( 'register_block_type_args', 'set_block_non_dynamic', 10, 2 );

function set_block_non_dynamic( $args, $block_type ) {
    if ( 'my-namespace/my-block' === $block_type ) {
        $args['render_callback'] = null;
    }
    return $args;
}

This code sets the custom block named my-namespace/my-block as a non-dynamic block by setting its render_callback to null.