{"id":233829,"date":"2023-02-24T18:57:00","date_gmt":"2023-02-24T15:57:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233829"},"modified":"2022-11-11T12:40:39","modified_gmt":"2022-11-11T09:40:39","slug":"guia-completa-para-configurar-un-entorno-de-desarrollo-para-gutenberg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/guia-completa-para-configurar-un-entorno-de-desarrollo-para-gutenberg\/","title":{"rendered":"Gu\u00eda completa para configurar un entorno de desarrollo para Gutenberg"},"content":{"rendered":"\n<p>Esta gu\u00eda es para usted que desea escribir c\u00f3digo para Gutenberg con sintaxis ES6, ESNext y JSX, y necesita configurar webpack y babel para transformarlos en archivos que puede usar en el editor de Gutenberg. Veremos qu\u00e9 debe hacer, por qu\u00e9 y c\u00f3mo podemos usar y ampliar los valores predeterminados de WordPress y personalizarlos para que se ajusten a nuestras necesidades.<\/p>\n<p>Si es nuevo en todos los conceptos de npm, webpcak y Babel, debe leer la siguiente secci\u00f3n que tiene como objetivo explicar los conceptos b\u00e1sicos de c\u00f3mo funcionan estas herramientas y c\u00f3mo las usa. Sin embargo, si ha hecho esto antes y est\u00e1 familiarizado con el proceso, tal vez desarrollando con React, pase a la siguiente secci\u00f3n donde configuraremos las cosas.<\/p>\n<h2>Para principiantes: npm, webpack y babel<\/h2>\n<p>Si no est\u00e1 seguro de por qu\u00e9 necesitamos hacer todo esto para escribir Javascript para Gutenberg, le recomiendo que <a href=\"https:\/\/awhitepixel.com\/blog\/the-basics-of-developing-for-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lea mi publicaci\u00f3n<\/a> que explora los conceptos b\u00e1sicos del desarrollo para Gutenberg, donde explico la diferencia en las versiones de Javascript y por qu\u00e9 vale la pena.<\/p>\n<p>Si nunca antes ha hecho esto, primero deber\u00e1 instalar <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node.js<\/a> en su computadora. Haga clic en el enlace, desc\u00e1rguelo e inst\u00e1lelo. Incluido en Node.js, obtendr\u00e1 una herramienta que usaremos para establecer la mayor parte de la configuraci\u00f3n. Esta herramienta es <code>npm<\/code>, que le permite instalar bibliotecas Javascript y ejecutar scripts a trav\u00e9s de la l\u00ednea de comandos\/terminal. Puede usar alternativamente <code>yarn<\/code>si lo prefiere, pero para esta gu\u00eda usaremos <code>npm<\/code>.<\/p>\n<h3>npm<\/h3>\n<p>Esta gu\u00eda no entrar\u00e1 en detalles sobre todas las cosas que puede hacer con <code>npm<\/code>, pero explicar\u00e1 el concepto b\u00e1sico y las cosas que son relevantes para nuestros prop\u00f3sitos. Lo usaremos <code>npm<\/code>para dos cosas; para instalar las bibliotecas requeridas en nuestro proyecto y para ejecutar comandos para construir (compilar) nuestros archivos Javascript.<\/p>\n<p>Con <code>npm<\/code>usted puede instalar cualquier paquete Javascript p\u00fablico de c\u00f3digo abierto. Si tuvi\u00e9ramos que desarrollar con React (fuera de WordPress), necesitar\u00edamos instalar bibliotecas React y bibliotecas webpack. WordPress ofrece una amplia gama de bibliotecas (principalmente para Gutenberg) que puede instalar, pero en realidad solo estamos interesados \u200b\u200ben una: <code>@wordpress\/scripts<\/code>\u2013 que nos ayuda a simplificar nuestra configuraci\u00f3n.<\/p>\n<p>Cada vez que instale una biblioteca, <code>npm<\/code>se crear\u00e1 una subcarpeta &quot; <code>node_modules<\/code>&quot; donde se almacenan las bibliotecas instaladas. Nunca necesitar\u00e1 ingresar a esta carpeta ni cambiar nada aqu\u00ed, pero tenga en cuenta que esta carpeta contendr\u00e1 f\u00e1cilmente (\u00a1literalmente!) decenas de miles de archivos. Esta es una carpeta que nunca debe asignar a git o incluir en cualquier tema o complemento terminado. Las bibliotecas solo se necesitan durante el desarrollo.<\/p>\n<p>Cuando su entorno est\u00e1 configurado, puede usarlo <code>npm<\/code>para ejecutar scripts definidos en su <code>package.json<\/code>archivo. Dependiendo del proyecto, normalmente tendr\u00eda al menos dos guiones; uno para construir los scripts y otro para iniciar el &quot;modo de observaci\u00f3n&quot;. En el &quot;modo de observaci\u00f3n&quot;, <code>npm<\/code>inicia un proceso en la terminal que espera y escucha los cambios realizados en cualquier archivo, y los compila en tiempo de ejecuci\u00f3n cada vez que presiona guardar. Es posible que est\u00e9 familiarizado con este concepto si ha utilizado programas compiladores SCSS o LESS anteriormente. Es mucho m\u00e1s eficiente ejecutar un script de &quot;vigilancia&quot; en segundo plano que se vuelve a compilar cada vez que guarda, en lugar de ir a la terminal y ejecutar el comando de compilaci\u00f3n despu\u00e9s de cada cambio.<\/p>\n<h3>paquete web y babel<\/h3>\n<p>Puede obtenerlo desarrollando para Gutenberg sin hacer ning\u00fan paquete web o configuraci\u00f3n de babel. Debido a que usamos las bibliotecas de WordPress, ellos lo manejar\u00e1n por nosotros. Sin embargo, esto tiene un inconveniente: el valor predeterminado es una ubicaci\u00f3n y un nombre de archivo fijos para los archivos de origen y de salida. Todo el desarrollo de Javascript debe escribirse dentro de un archivo, en <code>project-folder\/src\/index.js<\/code>, y la compilaci\u00f3n siempre terminar\u00e1 en <code>project-folder\/build\/index.js<\/code>. Si est\u00e1 de acuerdo con esto, puede omitir toda la parte sobre la configuraci\u00f3n del paquete web. Sin embargo, si est\u00e1 desarrollando un tema o complemento con varias caracter\u00edsticas de Gutenberg (bloques personalizados, filtros, etc.), es posible que al menos desee un nombre de archivo de salida y una ubicaci\u00f3n diferentes, adem\u00e1s de permitir varios archivos.<\/p>\n<p>Si usa el paquete de WordPress para manejar la configuraci\u00f3n (<code>@wordpress\/scripts<\/code>), Babel ya est\u00e1 configurado. Pero debe tener en cuenta que es posible que el paquete de WordPress no incluya complementos que desee usar. Hay, por ejemplo, un paquete que le permite usar las nuevas llamadas &quot;funciones de flecha&quot; (<code>myFunction = (param) =&gt; { }<\/code>), para definir funciones sin necesidad de vincular <code>this<\/code>. Si absolutamente desea utilizar estas funciones de ESNext, deber\u00e1 configurar Babel usted mismo en lugar de utilizar los valores predeterminados de WordPress. Voy a explicar c\u00f3mo a continuaci\u00f3n.<\/p>\n<h3>El proceso<\/h3>\n<p>El proceso de desarrollo con webpack una vez que todo est\u00e1 configurado e instalado, es navegar a la carpeta de su proyecto en la terminal e iniciar el script &quot;ver&quot;. Permanecer\u00e1 abierto y escuchar\u00e1 los cambios realizados en sus archivos JS. Cada vez que presione guardar en sus archivos Javascript, el terminal generar\u00e1 informaci\u00f3n (con suerte) de que ha vuelto a compilar con \u00e9xito el archivo. Si hubo alg\u00fan error de compilaci\u00f3n, aparecer\u00e1 en la terminal. Para detener el proceso de &quot;ver&quot;, presione CTRL + C.<\/p>\n<h2>Configuraci\u00f3n del entorno<\/h2>\n<p>Supongo que ya tiene un WordPress local ejecut\u00e1ndose en alguna pila LAMP (programas como WampServer, XAMPP, Docker o similares), y que tiene un complemento o un tema listo para comenzar a codificar su Javascript.<\/p>\n<p>Recomiendo crear una subcarpeta dedicada para su desarrollo de Javascript, ya que podr\u00eda terminar con varios archivos y carpetas de configuraci\u00f3n. Esto facilita la separaci\u00f3n de archivos y carpetas (por ejemplo <code>node_modules\/<\/code>) que no desea incluir en las confirmaciones de git o las compilaciones finales. Pero est\u00e1 perfectamente bien usar su tema principal o carpeta de complementos como carpeta de proyecto para el desarrollo de Javascript.<\/p>\n<p>En la terminal (la terminal de Mac OS o el s\u00edmbolo del sistema de Windows funcionan bien), navegue hasta la carpeta de su proyecto. En cuanto a este tutorial, asumir\u00e9 que estamos en un tema y hemos creado una subcarpeta vac\u00eda <code>gutenberg-dev\/<\/code>como nuestra carpeta de proyecto.<\/p>\n<p>El primer paso es inicializar un proyecto npm, que b\u00e1sicamente es simplemente indicar <code>npm<\/code>que se genere un <code>package.json<\/code>archivo. Este <code>package.json<\/code>archivo informa <code>npm<\/code>sobre qu\u00e9 paquetes se requieren y qu\u00e9 scripts est\u00e1n disponibles para ejecutar. Escriba esto en la terminal;<\/p>\n<pre><code>npm init -y<\/code><\/pre>\n<p>Esto genera un <code>package.json<\/code>archivo con contenido predeterminado en la carpeta de su proyecto.<\/p>\n<p>A continuaci\u00f3n, instalaremos el paquete de WordPress que nos ayudar\u00e1 a reducir la cantidad de configuraci\u00f3n que tendremos que hacer. Ejecute este comando:<\/p>\n<pre><code>npm install --save-dev --save-exact @wordpress\/scripts<\/code><\/pre>\n<p>La etiqueta <code>--save-dev<\/code>informa <code>npm<\/code>que las bibliotecas dadas solo son necesarias para el desarrollo y <code>--save-exact<\/code>se asegura de que <code>npm<\/code>solo instale una versi\u00f3n, la \u00faltima.<\/p>\n<p>Abre el <code>package.json<\/code>archivo en tu editor. (<code>npm<\/code>tambi\u00e9n habr\u00e1 generado un <code>package-lock.json<\/code>al instalar paquetes, puede simplemente ignorar este archivo, es en el <code>package.json<\/code>que har\u00e1 cambios). Debe estar lleno con la configuraci\u00f3n predeterminada, y es posible que observe que la instalaci\u00f3n del paquete que hicimos anteriormente agreg\u00f3 una entrada <code>@wordpress\/scripts<\/code>de una determinada versi\u00f3n en <code>devDependencies<\/code>. A medida que instale m\u00e1s paquetes, <code>npm<\/code>se actualizar\u00e1 <code>package.json<\/code>con entradas para cada paquete. Todo lo que debemos preocuparnos en este archivo es la <code>scripts<\/code>propiedad, que son para scripts (comandos) que puede usar <code>npm<\/code>para ejecutar. Actualice la propiedad de scripts en esto (puede eliminar la &quot;prueba&quot; predeterminada):<\/p>\n<pre><code>\"scripts\": {\n    \"build\": \"wp-scripts build\",\n    \"start\": \"wp-scripts start\"\n},<\/code><\/pre>\n<p>Este fragmento de c\u00f3digo dice <code>npm<\/code>que tenemos dos scripts que podemos ejecutar en esta carpeta de proyecto; \u00abconstruir&quot; y \u00abcomenzar\u00bb. Ejecutamos un script con el comando <code>npm run &lt;scriptname&gt;<\/code>, en el que <code>npm<\/code>buscar\u00e1 <code>package.json<\/code>y ejecutar\u00e1 el comando definido como su valor. Usamos la herramienta <code>wp-scripts<\/code>que viene en el paquete que instalamos hace un momento para compilar nuestro Javascript una vez (<code>\"build\"<\/code>) o iniciar el modo &quot;ver&quot;\/&quot;escuchar&quot; para compilar cada vez que guardamos los cambios (<code>\"start\"<\/code>).<\/p>\n<p>Esto tambi\u00e9n nos permite usar el paquete web de WordPress y la configuraci\u00f3n de Babel, por lo que no tenemos que hacerlo nosotros mismos.<\/p>\n<p>En la carpeta de su proyecto, cree una subcarpeta llamada <code>src\/<\/code>. Dentro de esta carpeta crea un <code>index.js<\/code>archivo.<\/p>\n<p>Si est\u00e1 de acuerdo con los valores predeterminados del paquete web, \u00a1ya ha terminado! Escriba su c\u00f3digo ES6 y JSX en <code>index.js<\/code>, y d\u00edgale <code>npm<\/code>que los compile ejecutando el comando de compilaci\u00f3n:<\/p>\n<pre><code>npm run build<\/code><\/pre>\n<p>o inicie un proceso de &quot;observaci\u00f3n&quot; en la terminal que escuche los cambios realizados con este comando (utilice CTRL+C para detener el proceso de observaci\u00f3n):<\/p>\n<pre><code>npm run start<\/code><\/pre>\n<p>Ejecutar cualquiera de estos generar\u00e1 una <code>build\/<\/code>subcarpeta en su proyecto directamente con el resultado compilado en formato <code>build\/index.js<\/code>.<\/p>\n<p><strong>\u00a1Eso es todo para la configuraci\u00f3n del entorno m\u00e1s b\u00e1sica! \u00a1Ya est\u00e1 listo para escribir Javascript ES6 para Gutenberg!<\/strong><\/p>\n<p>Si desea cambiar la ubicaci\u00f3n y los nombres de archivo de sus archivos fuente o de salida, siga leyendo.<\/p>\n<h3>Configuraci\u00f3n de rutas y nombres de archivos de origen y salida<\/h3>\n<p>Si usted, como yo, no est\u00e1 satisfecho con el nombre de archivo y la estructura predeterminados, especialmente para los archivos de salida, debe considerar la configuraci\u00f3n del paquete web. Normalmente, por ejemplo, si estuviera desarrollando para React fuera de WordPress, necesitar\u00eda configurar una configuraci\u00f3n de paquete web completo con el complemento Babel. Afortunadamente, WordPress se encarga de esto por nosotros y nos permite extender la configuraci\u00f3n del propio paquete web de WordPress y ajustar solo las partes que queremos cambiar.<\/p>\n<p>En la carpeta de su proyecto (la misma carpeta que <code>package.json<\/code>) cree un archivo llamado <code>webpack.config.js<\/code>y \u00e1bralo en su editor. Escriba lo siguiente en este archivo:<\/p>\n<pre><code>const defaultConfig = require(\"@wordpress\/scripts\/config\/webpack.config\");\nconst path = require('path');\nmodule.exports = {\n    ...defaultConfig,\n    entry: {\n        'block-mynamespace-myblock': '.\/src\/block-mynamespace-myblock.js'\n    },\n    output: {\n        path: path.join(__dirname, '..\/assets\/js\/gutenberg'),\n        filename: '[name].js'\n    }\n}<\/code><\/pre>\n<p>Lo primero que hacemos es obtener <code>@wordpress\/scripts<\/code>la configuraci\u00f3n del paquete web en la variable <code>defaultConfig<\/code>. Dentro de la configuraci\u00f3n del paquete web <code>module.exports<\/code>, lo primero que hacemos es aplicar todo <code>defaultConfig<\/code>utilizando el operador de propagaci\u00f3n (<code>...<\/code>). Estas dos partes se aseguran de que ampliemos la configuraci\u00f3n del paquete web de WordPress al incluir todo lo que contiene. Despu\u00e9s del operador de propagaci\u00f3n podemos ajustar o agregar cualquier propiedad que deseemos cambiar; en nuestro caso, la ubicaci\u00f3n de origen y la ubicaci\u00f3n de salida.<\/p>\n<p>La <code>entry<\/code>propiedad define los archivos de origen, que es por defecto <code>.\/src\/index.js<\/code>. Cada entrada en <code>entry<\/code>la propiedad es un par clave+valor que el paquete web compilar\u00e1 (y observar\u00e1). En el ejemplo anterior, he definido &#8216; <code>block-mynamespace-myblock<\/code>&#8216; ubicado en <code>src\/block-mynamespace-myblock.js<\/code>como un punto de entrada. Puede agregar tantos pares clave+valor aqu\u00ed para cada archivo fuente que desee compilar.<\/p>\n<p>La <code>output<\/code>propiedad decide la ubicaci\u00f3n de los archivos compilados. En <code>path<\/code>usted define la carpeta de destino para todos los archivos compilados. Estoy usando un asistente de ruta para poder navegar por los directorios correctamente en mi configuraci\u00f3n. En el ejemplo anterior, le digo a webpack que todos los archivos compilados deber\u00edan terminar en mi <code>theme-folder\/assets\/js\/gutenberg\/<\/code>carpeta. Lo importante es usar <code>..\/<\/code>para desplazarse hacia arriba en el \u00e1rbol de directorios, fuera de la carpeta del proyecto y en otra carpeta donde quiero que est\u00e9n todos los archivos Javascript de mi tema. Ajuste la ruta para que se ajuste a la estructura de su proyecto.<\/p>\n<p>En segundo lugar, le digo a webpack que todos los nombres de archivo deben nombrarse como sus <code>entry<\/code>nombres de clave correspondientes. Esta configuraci\u00f3n de paquete web compilar\u00e1 mi <code>theme-folder\/gutenberg-dev\/src\/block-mynamespace-myblock.js<\/code>archivo <code>theme-folder\/assets\/js\/gutenberg\/block-mynamespace-myblock.js<\/code>. Si tuviera que agregar otro archivo fuente como par clave+valor en <code>entry<\/code>, se compilar\u00eda en la misma carpeta con la clave como nombre de archivo.<\/p>\n<p>Realice los ajustes deseados en su <code>webpack.config.js<\/code>archivo y gu\u00e1rdelo. Vuelva a ejecutar cualquiera de los <code>npm<\/code>comandos de compilaci\u00f3n para generar archivos en sus nuevas ubicaciones.<\/p>\n<p><strong>\u00a1Eso es todo! Ahora ha ampliado la configuraci\u00f3n del paquete web de WordPress y ahora controla d\u00f3nde deben ir su fuente y sus archivos de salida.<\/strong><\/p>\n<p>Sin embargo, quiero incluir un \u00faltimo consejo en esta gu\u00eda. La configuraci\u00f3n predeterminada de WordPress para Babel podr\u00eda carecer de ciertos complementos de Babel para ciertas caracter\u00edsticas nuevas en ESNext. Por ejemplo, con el valor predeterminado anterior y los valores predeterminados de WordPress, no podr\u00e1 usar funciones de flecha en su c\u00f3digo. Si esto te importa, sigue leyendo.<\/p>\n<h3>Agregue soporte para las sintaxis ESNext m\u00e1s nuevas con Babel<\/h3>\n<p>Al momento de escribir esto, la configuraci\u00f3n predeterminada de Babel de WordPress no tiene soporte para &quot;sintaxis experimentales&quot;, que incluye, por ejemplo, funciones de flecha. Para agregar soporte para esto, debe proporcionar su archivo de configuraci\u00f3n de Babel, y hasta el momento no he encontrado una manera de extender la configuraci\u00f3n de Babel de WordPress como lo hicimos con la configuraci\u00f3n del paquete web anterior. Por lo tanto, debemos redefinir los ajustes preestablecidos de Babel y agregar el complemento de &quot;sintaxis experimentales&quot;. Pero no te preocupes, es un archivo muy peque\u00f1o.<\/p>\n<p>El primer paso es instalar algunos paquetes que necesitamos para los ajustes preestablecidos de Babel; necesitamos instalar los mismos definidos en la configuraci\u00f3n de Babel de WordPress. Ejecute este comando para instalar <code>@babel\/preset-env<\/code>y <code>@babel\/preset-react<\/code>, as\u00ed como el paquete que nos interesa; <code>@babel\/plugin-proposal-class-properties<\/code>:<\/p>\n<pre><code>npm install --save-dev @babel\/preset-env @babel\/preset-react @babel\/plugin-proposal-class-properties<\/code><\/pre>\n<p>El segundo paso es agregar el archivo de configuraci\u00f3n de Babel. En la carpeta de su proyecto, cree un archivo llamado <code>.babelrc<\/code>(sin extensi\u00f3n de archivo).<\/p>\n<p>Nota para Windows: si est\u00e1 sentado en una m\u00e1quina con Windows, no puede crear archivos sin extensiones de archivo. Para evitar esto, puede crear este archivo usando terminal\/S\u00edmbolo del sistema. Ejecute este comando:<\/p>\n<pre><code>echo hi &gt; .babelrc<\/code><\/pre>\n<p>Este comando generar\u00e1 &quot;hola&quot; en el archivo <code>.babelrc<\/code>de la carpeta actual. Ahora puede abrir este archivo en su editor, eliminar el &quot;hola&quot; y agregar el contenido real a continuaci\u00f3n.<\/p>\n<p>Deber\u00eda <code>.babelrc<\/code>verse algo como esto:<\/p>\n<pre><code>{\n    \"presets\": [\"@babel\/preset-env\", \"@babel\/preset-react\"],\n    \"plugins\": [\n        [\n            \"@babel\/plugin-proposal-class-properties\"\n        ]\n    ]\n}<\/code><\/pre>\n<p>Definimos los mismos ajustes preestablecidos que normalmente har\u00eda en un proyecto de React, y lo mismo que hace WordPress. Lo que estamos agregando es la <code>plugins<\/code>propiedad. Dentro de la matriz de <code>plugins<\/code>a\u00f1adimos el <code>@babel\/plugin-proposal-class-properties<\/code>complemento de Babel necesario para las &quot;sintaxis experimentales&quot;, como las funciones de flecha.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Tenga en cuenta que WordPress puede cambiar su configuraci\u00f3n en cualquier momento, esto es especialmente probable porque Gutenberg es bastante nuevo. Debido a que ampliamos la configuraci\u00f3n de WordPress, es posible que en alg\u00fan momento necesitemos actualizar nuestra configuraci\u00f3n nuevamente para satisfacer nuestras necesidades. Quiz\u00e1s WordPress decida incluir soporte para sintaxis experimentales para que no tengamos que hacer toda la configuraci\u00f3n de Babel.<\/p>\n<p>Esta no es de ninguna manera una gu\u00eda exhaustiva para configurar Webpack y Babel, sino el resultado de una gran cantidad de experimentos y desciframientos. Espero que esto le haya ayudado a aprender a configurar su propio entorno de desarrollo de Gutenberg, y lo haya hecho lo suficientemente f\u00e1cil para que no sea un obst\u00e1culo tan grande para comenzar a aprender ES6, ESNext, JSX y todas esas cosas buenas beneficiosas para desarrollar para Gutenberg!<\/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 es una gu\u00eda completa sobre c\u00f3mo configurar npm, webpack y babel para escribir c\u00f3digo para Gutenberg con sintaxis ES6, ESNext y JSX.<\/p>\n","protected":false},"author":1,"featured_media":151834,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[810,831,935,935,914,1110,914,810,831,840,840,861,861],"tags":[1172],"class_list":["post-233829","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-complementos","category-guia-para-principiantes","category-gutenberg-2","category-otro","category-n-a","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233829","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=233829"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233829\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/151834"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}