Gráfico decorativo de WordPress 7.1

Novedades de WordPress 7.1

WordPress 7.1 se publicó el pasado 19 de agosto y, como suele ocurrir con las versiones principales, llega con un buen número de cambios repartidos entre el editor, las herramientas para desarrolladores y el propio funcionamiento interno de WordPress.

No todas las novedades tienen la misma importancia ni van a resultar igual de visibles. Algunas afectan directamente a la forma de trabajar con el editor de bloques, mientras que otras probablemente pasarán desapercibidas para la mayoría de usuarios, pero resultan interesantes para quienes desarrollamos temas, plugins o soluciones a medida sobre WordPress.

En este artículo voy a repasar las novedades de WordPress 7.1 que considero más relevantes, explicando no solo qué ha cambiado, sino también qué implicaciones pueden tener en el trabajo diario con WordPress.

Más control responsive y nuevos estados para los bloques

Una de las novedades más interesantes de WordPress 7.1 está en las posibilidades de diseño del editor de bloques. El sistema de estilos incorpora controles responsive que permiten definir determinados valores de forma diferente según estemos trabajando para escritorio, tablet o móvil.

No estamos simplemente ante una vista previa para comprobar cómo queda una página en distintos tamaños de pantalla. Ahora es posible establecer valores específicos para propiedades como el espaciado, las dimensiones, la tipografía, los colores, los fondos, los bordes o determinadas opciones de disposición. Estos ajustes pueden aplicarse tanto desde los estilos globales como sobre bloques concretos.

Por defecto, WordPress establece sus propios tamaños de referencia para escritorio, tablet y móvil, aunque los desarrolladores de temas podemos configurar estos puntos de ruptura mediante theme.json. Esto permite integrar la nueva funcionalidad dentro del sistema responsive que hayamos definido para un proyecto, en lugar de tener que adaptarnos necesariamente a unos valores establecidos por WordPress.

El cambio es importante porque hasta ahora muchas de estas diferencias entre dispositivos terminaban resolviéndose mediante CSS. WordPress 7.1 lleva parte de ese trabajo al propio editor y permite modificarlo visualmente, algo que amplía considerablemente las posibilidades de diseño sin necesidad de escribir código.

Esto no significa, sin embargo, que en todos los proyectos interese dejar estos controles en manos de cualquier usuario. Una web puede tener definido un sistema responsive cuidadosamente preparado para que sus componentes mantengan determinadas proporciones y comportamientos. Permitir modificar libremente esos valores puede ser útil para un usuario avanzado y contraproducente para otro que simplemente necesita editar contenidos.

WordPress ha tenido en cuenta este escenario y permite desactivar la edición responsive sin eliminar los estilos que ya estén definidos. Es una posibilidad especialmente interesante cuando desarrollamos una web para terceros, ya que podemos aprovechar estas nuevas herramientas para construir el diseño sin que eso implique necesariamente entregar posteriormente el mismo nivel de control.

Junto con el responsive, WordPress 7.1 amplía el sistema de estilos para trabajar con estados como hover, focus, focus-visible o active. Son estados que tradicionalmente hemos definido mediante CSS y que ahora empiezan a integrarse en las herramientas de diseño de WordPress.

Por el momento su presencia en la interfaz es más limitada que la del sistema que hay detrás. Algunos de estos controles están disponibles en bloques como Botón o Enlace de navegación, mientras que los desarrolladores podemos definir estados mediante theme.json. Es, por tanto, una funcionalidad que probablemente irá ganando presencia en el editor conforme evolucione en próximas versiones.

También se incorporan nuevos soportes para bloques, entre ellos los gradientes de fondo y la posibilidad de establecer una anchura mínima. Individualmente son cambios bastante más pequeños, pero forman parte de la misma evolución del sistema de estilos y aumentan las opciones que podemos ofrecer desde el editor sin tener que crear soluciones específicas mediante CSS.

Procesamiento de imágenes directamente en el navegador

Otra de las novedades importantes de WordPress 7.1 afecta a la gestión de imágenes, aunque en este caso buena parte del cambio ocurre sin que el usuario tenga que hacer nada diferente. WordPress puede realizar en el propio navegador algunas tareas que hasta ahora recaían sobre el servidor una vez que habíamos subido una imagen.

El nuevo sistema utiliza WebAssembly y Web Workers para procesar las imágenes antes de enviarlas. Esto permite realizar operaciones como redimensionarlas, comprimirlas, recortarlas, corregir su orientación o convertirlas a otro formato aprovechando los recursos del dispositivo desde el que estamos trabajando y sin bloquear la interfaz mientras se realiza el proceso.

La diferencia respecto al funcionamiento tradicional es importante. Cuando subimos una imagen a WordPress, normalmente no se almacena únicamente el archivo original. WordPress genera diferentes tamaños que posteriormente utiliza en función del lugar donde se muestra la imagen. Todo ese procesamiento ha recaído tradicionalmente sobre el servidor, con el correspondiente consumo de memoria y CPU.

