Gutenberg 23.7: galerías dinámicas, editor y cambios para desarrollo
Gutenberg 23.7 pule el editor de bloques con correcciones que se notan al maquetar, editar galerías y trabajar con controles del panel. La versión también incorpora cambios para quienes desarrollan temas, bloques, componentes y herramientas sobre WordPress.
El plugin ya está disponible. Puedes probar Gutenberg 23.7 en WordPress Playground o instalarlo en un entorno de desarrollo antes de llevarlo a producción.
Descargar Gutenberg 23.7Ajustes visibles en el editor de bloques
Esta versión concentra buena parte del trabajo en errores de interfaz y de flujo de edición. Los bloques flotantes ya no se superponen a los bloques fijados; el insertador de bloque vacío aparece en su posición correcta dentro de bloques que capturan su propia barra de herramientas; y el bloque Cita destacada respeta en el editor la altura de línea personalizada, igual que en el frontend.
Las vistas previas para móvil y tableta recuperan su altura fija. También se corrige el cursor al eliminar hacia delante bloques vacíos, la selección múltiple con Mayús+clic y Mayús+flechas, y el desplazamiento involuntario de la página al mover el cursor en bloques más altos que la ventana.

Modo dinámico de la galería
El modo dinámico del bloque Galería, incorporado en Gutenberg 23.6, aclara ahora el paso que separa las imágenes de la fuente dinámica. El botón de barra de herramientas que antes decía «Convertir en imágenes» pasa a llamarse «Separar», y un cuadro de diálogo explica qué ocurrirá antes de confirmar la acción.
La conversión del modo dinámico se registra como un único nivel de deshacer. Así puedes revertir toda la operación con una sola acción.


