Support

Account

Home Forums Gutenberg Prevent block from being used in main editor, use only as inner block

Solving

Prevent block from being used in main editor, use only as inner block

  • I am currently using the allowed_block_type filter to control the available blocks in my theme, similar to the following example:

    
    function acf_allowed_blocks($allowed_blocks, $post)
    {
        // Register core blocks
        $core_blocks = array(
            'core/buttons',
            'core/heading',
            'core/image',
            'core/list',
            'core/paragraph',
        );
    
        // Register custom blocks
        $custom_blocks = array(
            'acf/test-block',
        );
    
        // Register plugin specific blocks
        $plugin_blocks = array(
            'gravityforms/form',
        );
    
        // Specify block groupings available on specific post types
        switch ($post->post_type) {
        case 'post_type_example':
            $allowed_blocks = array_merge($core_blocks);
            break;
        default:
            $allowed_blocks = array_merge($core_blocks, $custom_blocks, $plugin_blocks);
        }
    
        return $allowed_blocks;
    }
    add_filter('allowed_block_types', 'acf_allowed_blocks', 10, 2);
    

    While this works perfectly, I am trying to determine whether or not it’s possible to remove the gravityforms/form block, but allow it inside the acf/test-block. Currently, if I remove the block from this function, it’s also becomes unavailable as an inner block in my ACF block markup, which looks like this:

    
    $allowed_blocks = array( 'gravityforms/form' );
    echo '<InnerBlocks allowedBlocks="' . esc_attr(wp_json_encode($allowed_blocks)) . '" />';
    

    Does anyone have any idea on whether or not this is even possible with the current state of Gutenberg? I can just as easily live with it being available as both a main and an inner block, but it would be my preference to only use it as an inner block.

  • I am currently using the allowed_block_type filter to control the available blocks in my theme, similar to the following example:

    
    function acf_allowed_blocks($allowed_blocks, $post)
    {
        // Register core blocks
        $core_blocks = array(
            'core/buttons',
            'core/heading',
            'core/image',
            'core/list',
            'core/paragraph',
        );
    
        // Register custom blocks
        $custom_blocks = array(
            'acf/test-block',
        );
    
        // Register plugin specific blocks
        $plugin_blocks = array(
            'gravityforms/form',
        );
    
        // Specify block groupings available on specific post types
        switch ($post->post_type) {
        case 'post_type_example':
            $allowed_blocks = array_merge($core_blocks);
            break;
        default:
            $allowed_blocks = array_merge($core_blocks, $custom_blocks, $plugin_blocks);
        }
    
        return $allowed_blocks;
    }
    add_filter('allowed_block_types', 'acf_allowed_blocks', 10, 2);
    

    While this works perfectly, I am trying to determine whether or not it’s possible to remove the gravityforms/form block, but allow it inside the acf/test-block. Currently, if I remove the block from this function, it’s also becomes unavailable as an inner block in my ACF block markup, which looks like this:

    
    $allowed_blocks = array( 'gravityforms/form' );
    echo '<InnerBlocks allowedBlocks="' . esc_attr(wp_json_encode($allowed_blocks)) . '" />';
    

    Does anyone have any idea on whether or not this is even possible with the current state of Gutenberg? I can just as easily live with it being available as both a main and an inner block, but it would be my preference to only use it as an inner block.

  • I was going to ask this exact same question, but then I used the search function and found this topic.

    Did you ever find a solution to this? I want to create a block with a sidebar where editors can add some “cards”; a CTA, a related post etc. But I don’t want them to add these cards directly to the editor.

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.