{"id":233307,"date":"2023-02-11T13:04:00","date_gmt":"2023-02-11T10:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233307"},"modified":"2022-11-10T20:23:57","modified_gmt":"2022-11-10T17:23:57","slug":"los-fundamentos-del-desarrollo-para-wordpress-gutenberg-para-principiantes","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/los-fundamentos-del-desarrollo-para-wordpress-gutenberg-para-principiantes\/","title":{"rendered":"Los fundamentos del desarrollo para WordPress Gutenberg para principiantes"},"content":{"rendered":"\n<p>Esta publicaci\u00f3n tiene como objetivo ayudarlo a comprender los conceptos clave para desarrollar para el nuevo editor en WordPress; Gutenberg. Gutenberg todav\u00eda es bastante nuevo al momento de escribir esto. Y como ocurre con todas las nuevas tecnolog\u00edas en su fase de nacimiento, lamentablemente falta un poco la documentaci\u00f3n y los est\u00e1ndares.<\/p>\n<p>El sitio de documentaci\u00f3n de WordPress tiene una gran secci\u00f3n dedicada a Gutenberg para desarrolladores; llamado el <a href=\"https:\/\/developer.wordpress.org\/block-editor\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">manual del editor de Gutenberg<\/a>. Ya contiene bastante informaci\u00f3n. Pero puede ser un poco confuso o intimidante para alguien que es nuevo en tecnolog\u00edas basadas en Javascript. Para los desarrolladores centrados en PHP que pueden tener conocimientos b\u00e1sicos de Javascript\/jQuery, las nuevas tecnolog\u00edas de WordPress pueden parecer intimidantes. Pero conf\u00eda en m\u00ed, una vez que aprendas los conceptos clave, ver\u00e1s qu\u00e9 nuevas posibilidades tienes ahora como desarrollador de WordPress.<\/p>\n<p>Comencemos con los conceptos b\u00e1sicos absolutos. \u00bfQu\u00e9 lenguaje(s) de programaci\u00f3n y herramientas necesitar\u00eda usar o aprender para desarrollar mejor para Gutenberg?<\/p>\n<h2>El idioma y las bibliotecas que necesitar\u00e1 saber<\/h2>\n<p>La respuesta corta a qu\u00e9 lenguaje necesita usar para desarrollar Gutenberg es: Javascript. Sin embargo, dentro del mundo de Javascript, existen bastantes conceptos, extensiones y herramientas que debe tener en cuenta.<\/p>\n<p>En primer lugar, hay una cuesti\u00f3n de versi\u00f3n de Javascript. Hay una estandarizaci\u00f3n oficial de Javascript; ECMAScript. ECMAScript 5 (a menudo abreviado como <strong>ES5<\/strong>) sali\u00f3 hace unos 10 a\u00f1os y es la versi\u00f3n de Javascript con la que la mayor\u00eda de los desarrolladores estamos familiarizados. Luego tenemos ECMAScript 6 (a menudo abreviado como <strong>ES6<\/strong>) que sali\u00f3 en 2015. Algunas personas se refieren a esta versi\u00f3n como ES2015. Y finalmente est\u00e1 <strong>ESNext<\/strong>, que es un nombre din\u00e1mico que cubre la pr\u00f3xima versi\u00f3n, que contiene propuestas que esperamos se incluyan en cualquier pr\u00f3xima versi\u00f3n estandarizada de Javascript.<\/p>\n<p>Es posible que est\u00e9 pensando en la l\u00ednea de \u00abas\u00ed que todo est\u00e1 bien y todo, las versiones m\u00e1s nuevas de Javascript solo significan m\u00e1s funciones. As\u00ed que usar\u00e9 el m\u00e1s nuevo.&quot; Pero hay algo muy importante que debes saber sobre las versiones de Javascript y es esto: la mayor\u00eda de los navegadores de hoy solo pueden entender ES5.<\/p>\n<p>Esto significa que si desea escribir Javascript en ES6 o ESNext, debe configurar herramientas que transformen su c\u00f3digo en ES5 para que los navegadores puedan entenderlo. Pero antes de que empieces a pensar en saltarte el aprendizaje de ES6 y ESNext por completo, recuerda que ES5 tiene 10 a\u00f1os. Y requerir\u00e1 que escribas mucho m\u00e1s c\u00f3digo. Tambi\u00e9n ser\u00e1 mucho menos legible y m\u00e1s complejo que si lo escribiera en ES6 o ESNext.<\/p>\n<p>Adem\u00e1s, para los conceptos de Gutenberg, tambi\u00e9n querr\u00e1 usar <strong>JSX<\/strong>, una extensi\u00f3n de sintaxis para Javascript. JSX tambi\u00e9n es un lenguaje que los navegadores no pueden entender sin transformarlo.<\/p>\n<h3>Entonces, \u00bfpor qu\u00e9 molestarse con ES6, ESNext o JSX?<\/h3>\n<p>Si a\u00fan no est\u00e1 convencido de que ES6\/ESNext vale la pena el paso adicional para transformarlo, perm\u00edtame mostrarle una comparaci\u00f3n de c\u00f3digo. Con ES6 y JSX puede escribir esto para devolver un p\u00e1rrafo simple; con una clase y salida din\u00e1mica de una variable;<\/p>\n<pre><code>return &lt;p className=\"example\"&gt;Hello, my name is {name}&lt;\/p&gt;;<\/code><\/pre>\n<p>Para aquellos de ustedes que son nuevos en esto y piensan que he olvidado las citas, no, no lo he hecho. Esta es la simpleza de JSX. Comparemos lo anterior con c\u00f3mo escribir\u00eda con ES5 y las bibliotecas Javascript de WordPress:<\/p>\n<pre><code>return wp.element.createElement(\n    'p',\n    { className: 'example' },\n    'Hello, my name is ' + name\n);<\/code><\/pre>\n<p>\u00a1Todo el c\u00f3digo anterior es necesario para generar lo que ES6 y JSX pueden hacer en una sola l\u00ednea muy f\u00e1cil de leer! Imagine crear una interfaz de usuario m\u00e1s compleja con eventos y condicionales, cuando solo un p\u00e1rrafo simple requiere este engorroso fragmento de c\u00f3digo.<\/p>\n<p>\u00bfConvencido? \u00a1Bueno!<\/p>\n<h3>Herramientas de transformaci\u00f3n y React JS<\/h3>\n<p>La herramienta m\u00e1s com\u00fan, y la que usa WordPress, para transformar ES6\/ESNext es <a href=\"https:\/\/babeljs.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Babel<\/a>. Por lo general, usar\u00eda Babel como un complemento para <a href=\"https:\/\/webpack.js.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Webpack<\/a>, que es una herramienta que agrupa y minimiza sus archivos Javascript. Ambas herramientas usan <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node.js<\/a>, que le brinda algunas herramientas para ejecutar scripts para Webpack y Babel en la l\u00ednea de comandos. Si todo esto suena confuso, tengo una publicaci\u00f3n que explica <a href=\"https:\/\/awhitepixel.com\/blog\/guide-in-setting-up-a-development-environment-for-gutenberg-with-npm-webpack-and-babel\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">en profundidad c\u00f3mo configurar todas estas herramientas para<\/a> el desarrollo de Gutenberg.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153969-61e5175b816e1.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153969-61e5175b816e1.png\" alt=\"Los fundamentos del desarrollo para WordPress Gutenberg para principiantes\" ><\/a><\/p>\n<p>Lo segundo que debe saber sobre las tecnolog\u00edas es que Gutenberg se basa en una capa de abstracci\u00f3n sobre <strong>React JS<\/strong>. <a href=\"https:\/\/reactjs.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">React JS<\/a> es una biblioteca Javascript de c\u00f3digo abierto mantenida por Facebook y se lanz\u00f3 alrededor del a\u00f1o 2013. Debido a que React ha existido por un tiempo, hay muchos tutoriales, gu\u00edas y documentaci\u00f3n para esta biblioteca. El sitio oficial de React tiene un buen <a href=\"https:\/\/reactjs.org\/tutorial\/tutorial.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutorial<\/a> detallado para los nuevos en React. Definitivamente no necesita ser un experto en React para desarrollar para Gutenberg, pero los conceptos b\u00e1sicos de c\u00f3mo funciona con componentes y estados lo ayudar\u00e1n mucho a comprender Gutenberg.<\/p>\n<h3>Para concluir:<\/h3>\n<ul>\n<li>Aprender <strong>React JS<\/strong> contribuir\u00e1 en gran medida a comprender c\u00f3mo desarrollar para Gutenberg. Especialmente si desea crear sus propios bloques personalizados o personalizar los existentes.<\/li>\n<li>Puede hacerlo usando solo ES5 Javascript, pero definitivamente se recomienda aprender <strong>ES6<\/strong>, <strong>ESNext<\/strong> y <strong>JSX<\/strong>.<\/li>\n<li>Familiar\u00edcese con las herramientas necesarias para que pueda transformar su c\u00f3digo ES6 \/ ESNext \/ JSX. Esas herramientas son <strong>npm<\/strong>, <strong>Webpack<\/strong> y <strong>Babel<\/strong>.<\/li>\n<\/ul>\n<h2>La nueva forma de almacenar el contenido de las publicaciones y por qu\u00e9<\/h2>\n<p>Uno de los mayores beneficios de Gutenberg es alejarse del HTML fijo en el contenido de las publicaciones. WordPress, antes de Gutenberg, y la mayor\u00eda de los CMS basados \u200b\u200ben web almacenan el contenido de los art\u00edculos en HTML puro. Esto generalmente no es un problema con contenido simple (t\u00edtulos y p\u00e1rrafos). Pero podr\u00eda ser un problema mayor con contenido enriquecido m\u00e1s complejo y din\u00e1mico.<\/p>\n<p>Cualquier CMS que permita contenido din\u00e1mico dentro del contenido del art\u00edculo tendr\u00e1 problemas para guardarlo como HTML v\u00e1lido. Esto podr\u00eda ser cualquier cosa, desde una imagen que hace referencia a su ID dentro del sistema en lugar de la URL completa. O un widget que muestra din\u00e1micamente las \u00faltimas publicaciones dentro de una categor\u00eda determinada. Normalmente, esto se resolver\u00e1 generando HTML cr\u00edptico personalizado que no tiene sentido que se emita normalmente. Y luego deje que el analizador CMS maneje la transformaci\u00f3n de esas piezas HTML en algo significativo o din\u00e1mico. La desventaja de esto es que si transfiere su contenido a otro CMS, a menudo resultar\u00e1 en un HTML feo. El contenido se llenar\u00eda con HTML sin analizar que debe limpiar manualmente. Este problema es lo que Gutenberg pretende resolver.<\/p>\n<p>Con Gutenberg, WordPress ha optado por guardar informaci\u00f3n adicional y din\u00e1mica como comentarios HTML. Los comentarios HTML nunca son visibles para los usuarios en el sitio web y, b\u00e1sicamente, todo est\u00e1 permitido dentro del bloque de comentarios. Un comentario HTML comienza <code>&lt;!--<\/code>y termina con <code>--&gt;<\/code>, y Gutenberg almacena los datos en una determinada estructura con formato JSON. Cada bloque en Gutenberg est\u00e1 envuelto por un comentario HTML de inicio y un comentario HTML de cierre despu\u00e9s de \u00e9l.<\/p>\n<h3>La nueva forma de almacenar el contenido de las publicaciones<\/h3>\n<p>No entrar\u00e9 en detalles sobre c\u00f3mo se estructuran los bloques de comentarios; encontrar\u00e1 una <a href=\"https:\/\/developer.wordpress.org\/block-editor\/key-concepts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gu\u00eda detallada<\/a> sobre esto en el Manual del editor de WordPress. Pero como ejemplo, un p\u00e1rrafo simple en el contenido de una publicaci\u00f3n de Gutenberg se guardar\u00e1 en la base de datos como:<\/p>\n<pre><code>&lt;!-- wp:paragraph --&gt;\n&lt;p&gt;Lorem ipsum dolor sit amet consectetur adipiscing elit.&lt;\/p&gt;\n&lt;!-- \/wp:paragraph --&gt;<\/code><\/pre>\n<p>En cuanto al contenido din\u00e1mico, normalmente no se generar\u00e1 ning\u00fan HTML. Toda la informaci\u00f3n que WordPress necesita para comprender lo que hace este bloque se encuentra dentro de los comentarios HTML. As\u00ed almacena Gutenberg un bloque de \u00ab\u00daltimas publicaciones&quot;:<\/p>\n<pre><code>&lt;!-- wp:latest-posts {\"categories\":\"17\",\"displayPostContent\":true,\"excerptLength\":30,\"postLayout\":\"grid\"} \/--&gt;<\/code><\/pre>\n<p>Dado que todo es un comentario HTML, la transferencia de sus publicaciones a otro WordPress sin Gutenberg u otro CMS asegurar\u00e1 que no se escupe HTML feo sin analizar. Simplemente ser\u00e1 ignorado y salteado.<\/p>\n<p>Como probablemente ya se haya dado cuenta, los bloques de comentarios comienzan con el nombre del bloque, con el prefijo &#8216; <code>wp<\/code>&#8216;. Si hay alguna configuraci\u00f3n personalizada, se generar\u00e1 despu\u00e9s del nombre en JSON, como puede ver en el ejemplo del bloque \u00daltimas publicaciones. Gutenberg se refiere a estos como atributos, y este concepto es algo con lo que te familiarizar\u00e1s cuando comiences a aprender a desarrollar para Gutenberg.<\/p>\n<p><strong>\u00datil para saber:<\/strong><br \/>\nsi desea una mirada m\u00e1s profunda a c\u00f3mo se guarda el contenido de la nueva publicaci\u00f3n, puede buscar en su <code>wp_posts<\/code>tabla en su base de datos. Existe otro m\u00e9todo m\u00e1s sencillo para ver el valor completo de la base de datos, desde las plantillas de WordPress. En su plantilla \u00fanica dentro del ciclo, simplemente use &quot; <code>echo get_the_content()<\/code>&quot;. El uso del &quot; &quot; normal <code>the_content()<\/code>generar\u00e1 el contenido de la publicaci\u00f3n analizada, pero repetir el valor del contenido generar\u00e1 exactamente lo que est\u00e1 almacenado en la base de datos. Puede usar la herramienta Inspeccionar o ver la fuente en Chrome o Firefox para ver los bloques de comentarios.<\/p>\n<h2>Lo que usted como desarrollador puede hacer en Gutenberg<\/h2>\n<p>Tiene un par de opciones sobre c\u00f3mo personalizar sus temas o complementos para Gutenberg. A continuaci\u00f3n se enumeran las personalizaciones m\u00e1s comunes que probablemente har\u00eda como desarrollador.<\/p>\n<h3>Ampliar y personalizar bloques existentes<\/h3>\n<p>WordPress Gutenberg viene con un gran paquete de tipos de bloques, y puede extender cualquiera de estos. Tambi\u00e9n puede eliminar algunos de ellos, o decidir para ciertos casos permitir o eliminar solo algunos de ellos.<\/p>\n<p>El m\u00e9todo m\u00e1s com\u00fan para extender un bloque es <a href=\"https:\/\/developer.wordpress.org\/block-editor\/developers\/filters\/block-filters\/#block-style-variations\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">agregar estilos de bloque personalizados<\/a>, que son variaciones de estilo de un bloque. Los estilos de bloque no son tan comunes en WordPress por defecto, pero hay algunos. Eche un vistazo al bloque Citar. En el editor de Gutenberg, tendr\u00e1 un cuadro en la barra lateral derecha llamado &quot;Estilos&quot;.<\/p>\n<p>Otra forma de personalizar los bloques existentes es mediante el uso de filtros. Probablemente est\u00e9 familiarizado con los filtros que usan PHP en WordPress, pero con Gutenberg ahora hay <a href=\"https:\/\/developer.wordpress.org\/block-editor\/developers\/filters\/block-filters\/#filters\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">filtros basados \u200b\u200ben Javascript en bloques<\/a>. Por ejemplo, puede agregar sus propios atributos personalizados (configuraciones) a todos o tipos espec\u00edficos de bloques o filtrar c\u00f3mo se guardan o generan.<\/p>\n<p>Tambi\u00e9n puede manipular las categor\u00edas de bloques, as\u00ed como eliminar o permitir ciertos bloques en ciertas situaciones. O puede, por ejemplo, asegurarse de que solo se permitan un pu\u00f1ado de tipos de bloque para un tipo de publicaci\u00f3n personalizada.<\/p>\n<h3>Crea tus propios bloques personalizados<\/h3>\n<p>Crear bloques personalizados es quiz\u00e1s el primer pensamiento que tienen la mayor\u00eda de los desarrolladores de WordPress. Los bloques predeterminados en WordPress pueden ser muy \u00fatiles, pero si est\u00e1 creando un tema o complemento m\u00e1s complejo, probablemente tenga necesidades espec\u00edficas. Por ejemplo, usar Gutenberg para crear una portada atractiva con accesos directos al contenido y al contenido din\u00e1mico. Es posible lograr la mayor personalizaci\u00f3n utilizando la opci\u00f3n de clase CSS que existe para todos los bloques. Pero esto no es particularmente f\u00e1cil de usar.<\/p>\n<p>Escribir sus propios bloques personalizados es probablemente lo m\u00e1s dif\u00edcil para personalizar su tema o complemento para Gutenberg. \u00a1Pero tambi\u00e9n puede ser el m\u00e1s gratificante! No solo podr\u00e1 crear bloques que se vean exactamente como usted quiere, sino que tambi\u00e9n es una excelente manera de aprender r\u00e1pidamente sobre la nueva tecnolog\u00eda basada en Javascript.<\/p>\n<h3>Asegurarse de que su tema est\u00e9 listo para Gutenberg<\/h3>\n<p>Si es un desarrollador de temas de WordPress, debe tener en cuenta que hay una gran cantidad de configuraci\u00f3n que su tema podr\u00eda necesitar para Gutenberg, especialmente en forma de <code>add_theme_support()<\/code>. El manual de WordPress tiene una <a href=\"https:\/\/developer.wordpress.org\/block-editor\/developers\/themes\/theme-support\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">buena descripci\u00f3n general<\/a> de todos los soportes de temas que debe considerar para que su tema est\u00e9 listo para Gutenberg.<\/p>\n<p>Como predeterminado, WordPress manejar\u00e1 la mayor\u00eda de los estilos de los bloques predeterminados, por lo que no deber\u00eda preocuparse demasiado por dise\u00f1arlos en su tema. Pero los desarrolladores de temas suelen ser m\u00e1s exigentes con su dise\u00f1o y estilo. Por lo tanto, es probable que deba ajustar o agregar un estilo de bloque. Puede agregar estilos de editor solo al frontend, solo al editor o ambos. El manual de WordPress Gutenberg proporciona una <a href=\"https:\/\/developer.wordpress.org\/block-editor\/developers\/themes\/theme-support\/#editor-styles\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">descripci\u00f3n general de los estilos del editor<\/a> y los estilos de bloque predeterminados.<\/p>\n<p>Tambi\u00e9n hay un concepto de <a href=\"https:\/\/developer.wordpress.org\/block-editor\/developers\/block-api\/block-templates\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">plantillas de bloques<\/a> donde puedes predefinir qu\u00e9 bloques deben aparecer en las publicaciones. Las plantillas de bloque se pueden usar como marcador de posici\u00f3n para ayudar al editor a completar los bloques. Pero tambi\u00e9n se puede utilizar para definir un conjunto fijo de bloques y posiciones.<\/p>\n<p>Y finalmente, hay funciones disponibles para trabajar con el analizador de Gutenberg y c\u00f3mo extraer bloques de las publicaciones. Debido a que todo el contenido se guarda con informaci\u00f3n completa sobre el tipo de contenido, puede extraer f\u00e1cilmente partes espec\u00edficas del contenido de la publicaci\u00f3n. Un buen ejemplo es extraer el primer p\u00e1rrafo de las publicaciones para mostrarlo como extracto. Una funci\u00f3n de PHP muy \u00fatil para este concepto es <code>[parse_blocks](https:\/\/developer.wordpress.org\/reference\/functions\/parse_blocks\/)()<\/code>, que utiliza el analizador de Gutenberg en el contenido de la publicaci\u00f3n proporcionado y, a cambio, obtendr\u00e1 una matriz de PHP con toda la informaci\u00f3n y el contenido del bloque.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Espero que esta publicaci\u00f3n no solo te haya ense\u00f1ado algo sobre el desarrollo para Gutenberg, sino que tambi\u00e9n te haya despertado la curiosidad y el inter\u00e9s por aprender m\u00e1s. Como desarrollador de WordPress centrado en PHP que inicialmente se resisti\u00f3 a la idea de cambiar a la tecnolog\u00eda basada en Javascript, puedo decirle que una vez que haya dado el paso para aprender sobre la &quot;nueva forma&quot;, se alegrar\u00e1 de haberlo hecho. Gutenberg se abre a nuevas formas de personalizar, dise\u00f1ar y mostrar contenido de WordPress sin la necesidad de creadores de p\u00e1ginas o temas con bibliotecas pesadas para permitir contenido de publicaci\u00f3n flexible y atractivo. \u00a1Solo tenemos que aprender a trabajar con \u00e9l de manera \u00f3ptima!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta publicaci\u00f3n tiene como objetivo ayudarlo como desarrollador de WordPress, pero principiante de Gutenberg, a comprender los conceptos clave y los conceptos b\u00e1sicos para desarrollar Gutenberg.<\/p>\n","protected":false},"author":1,"featured_media":220557,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,892,810,716,716,935,935,1110,810,840,840,861,861],"tags":[1172],"class_list":["post-233307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-complementos","category-desarrollador","category-gutenberg-2","category-n-a","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=233307"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/220557"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}