I have updated the current page template so that it is locked and uses two of custom blocks that i have created.

function.php

function my_add_template_to_posts() {
    $post_type_object = get_post_type_object( 'page' );
    $post_type_object->template = array(
          array( 'jabgutenberg/bannerimage'),
          array( 'jabgutenberg/section'),
    );
$post_type_object->template_lock = 'all'; 
}
add_action( 'init', 'my_add_template_to_posts' );

The 'Section' block allows you to add as many blocks inside, as it uses {templateLock: false}

( function( blocks, editor, components, i18n, element,title ) {

var el = wp.element.createElement,
    registerBlockType = wp.blocks.registerBlockType
    InnerBlocks = wp.editor.InnerBlocks;

registerBlockType( 'jabgutenberg/section', {
    title: i18n.__('Section'),
    icon: 'columns',
    description: i18n.__('A section.'),
    category: 'common',
    edit: function edit() {
        return el(InnerBlocks, { templateLock: false });
    },
    save: function save() {
        return el(
            'div',
            null,
            el(InnerBlocks.Content, null)
        );
    },
} );   

} )(window.wp.blocks,window.wp.editor,window.wp.components,window.wp.i18n,window.wp.element,
);

Thie issues is that everytime you add an extra block inside the 'Section' you get the error

'The content of your post doesn’t match the template assigned to your post type.'

enter image description here

Is there any way of stopping this without unlocking the template?

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.