Con WordPress 7.1, los distintos tamaños registrados pueden generarse en el navegador antes de subirlos. Además de reducir el trabajo que tiene que realizar el servidor, esto puede resultar especialmente útil en alojamientos con recursos limitados o cuando trabajamos con imágenes de gran tamaño, dos situaciones en las que el procesamiento de medios puede llegar a provocar errores o tiempos de espera excesivos.

Un caso bastante cotidiano es el de las fotografías en formato HEIC o HEIF. Es habitual encontrarnos con estos archivos cuando las imágenes proceden directamente de un iPhone y no siempre resultan adecuados para utilizarlos tal cual en una web. WordPress puede ahora convertirlos a JPEG desde el navegador antes de completar la subida, evitando que esa conversión dependa de las capacidades de procesamiento de imágenes disponibles en el servidor.

Para la mayoría de usuarios, todo esto debería traducirse simplemente en un proceso de subida de imágenes más eficiente. Sin embargo, para quienes desarrollamos sobre WordPress hay un detalle que conviene tener presente. Al trasladarse parte del procesamiento al navegador, determinados hooks que tradicionalmente se ejecutaban durante la generación de imágenes en el servidor pueden no intervenir cuando se utiliza el nuevo sistema.

Esto no tiene por qué afectar a una instalación convencional, pero sí merece una revisión si un plugin o un desarrollo propio modifica las imágenes durante su procesamiento, interviene en la generación de tamaños o depende de alguno de esos hooks. Es un buen ejemplo de una mejora que puede resultar prácticamente transparente para el usuario y, al mismo tiempo, cambiar algunos supuestos sobre los que funcionaba código existente.

Novedades de WordPress 7.1 para desarrolladores

Además de los cambios que podemos apreciar directamente al trabajar con el editor, WordPress 7.1 incorpora varias novedades dirigidas específicamente a quienes desarrollamos temas, plugins o bloques. Entre ellas encontramos una nueva API para trabajar con iconos SVG, cambios en la forma en que se carga el editor de bloques y nuevas mejoras en la Abilities API.

Una API común para trabajar con iconos SVG

WordPress 7.1 amplía el sistema de iconos SVG introducido en la versión anterior con una API que permite registrar y gestionar iconos de una forma estandarizada. Podemos registrar colecciones completas o iconos individuales, recuperarlos desde PHP y utilizarlos también a través de la API REST.

Los iconos son un recurso tan habitual en cualquier interfaz que prácticamente todos hemos terminado resolviendo el mismo problema de una forma u otra. Un tema puede incluir su propia colección, un plugin cargar otra diferente y un bloque personalizado implementar su propio mecanismo para mostrar SVG. La nueva API proporciona una infraestructura común que pueden utilizar tanto el propio WordPress como temas y plugins.

Esto no significa que tengamos que abandonar automáticamente cualquier sistema de iconos que utilicemos actualmente, pero sí ofrece una alternativa nativa especialmente interesante para nuevos desarrollos. También facilita que diferentes componentes puedan compartir colecciones sin necesidad de implementar cada uno su propio sistema para registrarlas, recuperarlas y mostrarlas.

El editor de bloques pasa a utilizar siempre un iframe

Otro cambio menos visible, pero que conviene conocer si desarrollamos para el editor de bloques, es que WordPress 7.1 pasa a cargar su contenido siempre dentro de un iframe.

El uso de un iframe permite aislar mejor el contenido que estamos editando de la propia interfaz de WordPress. Entre otras cosas, evita que los estilos de la administración interfieran accidentalmente con los bloques y facilita que lo que vemos mientras editamos se corresponda mejor con el resultado que posteriormente aparecerá en la web.

No es un mecanismo completamente nuevo. WordPress ya utilizaba el editor dentro de un iframe en determinadas circunstancias, pero hasta ahora su uso dependía de las características de los bloques presentes. Con WordPress 7.1 deja de existir esa diferencia y el editor utiliza siempre este sistema.

Para un usuario el cambio debería resultar transparente. Para un desarrollador puede no serlo tanto. El código que acceda directamente al DOM del editor, determinadas extensiones de Gutenberg o algunos estilos y scripts desarrollados partiendo de la estructura anterior pueden necesitar ajustes. Si tenemos desarrollos propios que modifican el comportamiento del editor, este es uno de los puntos que conviene comprobar al actualizar.

La Abilities API continúa evolucionando

WordPress 7.1 también continúa desarrollando la Abilities API, incorporada recientemente a Core con la intención de proporcionar una forma estandarizada de registrar las capacidades que puede realizar WordPress, un plugin o cualquier otro componente.

Conviene no confundir estas abilities con el sistema tradicional de roles y capacidades de WordPress. Mientras que estas últimas determinan qué puede hacer un usuario, una ability describe una acción que el sistema sabe realizar, junto con la información necesaria para identificarla, conocer sus parámetros y ejecutarla.