Cambios destacados para usuarios y desarrolladores
La interfaz de herencia de estilos globales queda detrás de un experimento de Gutenberg. Debes activarla de forma explícita desde la página de ajustes Experimentos; no se habilita por defecto.
El bloque Matemáticas deja de mostrar errores de análisis de LaTeX en cada pulsación. Su campo usa ValidatedTextareaControl: muestra el aviso cuando el campo pierde el foco por primera vez y elimina los anuncios al lector de pantalla en cada tecla.
Los componentes Combobox, Select y SelectControl añaden los subcomponentes Group y GroupLabel. Con ellos puedes componer opciones agrupadas de forma uniforme en las familias de controles con menú emergente.
Mejoras incorporadas
Estilos base, escritorio y widgets
El anillo de foco de outset-ring__focus permite sobrescribir su color. El escritorio de widgets mide el ajuste de la cabecera y documenta el chrome de la interfaz; además, las primitivas de widgets se distribuyen como módulo de script.
Componentes
Combobox,SelectySelectControlincorporanGroupyGroupLabel(#80574).- Los campos de búsqueda de DataViews y Biblioteca de fuentes tienen una anchura fija para evitar saltos de diseño (#80315).
DataViewsPickerpermite seleccionar rangos con Mayús+clic en las disposiciones tabla, cuadrícula y actividad (#80413).- El componente sandbox acepta la propiedad
sandbox(#69617). - Los campos
inputde tiponumberocultan los controles nativos para incrementar o reducir el valor (#80646). SearchControlsolo renderiza el sufijo si existe uno (#80356).- La interfaz incorpora la primitiva
Autocomplete.Row(#80490).
Biblioteca de bloques, editor de entradas y fuentes
- La biblioteca de bloques añade cobertura de la historia de usuario completa para Tabla de contenidos (#80199).
- El bloque Matemáticas adopta
ValidatedTextareaControlpara la entrada de LaTeX (#80500). - El ajuste del editor
responsiveEditingEnabledpermite ocultar la opción Estilos adaptables (#80814). - La página de navegación de la Biblioteca de fuentes iguala el tamaño de letra de su selector al de DataViews (#80617).
- La edición en tiempo real (RTC) desactiva Edición rápida mientras alguien edita una entrada (#80016).
- Los estilos globales extraen la gestión compartida de preajustes de sombras y tamaños de fuente (#79810).
- Los controles del inspector de bloques reflejan los valores heredados de Estilos globales (#77894).
Correcciones funcionales
Infraestructura del editor y configuración de vistas
- Los bloques flotantes dejan de solaparse con bloques fijados (#80749).
- Se actualiza el versionado de la API de configuración de vistas (#80319).
- La configuración de vistas rechaza fusiones con formas incompatibles, define la semántica de arrays vacíos y elimina valores
nullde miembros añadidos (#80571). createInterpolateElementgestiona sin errores las etiquetas de cierre sin pareja (#80618).
Biblioteca de bloques y medios
render_block_core_video()reconoce etiquetasVIDEOque no están en minúsculas (#80537).- Los bloques Cubierta y Acordeón salen con la tecla Intro (#77301).
- La galería dinámica renombra el botón a «Separar» y muestra un diálogo explicativo (#80727).
- El bloque Cita destacada aplica la altura de línea personalizada dentro del editor (#80586).
- La conversión de una galería dinámica ocupa un solo nivel del historial de deshacer (#80665).
- El bloque Lista conserva el tipo ordenado al aumentar sangría (#75353).
- El editor de medios muestra un estado de carga mientras carga el archivo recortado (#80460).
- Se elimina la marca redundante
__heicUploadSupportde medios (#80452). - Navegación recupera la opción «Añadir bloque» en la interfaz de enlaces dentro de partes de plantilla (#78427).
- Lista de reproducción acorta la etiqueta del botón de barra de herramientas de pistas (#80759).
- El ajuste «Desplazamiento» del bloque Bucle de consulta añade contexto de traducción (#80582).
- Enlace social elimina una etiqueta de cierre sobrante del marcado del icono Tumblr (#80257).
Bloques, selección y texto enriquecido
- El control de imagen de fondo elimina un anillo de foco duplicado (#80671).
- El insertador de bloque vacío se coloca bien dentro de bloques que capturan barras de herramientas (#80592).
- Se conserva la posición del cursor al borrar hacia delante bloques vacíos (#77525).
- Las importaciones de pruebas de recorrido completo de preajustes se corrigen tras consolidar utilidades (#80589).
- Los paneles de Estilos globales no confunden preajustes de color con el mismo valor hexadecimal (#80497).
- El inspector resuelve estilos del elemento enlace para bloques que son enlaces (#80607).
- La sincronización de bloques controlados en RTC deja de interceptar Deshacer (#80503).
- Los elementos editables eliminan de nuevo
tabIndexpara corregir la selección con Mayús+clic (#80651). - Mayús+flechas amplía la selección de bloques cuando no existe selección nativa (#80687).
- Mayús+clic se identifica como gesto de selección múltiple (#80286).
- El cursor no desplaza la página al moverse en bloques más altos que la ventana (#80708).
RichTextno aplica la transformación de entrada cuando faltaonReplace(#80978).RichTextevita un fallo al pegar archivos (#81010).
Editor de entradas y colaboración
- Los campos que gestionan su propio deshacer delegan esa acción en el navegador (#80768).
- Móvil y tableta recuperan la altura fija de vista previa (#80271).
- Las cajas meta igualan sus estilos de encabezado a los paneles de Gutenberg (#80670).
- Las notas capturan el bloque de destino antes de guardar una nota de bloque (#80690).
- El formato de nota en línea se registra durante la importación (#80576).
- Las acciones de notas informan de forma uniforme si el guardado tiene éxito (#80748).
- La selección de la barra lateral se sincroniza con el marcador en línea bajo el cursor (#80610).
- El bloqueo de entradas no cambia erróneamente al mensaje de que otra persona ha tomado el control para quien no puede acceder (#79997).
- Los avisos se envuelven con
ThemeProvidery radio de esquina cero (#79523). - iOS elimina un ajuste para evitar saltos y añade comportamiento de máquina de escribir (#74596).
Componentes, medios, estilos y datos
DataFormevita que la validación de tarjetas y detalles robe el foco (#80685).- Se corrige la sobrescritura de
.prettierrc.jsen la raíz (#80422). GradientPickerselecciona por slug para distinguir dos preajustes con el mismo degradado (#80554).- Storybook corrige
jsxImportSourcede Emotion (#80426). ToolsPanelmigra sus estilos a un módulo SCSS (#80445).- La conversión de GIF animados largos deja de bloquear la subida: para salidas estáticas solo descodifica el primer fotograma (#80260).
- Las plantillas de medios dejan de forzar
crossoriginen etiquetasimg(#80532). wp-buildsincroniza la lista de campos de precarga de plantillas de página concore-data(#80648).- Las pruebas de eliminación de menciones separan el filtro
ksesdel núcleo (#80656). - RTC compacta los datos durante la serialización (#80707).
- La API REST de medios recupera la comprobación de tamaño de subida al cargar archivos desde una ruta URL (#80659).
theme.jsonnivela la especificidad de clases de preajustes de bloque con:where()(#80657).- RTC preserva las ediciones sin guardar de colaboradores cuando otra persona guarda (#79936).
Accesibilidad y rendimiento
Los controles de alineación mejoran el tratamiento de sus propiedades, y Navegación actualiza correctamente aria-expanded al pasar el cursor por un submenú dentro de una superposición. En el texto enriquecido, el editor lee contentEditable en ownsSelection para evitar un cálculo forzado de diseño y aborda una regresión de rendimiento al escribir.
El editor de entradas evita volver a consultar términos sin necesidad en FlatTermSelector. En la capa de datos, Core Data mueve EntitiesSavedState fuera del editor tras reincorporar el cambio relacionado con el ticket #71948.
Experimentos y refuerzo del escritorio
El escritorio experimental endurece la sanitización de los atributos href en acciones de widgets y también de los enlaces de ayuda. La interfaz de herencia de Estilos globales queda formalmente protegida por el experimento de Gutenberg (#80815).
Cambios para desarrollo, calidad y herramientas
Documentación
AGENTS.mddocumenta el uso denvm use(#80755).- Se añade un patrón de descubrimiento progresivo para instrucciones y habilidades de agentes (#80650).
table-of-contents/index.phpincorpora documentación global que faltaba (#80442).WP_Icon_Collections_Registryrecibe docblocks de archivo y de clase que faltaban (#80172).- Se aclara cómo descubrir la guía para agentes (#80753) y el comportamiento de
getBlockcon controladores de bloques internos (#80773). - Se amplía la guía para trasladar cambios al núcleo de WordPress (#80593).
- Los callbacks de filtros de configuración de vistas deben devolver el contenedor (#80642); también se actualiza la documentación de filtros del lado del servidor (#80744).
- Se actualiza la guía de
iframepara Gutenberg 23.6 (#80629). - Los ejemplos de esquemas de color de administración del tema se actualizan en Storybook (#80569).
- La interfaz añade guía de diseño para diferenciar diálogo y panel lateral (#80783).
- La documentación en línea usa un enlace para URL (#80716).
Calidad de código
- ESLint incorpora componentes no recomendados que faltaban a su lista de prohibidos (#80754).
webpack-dev-serverse actualiza a^5.2.1para atender alertas de dependencias (#80347).- Los flujos de GitHub corrigen las comprobaciones de changelog en pull requests de bifurcaciones (#80538).
- La API de interactividad refactoriza las directivas como módulos que se registran a sí mismos (#79975).
- RTC usa
array_any()para comprobar compactaciones recientes en el servidor de sincronización por sondeo ystr_contains()enWP_Sync_Config(#80522, #80476). - Storybook construye el especificador de resolución como cadena de estilo URL; las herramientas resuelven dependencias sin depender de la estructura de
node_modules(#80416, #80414). Autocompletereferencia su lista de sugerencias mediantearia-controlsyaria-haspopup;ExternalLinkusa el mixin compartido de anillo de foco (#80403, #80573).- El hook
useSelectionPropsdeja de depender de una disposición concreta;Disabled,FormTokenFieldySearchControlmigran a módulos SCSS (#80677, #80643, #80472, #80474). - Los paquetes actualizan
date-fnsa 4.4.0,Color.jsa 0.7.1 ycolorjs.io; este último elimina una solución provisional de error (#80763, #80762, #80272). - Storybook mejora la legibilidad de componentes de interfaz al usar arrays para hijos, y el paquete publicado del tema prohíbe
src(#80352, #80213).
Biblioteca de bloques, editor y paquetes
- La biblioteca de bloques protege valores de atributos que lanzan errores;
editableRootpasa a ser un ajuste privado y se incorporan correcciones de fusiones de WordPress-Develop 7.0 (#80558, #80820, #75985). - Lista de páginas usa el operador de coalescencia nula para
parentPageID; Tabla de contenidos usastr_contains(); y Pestañas elimina el párrafo predeterminado de su plantilla de panel (#80728, #80418, #80565). - Se elimina la pragma redundante
@jest-environment jsdomy se añade una regla de lint; también se retiran propiedades__next40pxDefaultSizeinnecesarias de controles de formulario (#80676, #80540). - El editor deduplica utilidades de duotono en
global-styles-engine, reduce implementaciones duplicadas para preajustes y convierteURLInputen componente de función (#80598, #80245, #80721). - Los iconos del editor validan que los SVG incluyan
viewBox, y las notas cancelan el resaltado de puntero en curso al abandonar un hilo (#80273, #80752). - La capa de datos actualiza
memizea 2.1.1; Estilos globales renombra archivos de pruebas unitarias y elimina el sufijo.spec.js(#80764, #80711). - Editar sitio sustituye el uso de
Themepor CSS en el cargador del lienzo, y el código de colaboración en tiempo real se mueve alib/experimental/collaboration(#80688, #80469).
Publicación, compilación y pruebas
- La documentación de herramientas actualiza la captura del formulario de publicación para la nueva interfaz de etiquetas de GitHub, y publicar exige una CLI de GitHub operativa para aplicar commits con
cherry-pick(#80567, #80568). - La compilación añade un paquete independiente de proveedores de React 18, admite rutas de proyecto con espacios en el script de desarrollo y omite tipados de propiedades polimórficas en intersecciones (#80367, #80519, #80364).
DependencyExtractionWebpackPluginincorpora estilos extraídos al hash de versión de assets; React 19 añade una prueba de compatibilidad de extremo a extremo para el atributo booleanoinert(#80601, #80397).- La compilación resuelve Prettier de forma explícita en una disposición aislada, Storybook elimina Emotion como origen de importación JSX,
wp-buildevita un bucle infinito de workers y mejoran las comprobaciones previas de acceso a npm (#80529, #80647, #80361, #80334). - Jest corrige el patrón de exclusión de declaraciones TypeScript y se actualiza a la versión 30, un cambio incompatible (#80737, #80767).
- Las pruebas usan Flakiness.io solo en el repositorio canónico de Gutenberg, corrigen la métrica de selección de bloques que devolvía 0 ms, arreglan la prueba de usuario eliminado en multisitio y añaden cobertura de extremo a extremo para ampliar la configuración de vistas en Editar sitio (#80816, #80524, #80463, #80577).
- Los estilos base eliminan el parámetro de color de acento de
input-control, y se elimina el componente privadoTheme(#80595, #80691).
Qué revisar al actualizar
Prueba primero la versión en una copia de desarrollo si tu proyecto personaliza el editor, usa galerías dinámicas, registra controles de formulario o depende de la configuración de vistas. Revisa de forma específica cualquier integración con RTC, componentes de DataViews, theme.json, la Biblioteca de fuentes y procesos de compilación que usen Jest o React.
Si necesitas evaluar la herencia de Estilos globales, actívala desde Experimentos de Gutenberg y valida los valores que muestra el inspector de bloques. Para sitios de contenido, comprueba las galerías dinámicas tras separarlas, las vistas previas de móvil y tableta, los bloques flotantes junto a elementos fijados y la edición de fórmulas LaTeX.
Referencias / Fuentes
Carlos Rodríguez
Desarrollador de aplicaciones móviles, fan de React Native y Flutter. Soluciones multiplataforma y rendimiento nativo es mi lema. En mi tiempo libre trabajo en proyectos de startups.
Todas las publicaciones