✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo dejar obsoletos los bloques de Gutenberg

12

Uno de los problemas más comunes con la actualización de un tema o complemento con bloques de Gutenberg es que hacer cambios en el código del bloque romperá todas las publicaciones existentes que usan ese bloque. Afortunadamente, WordPress ofrece una solución; una forma de desaprobar los bloques. En este post veremos cómo hacerlo.

Si ha trabajado con el desarrollo de bloques antes, probablemente esté familiarizado con este error de bloque cuando agregó un bloque y luego cambió la savefunción.

Cómo dejar obsoletos los bloques de Gutenberg

Esto sucede porque WordPress compara el bloque guardado en la base de datos con el código actual en la savefunción de su bloque y no coinciden. WordPress no puede reparar la diferencia. En la mayoría de los casos, puede hacer clic en los tres puntos del bloque y elegir "Intentar recuperación del bloque". Si los cambios realizados en la savefunción fueron pequeños (por ejemplo, un cambio de clase), WordPress puede restaurar el bloque. En el peor de los casos, usted Necesito hacer clic en "Convertir a HTML" y perderá la editfuncionalidad de su bloque. Obviamente, no podemos esperar que los usuarios de nuestro código de bloque encuentren manualmente todas las publicaciones que usan este bloque y realicen estos pasos para cada una.

Entonces, antes de realizar actualizaciones a la savefunción, agregaremos un código para decirle a WordPress cómo manejar el contenido antiguo que se guardó con la savefunción anterior.

¡Entremos en el código!

En realidad es bastante simple. En resumen lo que tenemos que hacer es; agregue una deprecatedpropiedad a la registerBlockType()llamada de función. Esta propiedad espera una matriz. Eso significa que puede desaprobar un bloque varias veces, proporcionando múltiples entradas en la matriz. Cada depreciación se define como un objeto que contiene la attributespropiedad completa y la función (antigua) save.

En otras palabras, define una deprecatedpropiedad como una matriz y luego copia su bloque attributesy savefunción en ella. Deberá incluir atributos aunque no cambie nada en ellos en la actualización. No necesita incluir la editfunción en la depreciación.

Veamos esto en un ejemplo más práctico.

Supongamos que nuestro código de bloque se parece a esto. La editfunción se excluye porque no necesitamos tratarla en la depreciación.

Entonces supongamos que queremos hacer cambios en ambos atributos y guardar y evitar romper bloques existentes. Agregamos la deprecatedpropiedad y copiamos todo attributesy savecomo un elemento de matriz en ella. Entonces somos libres de hacer cualquier cambio en la función attributesor/and save.

Con este código compilado, puede ir a buscar una publicación existente utilizando el código de bloque anterior, ¡y no debería obtener ningún código roto!

WordPress se dará cuenta de que el bloque está usando nuestro código obsoleto y cargará el contenido usando el savecódigo obsoleto. Una vez que realice cambios en el bloque y actualice la publicación, el bloque se guardará con la nueva savefunción.

Depreciación más avanzada y lecturas adicionales

El ejemplo de código anterior es la forma más básica de depreciación. WordPress admite más funciones, como incluir migratee supportsincluso asignar constantes (piense en números de versión) a su código obsoleto. Eche un vistazo a la documentación de WordPress sobre la depreciación de bloques.

Fuente de grabación: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More