En WordPress 7.1 la API recibe nuevos mecanismos para intervenir durante el ciclo de ejecución de estas acciones, además de otras mejoras orientadas a facilitar su integración. Es una API relativamente reciente y probablemente muchos desarrolladores no tendrán todavía necesidad de utilizarla directamente, pero resulta interesante seguir su evolución porque proporciona una infraestructura común sobre la que otros componentes de WordPress pueden apoyarse en el futuro.

En este caso, más que una funcionalidad que vaya a cambiar inmediatamente nuestra forma de desarrollar, estamos ante una pieza de Core que continúa madurando y que conviene tener localizada si trabajamos habitualmente con desarrollos a medida sobre WordPress.

Otros cambios de WordPress 7.1 que merece la pena conocer

Más allá de las novedades que hemos visto hasta ahora, WordPress 7.1 incorpora otros cambios de menor alcance que afectan a la experiencia de administración y continúan mejorando distintos aspectos de Core.

Uno de los más visibles es el nuevo comportamiento de la barra de administración. WordPress introduce una barra persistente que permanece disponible mientras nos desplazamos por determinadas pantallas, facilitando el acceso a las acciones habituales sin necesidad de volver a la parte superior de la página. No cambia nuestra forma de trabajar con WordPress, pero sí resuelve una de esas pequeñas fricciones que se repiten constantemente cuando administramos contenidos.

También encontramos un buen número de mejoras relacionadas con la accesibilidad. WordPress 7.1 continúa corrigiendo problemas de contraste, navegación y estructura de diferentes interfaces, además de incorporar mejoras en los tooltips y en la representación de jerarquías entre páginas.

Son cambios que individualmente pueden pasar desapercibidos, especialmente para quienes no se encuentran con las barreras que pretenden solucionar, pero forman parte de un trabajo continuo que resulta especialmente importante en una herramienta utilizada para administrar millones de webs. La accesibilidad no afecta únicamente al resultado que ofrecemos a los visitantes, sino también a las personas que tienen que utilizar WordPress para gestionar esos contenidos.

A estos cambios se suman numerosas correcciones y pequeñas mejoras repartidas entre los diferentes componentes de Core y el editor. Como ocurre en cualquier versión de este tamaño, buena parte del trabajo realizado en WordPress 7.1 no se traduce en una nueva opción que podamos señalar en la interfaz, sino en corregir comportamientos existentes, mejorar compatibilidades o preparar la base sobre la que seguir desarrollando nuevas funcionalidades.

Qué tener en cuenta antes de actualizar a WordPress 7.1

Mantener WordPress actualizado sigue siendo importante, pero una versión mayor merece algo más de atención cuando hablamos de una web en producción, especialmente si utiliza desarrollos propios o depende de plugins que intervienen de forma importante en el editor.

En WordPress 7.1 tenemos varios cambios concretos que justifican hacer algunas comprobaciones. El nuevo procesamiento de imágenes en el navegador es uno de ellos. Como hemos visto, si tenemos código que utiliza hooks asociados al procesamiento de imágenes en el servidor, conviene comprobar que siga ejecutándose en las situaciones en las que lo necesitamos.

Lo mismo ocurre con el uso permanente de un iframe en el editor de bloques. Un plugin convencional que utilice correctamente las APIs de WordPress no debería necesitar cambios por este motivo, pero las personalizaciones que accedan directamente al DOM del editor o dependan de su estructura pueden encontrarse con un comportamiento diferente. Si hemos desarrollado bloques, extensiones de Gutenberg o herramientas internas para facilitar la edición de contenidos, merece la pena dedicarles unos minutos de prueba.

WordPress 7.1 también actualiza jQuery UI a la versión 1.14.2. Aunque su presencia ha ido perdiendo protagonismo en el desarrollo moderno con WordPress, sigue existiendo bastante código que depende de esta biblioteca. Algunos plugins antiguos y desarrollos realizados hace años pueden apoyarse en comportamientos o estilos que hayan cambiado entre versiones, por lo que es otro punto que conviene revisar cuando tengamos este tipo de dependencias.

En una instalación relativamente sencilla, con plugins y tema mantenidos y sin personalizaciones importantes, la actualización no debería plantear demasiadas dificultades. En proyectos más complejos prefiero aplicar el mismo criterio que con cualquier otra actualización importante de WordPress: probar primero en un entorno de desarrollo o staging, revisar las funcionalidades que puedan verse afectadas y actualizar producción cuando sepamos que todo continúa funcionando correctamente.

WordPress 7.1 trae suficientes cambios internos como para que esa comprobación tenga sentido. No se trata de retrasar una actualización por precaución indefinidamente, sino de evitar que una tarea rutinaria termine descubriendo en producción una incompatibilidad que podríamos haber detectado antes.


Referencias:

Jesús Tovar - Desarrollador web freelance Sevilla

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *