Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

129
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda