{"id":230820,"date":"2022-12-15T14:56:00","date_gmt":"2022-12-15T11:56:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230820"},"modified":"2022-12-15T14:56:28","modified_gmt":"2022-12-15T11:56:28","slug":"widgets-de-wordpress-refactorizacion-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/widgets-de-wordpress-refactorizacion-parte-1\/","title":{"rendered":"Widgets de WordPress: Refactorizaci\u00f3n, Parte 1"},"content":{"rendered":"\n<p><strong><a href=\"https:\/\/wordpress.mediadoma.com\/es\/widgets-de-wordpress-comenzando-con-los-estandares\/\" title=\"La \u00faltima publicaci\u00f3n\">La \u00faltima publicaci\u00f3n<\/a><\/strong> inclu\u00eda mucha informaci\u00f3n sobre c\u00f3mo configurar herramientas de calidad de c\u00f3digo en su <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/wordpress-development-environment\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">entorno de desarrollo de WordPress<\/a><\/strong>, pero son necesarias si vamos a realizar muchas refactorizaciones.<\/p>\n<blockquote>\n<p>Pero como mencion\u00e9 al comienzo de esta publicaci\u00f3n, colocar herramientas de calidad de c\u00f3digo primero nos brinda una base que podemos usar a medida que refactorizamos el modelo (lo que claramente debemos hacer dada la cantidad de rojo que muestra GrumPHP).<\/p>\n<\/blockquote>\n<p>Honestamente, los veo necesarios si va a realizar alg\u00fan tipo de desarrollo, de ah\u00ed la necesidad de mostrar c\u00f3mo configurarlos.<\/p>\n<p>De todos modos, la publicaci\u00f3n anterior muestra cu\u00e1nto trabajo nos hemos ahorrado, \u00bfverdad?<\/p>\n<p>Ahora vamos a comenzar con la refactorizaci\u00f3n de <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Widget Boilerplate<\/a><\/strong>.<\/p>\n<p>Esto no solo mejorar\u00e1 la calidad del c\u00f3digo, sino que tambi\u00e9n nos guiar\u00e1 a trav\u00e9s de algunos principios orientados a objetos que podemos aplicar al crear nuestros widgets y que podemos aplicar en futuros esfuerzos de desarrollo de WordPress.<\/p>\n<h2>El modelo de widget de WordPress: refactorizaci\u00f3n, parte 1<\/h2>\n<p>Quiz\u00e1s lo m\u00e1s emocionante para m\u00ed es llevar este repositorio a los est\u00e1ndares modernos. Si observa la <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">rama maestra en GitHub<\/a><\/strong> en el momento de esta publicaci\u00f3n (o el historial del repositorio m\u00e1s adelante), ver\u00e1 que tiene seis a\u00f1os.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d06f9bc.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-161542-61e724d06f9bc.png\" alt=\"Widgets de WordPress: Refactorizaci\u00f3n, Parte 1\"><\/a><\/p>\n<p>Esta cosa tiene seis a\u00f1os (en el momento de esta publicaci\u00f3n).<\/p>\n<p>Eso es mucho tiempo en los a\u00f1os de Internet, \u00bfno?<\/p>\n<p>De todos modos, en nuestros esfuerzos de refactorizaci\u00f3n, vamos a hacer algunas cosas:<\/p>\n<ul>\n<li>crear una rama a partir de la cual trabajar antes de fusionarla nuevamente con la rama maestra,<\/li>\n<li>implementar una forma m\u00e1s cohesiva de organizar archivos,<\/li>\n<li>actualizar los est\u00e1ndares de codificaci\u00f3n para seguir lo que est\u00e1 m\u00e1s en l\u00ednea con PSR,<\/li>\n<li>y m\u00e1s.<\/li>\n<\/ul>\n<p>Expongo esto ahora porque es probable que no lleguemos a todo en esta publicaci\u00f3n, pero cubriremos mucho terreno. As\u00ed que dicho esto, comencemos.<\/p>\n<h3>1 Creaci\u00f3n de una rama de desarrollo<\/h3>\n<p>Suponiendo que tiene una copia del repositorio en su m\u00e1quina local, que deber\u00eda tener despu\u00e9s de la \u00faltima publicaci\u00f3n, lo primero que debemos hacer es crear una rama desde la cual hacer nuestro trabajo.<\/p>\n<p>Es una buena pr\u00e1ctica no trabajar en la rama principal. En su lugar, el maestro siempre debe usarse para implementar la \u00faltima versi\u00f3n estable del c\u00f3digo.<\/p>\n<p>Para ello, introduce el siguiente comando en tu terminal:<\/p>\n<pre><code>$ git checkout -b develop<\/code><\/pre>\n<p>Esto crear\u00e1 una nueva sucursal local. Todav\u00eda no se ha enviado a GitHub o a su repositorio remoto (donde sea que lo guarde).<\/p>\n<p>A continuaci\u00f3n, ingrese el siguiente comando:<\/p>\n<pre><code>$ git push --set-upstream origin develop<\/code><\/pre>\n<p>Esto impulsar\u00e1 la rama de desarrollo hasta el repositorio remoto. Una vez hecho esto, deber\u00eda poder ver todos los cambios que implementamos en la \u00faltima publicaci\u00f3n en su repositorio remoto.<\/p>\n<p>Si est\u00e1 utilizando GitHub, deber\u00eda verse as\u00ed:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d38c4f4.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-161542-61e724d38c4f4.png\" alt=\"Widgets de WordPress: Refactorizaci\u00f3n, Parte 1\"><\/a><\/p>\n<p>Si est\u00e1 utilizando otro servicio, a\u00fan deber\u00eda verse similar. Es decir, la estructura del directorio debe ser la misma, pero la forma en que se ve en el navegador variar\u00e1.<\/p>\n<h4>Una nota sobre la rama<\/h4>\n<p>Recuerde, el prop\u00f3sito de esta sucursal es que hagamos todo nuestro trabajo. De esta manera, no estamos interfiriendo con la rama maestra de la que mucha gente sacar\u00e1.<\/p>\n<p>Para ser claros, tal vez nadie sacar\u00e1 provecho de esto. Tal vez lo hagan. De todos modos, las pr\u00e1cticas que se presentan aqu\u00ed est\u00e1n destinadas a mostrar c\u00f3mo ejecutar un proyecto utilizando herramientas de control de c\u00f3digo fuente y calidad de c\u00f3digo para que pueda crear mejores proyectos para usted, su empresa y m\u00e1s.<\/p>\n<h3>2 Reorganizaci\u00f3n de archivos<\/h3>\n<p>Lo primero que debemos hacer es reorganizar los archivos, para que imiten una estructura m\u00e1s moderna. Har\u00e9 todo lo posible para justificar las decisiones que estoy tomando para el proyecto mientras hacemos esto; sin embargo, si\u00e9ntase libre de tomarse libertades con la forma en que desea hacerlo.<\/p>\n<p>Las decisiones que tomo en \u00faltima instancia van a afectar el Boilerplate principal. Lo que decida hacer afectar\u00e1 c\u00f3mo puede usarlo en su trabajo diario o c\u00f3mo opta por seguir adelante con el proyecto en su conjunto.<\/p>\n<h3>Actualizaci\u00f3n de directorios<\/h3>\n<p>Una de las cosas que trato de hacer es desglosar mis directorios para que sean lo m\u00e1s claros posible. Esto significa que trato de hacer lo siguiente:<\/p>\n<ul>\n<li>crear un directorio de <strong>activos<\/strong> para JavaScript y hojas de estilo,<\/li>\n<li>crear un directorio <strong>src<\/strong> para todos los archivos PHP,<\/li>\n<li>crear un directorio de <strong>idioma<\/strong> para los archivos de internacionalizaci\u00f3n,<\/li>\n<li>mantenga todos los dem\u00e1s archivos en la ra\u00edz del repositorio, de modo que sea f\u00e1cil para otros seguir el archivo README proporcionado.<\/li>\n<\/ul>\n<p>Para hacer esto, primero voy a quitar y mover algunas cosas. He tratado de organizar esto en un orden particular:<\/p>\n<ol>\n<li>Voy a eliminar el archivo <strong>README.txt<\/strong>. Este archivo se usa como una plantilla L\u00c9AME est\u00e1ndar si va a enviar c\u00f3digo al Repositorio de complementos de WordPress, pero no es necesario para lo que quiero para Boilerplate.<\/li>\n<li>Cambiar\u00e9 el nombre de <strong>plugin.php<\/strong> a <strong>Plugin<em><\/em><\/strong> .php<em><\/em> para seguir las convenciones de PSR.<\/li>\n<li>Tambi\u00e9n cambiar\u00e9 el nombre de <strong>lang<\/strong> a <strong>idiomas.<\/strong><\/li>\n<li>Voy a crear un directorio de <strong>activos<\/strong> y mover y luego mover los directorios <strong>css<\/strong> y <strong>js<\/strong> a ese directorio. Crear\u00e9 un subdirectorio <strong>dev<\/strong> en cada uno de estos directorios donde podemos trabajar en Sass y archivos JavaScript no minimizados (ambos aparecer\u00e1n m\u00e1s adelante en la serie).<\/li>\n<li>Despu\u00e9s de eso, crear\u00e9 un directorio <strong>src<\/strong> y mover\u00e9 la hoja de estilos de <strong>vistas<\/strong> a ese directorio.<\/li>\n<li>Tambi\u00e9n cambiar\u00e9 el nombre de las <strong>vistas<\/strong> a <strong>Vistas<\/strong> y tambi\u00e9n pondr\u00e9 en may\u00fasculas los archivos que contiene.<\/li>\n<li>Finalmente, mover\u00e9 todo a la ra\u00edz del directorio. Esto significa <strong>que widget-boilerplate<\/strong> desaparecer\u00e1 y todos los archivos residir\u00e1n en el directorio ra\u00edz del repositorio.<\/li>\n<\/ol>\n<p>Estos son muchos pasos, pero son peque\u00f1os. Me gusta exponerlos primero para que quede claro lo que suceder\u00e1 en el resto de esta secci\u00f3n.<\/p>\n<h4>Eliminar el L\u00c9AME<\/h4>\n<p>Para hacer esto, simplemente ingrese el siguiente comando en su terminal desde la ra\u00edz del directorio <strong>widget-boilerplate<\/strong> :<\/p>\n<pre><code>$ rm readme.txt<\/code><\/pre>\n<p>Esto eliminar\u00e1 el archivo. Si ingresas el siguiente comando en tu terminal:<\/p>\n<pre><code>$ git status<\/code><\/pre>\n<p>Deber\u00eda ver algo como esto:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724d77468a.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-161542-61e724d77468a.png\" alt=\"Widgets de WordPress: Refactorizaci\u00f3n, Parte 1\"><\/a><\/p>\n<p>Soy fan\u00e1tico de asegurarme de que los diversos cambios que se implementan sean claros y concisos para que sea m\u00e1s f\u00e1cil revertirlos uno a la vez. As\u00ed que sigamos adelante y compromet\u00e1monos e impulsemos este cambio.<\/p>\n<p>Introduzca la siguiente:<\/p>\n<pre><code>$ git rm README.txt\n$ git add. $ git commit -n -m \"Removing the original README.txt template.\"\n$ git push<\/code><\/pre>\n<p>Esto le indicar\u00e1 a Git que elimine el archivo, agregue el cambio \u00fanico al conjunto de cambios, confirme sin ejecutar ninguna herramienta de calidad de c\u00f3digo (porque no necesitamos hacer eso en este momento; de lo contrario, fallar\u00e1) y lo impulsar\u00e1 a la rama de <strong>desarrollo<\/strong> del repositorio remoto .<\/p>\n<p>Ahora que lo hemos hecho, avancemos y cambiemos el nombre de algunos archivos.<\/p>\n<h4>Cambio de nombre de archivos<\/h4>\n<p>Mientras estamos en eso, no solo vamos a cambiar el nombre del archivo .php<em><\/em> del <strong>complemento<em><\/em><\/strong>, sino tambi\u00e9n a los otros archivos PHP. Estos son archivos que se pueden agrupar l\u00f3gicamente en el mismo conjunto de cambios, por lo que tiene sentido seguir adelante y hacerlo.<\/p>\n<p>Entonces, desde su terminal, ingrese los siguientes comandos:<\/p>\n<pre><code>$ mv plugin.php Plugin.php\n$ mv views\/admin.php views\/Admin.php\n$ mv views\/widget.php views\/Widget.php<\/code><\/pre>\n<p>Al hacer esto, a\u00fan no hemos realizado ning\u00fan cambio en los archivos, por lo que no hay nada que confirmar. Sigamos adelante con el cambio de nombre de los directorios.<\/p>\n<h4>Crear Directorios; Renombrar directorios<\/h4>\n<p>Tal como hicimos con los archivos, sigamos adelante y creemos un nuevo directorio de <strong>activos<\/strong>. En tu terminal, ingresa el siguiente comando:<\/p>\n<pre><code>$ mkdir assets<\/code><\/pre>\n<p>A continuaci\u00f3n, queremos mover los directorios <strong>css<\/strong> y <strong>js<\/strong> a ese directorio, as\u00ed que tambi\u00e9n ingrese lo siguiente en la terminal:<\/p>\n<pre><code>$ mv css assets\n$ mv js assets<\/code><\/pre>\n<p>Y cambiemos el nombre del directorio <strong>lang a<\/strong> <strong>Idiomas<\/strong> ingresando el siguiente comando:<\/p>\n<pre><code>$ mv lang Languages<\/code><\/pre>\n<p>Finalmente, cambiemos el nombre de <strong>vista<\/strong> a <strong>Vistas:<\/strong><\/p>\n<pre><code>$ mv views Views<\/code><\/pre>\n<p>En este punto, hemos hecho todo lo posible con los archivos que se encuentran actualmente en el directorio principal. Sin embargo, todav\u00eda tenemos que preparar subdirectorios para nuestros activos preprocesados.<\/p>\n<p>Sin embargo, antes de hacer eso, es un buen h\u00e1bito ejecutar una verificaci\u00f3n r\u00e1pida <strong>del estado de git<\/strong> para ver qu\u00e9 se puede agregar a un conjunto de cambios. Si su repositorio es como el m\u00edo, es probable que vea algo como lo siguiente:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-161542-61e724da758f2.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-161542-61e724da758f2.png\" alt=\"Widgets de WordPress: Refactorizaci\u00f3n, Parte 1\"><\/a><\/p>\n<p>En este caso, creo que est\u00e1 bien agregar todo en un solo conjunto de cambios con un comentario que indique que hemos cambiado el nombre y movido los archivos.<\/p>\n<p>Puede diferir y si es as\u00ed, est\u00e1 completamente bien. Sus comandos diferir\u00e1n un poco de los m\u00edos, pero esto es lo que tengo para mi compromiso:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Creating new directories; Renaming files.\"\n$ git push<\/code><\/pre>\n<p>Ahora, pasemos a los subdirectorios de nuestros archivos preprocesados.<\/p>\n<h4>Crear subdirectorios<\/h4>\n<p>En el directorio CSS, cree un subdirectorio llamado <strong>dev<\/strong> y cree un archivo vac\u00edo llamado <strong>admin.scss<\/strong> y <strong>widget.scss<\/strong>, ya que trabajaremos con estos archivos m\u00e1s adelante en la serie.<\/p>\n<p>A continuaci\u00f3n, agregue un directorio <strong>dev<\/strong> al directorio de JavaScript y agregue el archivo <strong>admin.js vac\u00edo y los archivos<\/strong> <strong>widget.js<\/strong> a estos archivos. Si se siente tan inclinado, puede mover los archivos preexistentes a los <strong>directorios<\/strong> de desarrollo, ya que estos son los archivos que usaremos como base para nuestros archivos de desarrollo.<\/p>\n<p>Ese es un paso opcional; sin embargo, segu\u00ed adelante y lo hice porque as\u00ed es como prefiero trabajar. Aqu\u00ed est\u00e1 el conjunto de comandos que he ejecutado.<\/p>\n<p>Desde el directorio <strong>css<\/strong> \u2026<\/p>\n<pre><code>$ mkdir dev\n$ mv admin.css admin.scss &amp;&amp; mv widget.css widget.scss\n$ mv *.scss dev<\/code><\/pre>\n<p>Arriba, cre\u00e9 el <strong>directorio<\/strong> de desarrollo para mis hojas de estilo, les cambi\u00e9 el nombre a archivos Sass y los mov\u00ed al <strong>directorio<\/strong> de desarrollo.<\/p>\n<p>Antes de continuar, es un buen momento para hacer una verificaci\u00f3n de <strong>estado de git<\/strong> y realizar cambios relacionados con las hojas de estilo:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Renaming and moving stylesheets into a dev directory.\"\n$ git push<\/code><\/pre>\n<p>Ahora, desde el directorio <strong>js<\/strong> &#8230;<\/p>\n<pre><code>$ mkdir dev\n$ mv *.js dev<\/code><\/pre>\n<p>Como no tenemos que cambiar el tipo de archivo de los archivos asociados, simplemente podemos moverlos al nuevo directorio.<\/p>\n<p>Finalmente, hagamos lo mismo y veamos si hay alg\u00fan cambio que podamos impulsar a trav\u00e9s de una verificaci\u00f3n r\u00e1pida de <strong>estado de git<\/strong> (que deber\u00eda haber). Aqu\u00ed hay una lista de los comandos que ejecut\u00e9 para confirmar y enviar mis cambios:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Adding a JavaScript dev directory and moving the development files.\"\n$ git push<\/code><\/pre>\n<p>Ya casi hemos terminado. Todo lo que queda por hacer es mover ciertos directorios a la ra\u00edz del repositorio y cambiar el nombre del directorio principal a <strong>src<\/strong>. As\u00ed que hag\u00e1moslo ahora.<\/p>\n<h3>Mover directorios a la ra\u00edz<\/h3>\n<p>Esencialmente, necesitamos mover todo excepto el archivo del complemento y el directorio <strong>Views<\/strong> fuera del directorio <strong>widget-boilerplate<\/strong>, y debemos cambiar el nombre <strong>de widget-boilerplate<\/strong> a <strong>src<\/strong>.<\/p>\n<p>Suena simple, \u00bfverdad? Es bastante sencillo. Desde dentro del directorio <strong>widget-boilerplate<\/strong> :<\/p>\n<pre><code>$ mv assets .. &amp;&amp; mv languages ..\n$ cd ..\n$ mv widget-boilerplate src<\/code><\/pre>\n<p>Luego enviar\u00e9 el cambio a GitHub usando lo siguiente:<\/p>\n<pre><code>$ git add. $ git commit -n -m \"Reorganizing the directory structure.\"\n$ git push<\/code><\/pre>\n<p>Ahora tenemos configurada una estructura de directorios mucho m\u00e1s moderna. Puedes verlo aqu\u00ed <strong><a href=\"https:\/\/github.com\/tommcfarlin\/WordPress-Widget-Boilerplate\/tree\/develop\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">en mi rama de desarrollo<\/a><\/strong>.<\/p>\n<h3>Una palabra sobre programaci\u00f3n orientada a objetos<\/h3>\n<p>Y ahora que tenemos todo esto en su lugar, podemos comenzar a escribir c\u00f3digo. Pero no se equivoque: una parte de la programaci\u00f3n orientada a objetos tambi\u00e9n es an\u00e1lisis orientado a objetos y dise\u00f1o orientado a objetos.<\/p>\n<p>Lo que hemos hecho en esta publicaci\u00f3n es esencialmente aplicar un dise\u00f1o arquitect\u00f3nico orientado a objetos basado en el an\u00e1lisis de c\u00f3mo encaja el complemento.<\/p>\n<p>Sin embargo, la siguiente parte es actualizar el c\u00f3digo para eliminar todo el rojo que hemos visto al olfatear nuestro c\u00f3digo.<\/p>\n<h2>En la pr\u00f3xima publicaci\u00f3n<\/h2>\n<p>El objetivo principal de la pr\u00f3xima publicaci\u00f3n es continuar con la actualizaci\u00f3n de los est\u00e1ndares de codificaci\u00f3n para que hayamos resuelto todos los problemas generados por nuestro IDE o mediante las herramientas de calidad del c\u00f3digo que estamos ejecutando en la l\u00ednea de comandos.<\/p>\n<p>Tambi\u00e9n deber\u00edamos tener un repositorio mucho m\u00e1s limpio y organizado, y estar en una posici\u00f3n en la que estemos listos para fusionar nuestro trabajo nuevamente en la rama principal.<\/p>\n<p>Sin embargo, por ahora, aseg\u00farese de tener un buen manejo de todo lo anterior antes de continuar, ya que es necesario comprender el resto del trabajo que tenemos por delante.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esto no solo mejorar\u00e1 la calidad del c\u00f3digo, sino que tambi\u00e9n nos guiar\u00e1 a trav\u00e9s de algunos principios orientados a objetos que podemos aplicar al crear nuestros widgets de WordPress.<\/p>\n","protected":false},"author":1,"featured_media":235111,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716,861],"tags":[1172],"class_list":["post-230820","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230820","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=230820"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230820\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/235111"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=230820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=230820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=230820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}