Bloques de WordPress Gutenberg: cómo restringir los bloques a nivel de página, pero permitir todos los bloques a nivel de niños

1 minuto de lectura

En un complemento de WordPress, he creado algunos bloques Gutenberg de ‘diseño’ personalizados. Estos son básicamente ‘cajas’ que contienen el resto del contenido de la página. Me gustaría restringir al usuario para que agregue solo estos cuadros en una página, pero luego permitirles colocar NINGÚN bloques de niños dentro de ellos.

he encontrado cómo limitar los bloques de Gutenburg utilizando el allowed_block_types filtrar. Esto funciona para restringir al usuario a agregar ‘cuadros’ a una página.

Luego encontré cómo limitar un bloque de Gutenberg para permitir solo bloques secundarios específicos. es decir, en InnerBlocks, especifique allowedBlocks: ['core/paragraph','core/list','core/seperator',...] para que las ‘cajas’ puedan contener estos bloques secundarios.

El problema es que el filtro tipo_bloque_permitido parece anular los bloques permitidos.

¿Cómo puedo permitir bloques específicos a nivel de ‘página’ y otros a nivel de ‘niño’?

avatar de usuario
Welcher

Cruzado de mi respuesta en WordPress StackExchange

La respuesta corta es que no puedes. Pero puede lograr esto usando una plantilla de bloque que solo contenga su bloque y esté bloqueada. Si su bloque tiene una instancia de InnerBlocks, puede agregarle cualquiera de los bloques registrados.

add_action( 'init', 'insert_template' );
function insert_template() {
    $post_type_object = get_post_type_object( 'post' );
    $post_type_object->template =[ [ 'your-custom-block-name'] ];
    $post_type_object->template_lock = 'all';
}

¿Ha sido útil esta solución?