Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
Agregar bloque interno con atributos al hacer clic en Wordpress Gutenberg Editor

Estoy creando un bloque de gutenberg con bloques internos. En este caso, el bloque nativo core/cover . Luego agrego tres bloques internos con la variable TEMPLATE y los cargo en <InnerBlocks ...>

Mi problema es que cuando agrega otro bloque de portada a través del editor, no tiene los valores predeterminados de bloque interno que innerBlockPresets . Por lo que puedo decir, allowedBlocks no permite atributos.

Tengo que usar el bloque de cobertura nativo para esto. ¿Como puedo resolver esto?

  • WordPress 5.9
  • base creada con @wordpress/create-block

editar.js

 import {useBlockProps, InnerBlocks} from '@wordpress/block-editor'; export default function Edit(}) { const blockProps = useBlockProps(); const ALLOWED_BLOCKS = ['core/cover']; const innerBlockPresets = {'className': 'is-awesome', 'align': 'full'}; const TEMPLATE = [['core/cover', innerBlockPresets], ['core/cover', innerBlockPresets], ['core/cover', innerBlockPresets]]; return ( <div {...blockProps}> <InnerBlocks allowedBlocks={ALLOWED_BLOCKS} template={TEMPLATE} renderAppender={() => <InnerBlocks.ButtonBlockAppender/>} /> </div> ); }

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Una posible solución podría ser registrar una variación de bloque de core/cover , por ejemplo:

índice.js

 wp.blocks.registerBlockVariation('core/cover', { name: 'cover-variation', title: 'Cover Variation', icon: 'star-filled', attributes: { className: 'is-awesome', align: 'full' } });

Esto le permite tener un conjunto predefinido de atributos. A continuación, si ALLOWED_BLOCKS en InnerBlocks contiene core/cover , solo se pueden agregar core/cover y su cover-variation (o cualquier otra variación de cobertura), por ejemplo:

editar.js

 import { __ } from '@wordpress/i18n'; import { useBlockProps, InnerBlocks } from '@wordpress/block-editor'; export default function Edit() { const ALLOWED_BLOCKS = ['core/cover']; const TEMPLATE = [ ['core/cover', { className: 'is-awesome', align: 'full' }]]; return ( <div {...useBlockProps()}> <InnerBlocks allowedBlocks={ALLOWED_BLOCKS} template={TEMPLATE} /> </div> ); }

ingrese la descripción de la imagen aquí

Un problema que encontré con este enfoque es que la variación no se puede configurar en TEMPLATE , ya que la variación del bloque se registra después del bloque principal, pero es demasiado tarde para la validación de la plantilla de InnerBlock. Si intenta esto, la validación de la plantilla de InnerBlock devuelve " indefinido " cuando usa una variación de bloque y no se procesa. Entonces, para evitar este problema, en TEMPLATE , establezca las mismas propiedades que su variación.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda