{"id":11368,"date":"2023-02-01T13:03:52","date_gmt":"2023-02-01T13:03:52","guid":{"rendered":"https:\/\/wcanvas.com\/?post_type=blogs&#038;p=11368"},"modified":"2024-12-23T21:09:16","modified_gmt":"2024-12-23T21:09:16","slug":"mantener-control-versiones-escalable-wordpress","status":"publish","type":"blogs","link":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/","title":{"rendered":"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress?"},"content":{"rendered":"\n<p>En WordPress, el control de versiones es la gesti\u00f3n de los cambios realizados en el c\u00f3digo relacionado con plugins, p\u00e1ginas y otros componentes de tu sitio web.<\/p>\n\n\n\n<p>Mantener un sistema de gesti\u00f3n de control de versiones bien estructurado y ser capaz de seguir el progreso y la evoluci\u00f3n del c\u00f3digo a lo largo del tiempo es una de las principales diferencias entre los expertos en WordPress y los aficionados.<\/p>\n\n\n\n<p>De hecho, en White Canvas creemos que un gran y escalable control de versiones es la piedra angular de nuestra eficiencia. Sin un sistema de control de versiones s\u00f3lido, no podr\u00edamos entregar nuestros proyectos tan confiablemente y consistentemente como lo hacemos.<\/p>\n\n\n\n<p>En este art\u00edculo, vamos a explorar los fundamentos de nuestras metodolog\u00edas de control de versiones y proporcionar algunas buenas pr\u00e1cticas que los desarrolladores de WordPress pueden aprovechar.<\/p>\n\n\n\n<p><strong>Aviso: <\/strong>el resto del art\u00edculo asume que est\u00e1s familiarizado con Git, por lo que no dedicaremos mucho tiempo a profundizar en sus fundamentos. Si quer\u00e9s desarrollar buenas pr\u00e1cticas de control de versiones, Git es el sistema l\u00edder mundial de control de versiones y probablemente la mejor alternativa para que explores dada su amplia difusi\u00f3n.<\/p>\n\n\n\n<p><em>Dado que esta es una gu\u00eda para usar Git, \u201cGit\u201d y \u201csistema de control de versiones\u201d se usar\u00e1n indistintamente.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Los beneficios del control de versiones<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"743\" src=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-II-1-1024x743.jpg\" alt=\"\" class=\"wp-image-1630\" srcset=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-II-1-1024x743.jpg 1024w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-II-1-300x218.jpg 300w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-II-1-768x558.jpg 768w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-II-1-1536x1115.jpg 1536w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-II-1.jpg 1730w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Como recordatorio, estos son los principales beneficios de mantener un s\u00f3lido sistema de gesti\u00f3n de control de versiones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Seguimiento del progreso<\/strong><\/h3>\n\n\n\n<p>Con Git, pod\u00e9s hacer cambios en los archivos mientras reten\u00e9s todo el progreso realizado hasta ese punto en la versi\u00f3n anterior.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Los desarrolladores individuales pueden avanzar en aislamiento sin afectar el trabajo de otros.<\/strong><\/h3>\n\n\n\n<p>Cuando los desarrolladores suben sus commits, otros desarrolladores del equipo tendr\u00e1n acceso a su c\u00f3digo dentro de Git.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Gesti\u00f3n de ramas<\/strong><\/h3>\n\n\n\n<p>Git te permite gestionar copias del c\u00f3digo principal (ramas) para editarlas en aislamiento y luego fusionarlas con el c\u00f3digo principal para incorporar los cambios. Muchos desarrolladores WordPress (como nuestro equipo) utilizan GitFlow, un modelo alternativo de ramas de Git, como una soluci\u00f3n universal de ramificaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Revisi\u00f3n de c\u00f3digo<\/strong><\/h3>\n\n\n\n<p>Revisar el c\u00f3digo es esencial para el aseguramiento de calidad, y Git ofrece integraci\u00f3n con soluciones de revisi\u00f3n de c\u00f3digo. Gerrit es una de las m\u00e1s populares, aplicando est\u00e1ndares y calidad de c\u00f3digo para grandes equipos de manera descentralizada. Algunas soluciones de alojamiento en la nube como GitLab tienen soluciones de revisi\u00f3n de c\u00f3digo integradas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Integraci\u00f3n continua<\/strong><\/h3>\n\n\n\n<p>La integraci\u00f3n continua es la pr\u00e1ctica automatizada de fusionar ramas de caracter\u00edsticas en la rama principal y probarlas de inmediato. Al utilizar CI, los desarrolladores pueden determinar r\u00e1pidamente si los cambios realizados fallaron o tuvieron \u00e9xito y actuar en consecuencia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Los pilares del control de versiones<\/h2>\n\n\n\n<p>Para dominar las estrategias de control de versiones de tu equipo, deb\u00e9s familiarizarte con los fundamentos y aprender buenas pr\u00e1cticas para su implementaci\u00f3n. Para nosotros, los 3 pilares del control de versiones son los repositorios en la nube, las estrategias de ramificaci\u00f3n y las estrategias de CI\/CD.<\/p>\n\n\n\n<p>Vamos a explorar c\u00f3mo optimizar cada uno de ellos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Repositorios en la nube<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"743\" src=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-III-1024x743.jpg\" alt=\"\" class=\"wp-image-1632\" srcset=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-III-1024x743.jpg 1024w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-III-300x218.jpg 300w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-III-768x558.jpg 768w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-III-1536x1115.jpg 1536w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-III.jpg 1730w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Hay varias alternativas de alojamiento en la nube para tu c\u00f3digo WordPress, como GitLab, GitHub y Bitbucket. Adem\u00e1s de albergar versiones de nuestro c\u00f3digo, estos sistemas de alojamiento ofrecen m\u00faltiples funciones adicionales. Para determinar cu\u00e1l es la mejor para tu equipo, deb\u00e9s comparar las caracter\u00edsticas con tus necesidades espec\u00edficas.<\/p>\n\n\n\n<p>Por ejemplo, si tu equipo o tu cliente tienen contratado Jira para la gesti\u00f3n de proyectos, tiene m\u00e1s sentido usar Bitbucket debido a su integraci\u00f3n directa para gestionar problemas, ramas, pull requests, etc. Si tu equipo usa Jira, Bitbucket es pr\u00e1cticamente la opci\u00f3n ideal.<\/p>\n\n\n\n<p>Si la integraci\u00f3n con Jira no es una preocupaci\u00f3n y el proyecto requerir\u00e1 integraciones complicadas de pipelines CI\/CD, GitHub y sus acciones comunitarias pueden ser convenientes para tu equipo. Las acciones comunitarias permiten a tu equipo ahorrar recursos utilizando el trabajo previo probado y comprobado de otros para realizar procesos complejos como la creaci\u00f3n de instancias de AWS y mucho m\u00e1s.<\/p>\n\n\n\n<p>Finalmente, si tu proyecto requiere flexibilidad, integraciones, pipelines, gesti\u00f3n de problemas, proyectos dentro del mismo servidor de control de versiones y, en resumen, la navaja suiza del control de versiones, GitLab es la soluci\u00f3n.<\/p>\n\n\n\n<p>La siguiente tabla desglosa algunos de los beneficios principales de cada plataforma en la nube.<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter\"><table><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Plataformas de Git en la nube<\/strong><\/td><td><strong>Beneficios<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>GitHub<\/strong><\/td><td>\u2022 El repositorio m\u00e1s popular, con una comunidad en auge.<br>\u2022 El historial de commits del equipo es visible.<br>\u2022 Pull requests.<br>\u2022 Seguimiento de problemas.<br>\u2022 Notificaciones por correo electr\u00f3nico para pull requests, fallas de pipelines, menciones, y m\u00e1s.<br>\u2022 APIs ricas con excelente documentaci\u00f3n.<br>\u2022 Plan gratuito para equipos con repositorios privados ilimitados y colaboradores.<br>\u2022 GitHub Actions ofrece varias opciones de automatizaci\u00f3n de flujos de trabajo y herramientas CI\/CD.<br>\u2022 Genial para documentaci\u00f3n y com\u00fanmente usado para colaboraci\u00f3n.<br>\u2022 GitHub puede ser un buen punto de partida para un equipo de desarrolladores eligiendo su repositorio.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>GitLab<\/strong><\/td><td>\u2022 Historial de commits visible.<br>\u2022 Pull requests.<br>\u2022 Seguimiento de problemas.<br>\u2022 Interfaz amigable.<br>\u2022 Notificaciones por correo electr\u00f3nico.<br>\u2022 Pipelines CI\/CD robustos y automatizaci\u00f3n de flujos de trabajo.<br>\u2022 Ideal para equipos t\u00e9cnicos que no planean colaborar fuera de su organizaci\u00f3n.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Bitbucket<\/strong><\/td><td>\u2022 Plan gratuito para repositorios privados, con un l\u00edmite de 5 colaboradores.<br>\u2022 Incluye una REST API para construir aplicaciones de terceros.<br>\u2022 Notificaciones por correo electr\u00f3nico.<br>\u2022 Historial de commits.<br>\u2022 Pull requests.<br>\u2022 Seguimiento de problemas.<br>\u2022 M\u00e1s caracter\u00edsticas orientadas a gerentes y an\u00e1lisis.<br>\u2022 Potencialmente la mejor opci\u00f3n para equipos usando JIRA u otros productos de Atlassian.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Estrategias de ramificaci\u00f3n<\/h3>\n\n\n\n<p>Una vez que hayas elegido una soluci\u00f3n de alojamiento en la nube para Git, deb\u00e9s determinar la estrategia de ramas.<\/p>\n\n\n\n<p>Si ten\u00e9s algo de experiencia con el control de versiones y escuch\u00e1s \u201cestrategia de ramas\u201d, probablemente te venga a la mente la imagen de abajo, que corresponde a una estrategia de ramas que Vincent Driessen cre\u00f3 hace m\u00e1s de 10 a\u00f1os en su publicaci\u00f3n &#8220;<a href=\"https:\/\/nvie.com\/posts\/a-successful-git-branching-model\/\">A successful Git branching model<\/a>&#8220;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"1024\" src=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-IV-995x1024.jpg\" alt=\"\" class=\"wp-image-1633\" srcset=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-IV-995x1024.jpg 995w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-IV-292x300.jpg 292w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-IV-768x790.jpg 768w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-IV-1493x1536.jpg 1493w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-IV.jpg 1606w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\" \/><\/figure>\n\n\n\n<p>Este modelo se ha vuelto extremadamente popular en la \u00faltima d\u00e9cada, al punto que algunos equipos lo consideran el est\u00e1ndar de facto para estrategias de ramas modernas. La realidad es que, para algunos proyectos, su estrategia de ramas puede verse as\u00ed, mientras que para otros, no. Sin embargo, recordemos que esta estrategia no fue construida para soluciones modernas o \u00e1giles.<\/p>\n\n\n\n<p>Git se utiliza principalmente para aplicaciones web, que se entregan continuamente y no se revierten. Los desarrolladores no tienen que soportar m\u00faltiples versiones de sus aplicaciones web, lo cual es contrario a la estrategia ideada por Driessen. Esta estrategia funciona de maravillas para algunos equipos; para otros, no.<\/p>\n\n\n\n<p>Todo esto es para decir: al elegir una estrategia de ramas, deb\u00e9s considerar las necesidades de tu equipo para evitar caer en la trampa de buscar estrategias que sirvan para todo. Pens\u00e1 en las necesidades del equipo en t\u00e9rminos de ramas, estrategias de fusi\u00f3n, pull requests y c\u00f3mo manejar\u00e1s las implementaciones.<\/p>\n\n\n\n<p>Con el tiempo, los miembros del equipo deber\u00e1n emplear una combinaci\u00f3n de teor\u00eda y experiencia para crear la soluci\u00f3n perfecta para el proyecto.<\/p>\n\n\n\n<p>Aqu\u00ed hay 3 buenas pr\u00e1cticas que utilizamos para optimizar nuestra estrategia de ramas.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Mantener solo una rama principal.<\/strong><\/h4>\n\n\n\n<p>Tener m\u00faltiples ramas &#8220;principales&#8221; (DEV, STG, PROD, main) crea problemas de mantenimiento a largo plazo. Eventualmente sufrir\u00e1n desfasajes y conflictos, y ser\u00e1 dif\u00edcil saber qu\u00e9 caracter\u00edsticas son parte de cada rama sin dedicar tiempo y esfuerzo a documentarlas. En resumen, un l\u00edo.<\/p>\n\n\n\n<p>Lo que hacemos es mantener una sola rama principal y m\u00faltiples ramas de caracter\u00edsticas, que contienen una sola tarea o funci\u00f3n cada una.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Minimizar el tiempo que las ramas est\u00e1n activas.<\/strong><\/h4>\n\n\n\n<p>Mantener las ramas vivas por demasiado tiempo tambi\u00e9n causa problemas de mantenimiento. Ramas m\u00e1s peque\u00f1as con fusiones m\u00e1s peque\u00f1as son m\u00e1s f\u00e1ciles de gestionar. Acostumbrate a hacer commits y fusiones frecuentes en lugar de dejar que las ramas crezcan demasiado durante mucho tiempo. Hac\u00e9 progresos at\u00f3micos.<\/p>\n\n\n\n<p>Para nosotros, la mayor\u00eda de las ramas permanecen activas menos de una semana.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Fusionar e implementar desde pull requests.<\/strong><\/h4>\n\n\n\n<p>Siempre fusion\u00e1 desde pull requests, no localmente. De esta manera, todos pueden seguir el origen de la fusi\u00f3n. Lo mismo ocurre con las implementaciones: implement\u00e1 desde pull requests o ramas de caracter\u00edsticas.<\/p>\n\n\n\n<p>Cuando hayas confirmado que todo funciona correctamente, entonces fusion\u00e1. De lo contrario, corr\u00e9s el riesgo de introducir errores en la rama principal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Estrategias de CI\/CD<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"743\" src=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-V-1-1024x743.jpg\" alt=\"\" class=\"wp-image-1634\" srcset=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-V-1-1024x743.jpg 1024w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-V-1-300x218.jpg 300w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-V-1-768x558.jpg 768w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-V-1-1536x1115.jpg 1536w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-V-1.jpg 1730w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Definir c\u00f3mo tu equipo subir\u00e1 su c\u00f3digo a los entornos PROD, STG y DEV es esencial. Lo que hacemos es configurar pipelines de integraci\u00f3n continua y entrega continua (CI\/CD). Podr\u00e1s configurar estos pipelines desde cualquiera de las plataformas en la nube que mencionamos antes.<\/p>\n\n\n\n<p>Estas son 5 de las buenas pr\u00e1cticas que usamos para optimizar nuestros pipelines de CI\/CD:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Usar comandos espec\u00edficos para el pipeline.<\/strong><\/h4>\n\n\n\n<p>La mayor\u00eda de los equipos utilizan dependencias instalables a trav\u00e9s de npm o Yarn. Muchos de ellos emitir\u00e1n <em>npm install<\/em> en el pipeline, ignorando el comando <em>npm ci<\/em> mucho m\u00e1s eficiente. <em>npm ci<\/em> utiliza \u201cpackage-lock.json\u201d para instalar dependencias, lo que lo hace aproximadamente un tercio m\u00e1s r\u00e1pido y no intentar\u00e1 actualizar ninguna dependencia en el proceso.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configurar la cach\u00e9 y los artefactos.<\/strong><\/h4>\n\n\n\n<p>Es una excelente manera de reducir los tiempos de c\u00f3mputo del pipeline y mantener copias en cach\u00e9 de los artefactos que produce cada pipeline.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Siempre que sea posible, implementar mediante Git.<\/strong><\/h4>\n\n\n\n<p>Dar prioridad a la implementaci\u00f3n mediante Git. Pod\u00e9s, por ejemplo, conectarte a trav\u00e9s de SSH al servidor y actualizar la rama. O pod\u00e9s hacer checkout del commit que quieras implementar a trav\u00e9s de Git. A toda costa, evit\u00e1 implementar con los comandos <em>SCP<\/em> o <em>RSYNC<\/em>, ya que carecen de la funcionalidad para informar a los miembros del equipo qu\u00e9 se modific\u00f3 y qu\u00e9 permaneci\u00f3 igual.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Acostumbrarse a <em>rebase<\/em>, <em>revert<\/em> y <em>cherry-pick<\/em>.<\/strong><\/h4>\n\n\n\n<p>Estos son los tres comandos m\u00e1s \u00fatiles para mantener las ramas. Si los us\u00e1s a diario, sin embargo, algo anda mal con la estrategia de CI\/CD del equipo.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Al manejar conflictos de fusi\u00f3n, ser pr\u00e1ctico.<\/strong><\/h4>\n\n\n\n<p>Los conflictos de fusi\u00f3n ocurren, pero c\u00f3mo los manej\u00e1s es crucial para la eficiencia del pipeline de CI\/CD. Como regla general, eleg\u00ed c\u00f3digo ya productivo sobre c\u00f3digo en desarrollo y c\u00f3digo m\u00e1s antiguo sobre c\u00f3digo m\u00e1s nuevo. Siempre pod\u00e9s volver atr\u00e1s y resolver errores, pero romper algo que ya est\u00e1 funcionando causa todo tipo de problemas que quer\u00e9s evitar.<\/p>\n\n\n\n<p>Adem\u00e1s, recomendamos automatizar las dependencias del pipeline y las compilaciones de recursos para la optimizaci\u00f3n de pull requests y requerir una confirmaci\u00f3n manual para implementar en los diversos entornos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Git orientado a WordPress<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"743\" src=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-VI-1-1024x743.jpg\" alt=\"\" class=\"wp-image-1635\" srcset=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-VI-1-1024x743.jpg 1024w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-VI-1-300x218.jpg 300w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-VI-1-768x558.jpg 768w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-VI-1-1536x1115.jpg 1536w, https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/9-reasons-to-use-managed-WordPress-hosting-VI-1.jpg 1730w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Para WordPress en particular, podemos seguir dos caminos principales: versionar toda la instalaci\u00f3n de WordPress y versionar solo el tema. Vamos a explorar ambos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versionar toda la instalaci\u00f3n de WordPress<\/h3>\n\n\n\n<p>Con esta estrategia, usar\u00e1s un archivo <strong>.gitignore <\/strong> muy permisivo para versionar toda la instalaci\u00f3n de WordPress, como plugins, archivos centrales (wp-includes, wp-admin, etc.), y el resto de los archivos del proyecto necesarios, mientras ignor\u00e1s todo lo dem\u00e1s.<\/p>\n\n\n\n<p>Ignorar\u00e1s directorios innecesarios, como <strong>uploads<\/strong> y otras carpetas que no deber\u00edan incluirse en la versi\u00f3n, como <strong>node_modules<\/strong> o la carpeta <strong>vendor<\/strong> generada por PHP Composer.<\/p>\n\n\n\n<p>Para una idea de c\u00f3mo estructurar este archivo, us\u00e1 este archivo <strong>.gitignore<\/strong> recomendado por WPEngine.<\/p>\n\n\n\n<p>Este m\u00e9todo no requiere mucha explicaci\u00f3n. Es el m\u00e9todo m\u00e1s utilizado y solo requiere que ignores <strong>uploads<\/strong> y las dependencias de desarrollo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versionar solo el tema<\/h3>\n\n\n\n<p>La segunda estrategia implica versionar solo los archivos esenciales del tema mientras se ignora la instalaci\u00f3n general de WordPress. Adem\u00e1s de los archivos centrales, ignoraremos directorios como <strong>wp-content\/uploads<\/strong>, <strong>node_modules<\/strong>, y <strong>vendor<\/strong>.<\/p>\n\n\n\n<p>Para ideas sobre estructuras, revis\u00e1 este <a href=\"https:\/\/wpengine.com\/wp-content\/uploads\/2020\/02\/recommended-gitignore-no-wp.txt\" target=\"_blank\" rel=\"noreferrer noopener\">archivo recomendado<\/a>, tambi\u00e9n por WPEngine.<\/p>\n\n\n\n<p>Si plane\u00e1s usar esta estrategia, probablemente ya hayas versionado tu proyecto. En este punto, necesit\u00e1s comenzar a ignorar archivos y directorios espec\u00edficos.<\/p>\n\n\n\n<p>Primero, cre\u00e1 tu archivo <strong>.gitignore <\/strong> o modific\u00e1 el existente seg\u00fan tus necesidades. Luego, emit\u00ed este comando en el directorio ra\u00edz de tu proyecto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markdown\" class=\"language-markdown\">$ git rm -rf --cached<\/code><\/pre>\n\n\n\n<p>Esto dejar\u00e1 una copia local lista para un commit. Y eso es todo.<\/p>\n\n\n\n<p>Para la pr\u00f3xima versi\u00f3n, necesitamos comenzar a honrar las limitaciones de nuestro nuevo <strong>.gitignore<\/strong>. A partir de ahora, solo vamos a commitear estos cambios, dej\u00e1ndonos con un commit en el que solo hay un archivo modificado (<strong>.gitignore<\/strong>) y varios archivos eliminados (los que ignoramos).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markdown\" class=\"language-markdown\">$ git add .; git commit -m \u201cUpdated .gitignore\u201d;<\/code><\/pre>\n\n\n\n<p>Para esta estrategia, record\u00e1 tener los archivos centrales de WordPress en su lugar antes de aplicar el tema que guardamos. Pod\u00e9s descargar el archivo central de WordPress <a href=\"https:\/\/wordpress.org\/download.\/\" target=\"_blank\" rel=\"noreferrer noopener\">aqu\u00ed<\/a> y descargar por separado tu repositorio.&nbsp;<\/p>\n\n\n\n<p>Ahora cre\u00e1 un enlace simb\u00f3lico que conduzca desde el directorio donde estar\u00e1n los archivos centrales hasta el directorio <strong>wp-content<\/strong> dentro de tu repositorio, reemplazando el <strong>wp-content<\/strong> original de WordPress.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">En resumen<\/h2>\n\n\n\n<p>Git es la soluci\u00f3n l\u00edder mundial en control de versiones, y todos los desarrolladores de WordPress deber\u00edan familiarizarse con \u00e9l. Combinado con una excelente soluci\u00f3n de alojamiento de c\u00f3digo remota, conforman el d\u00fao perfecto que tu equipo necesita para maximizar la eficiencia y hacer los proyectos.<\/p>\n\n\n\n<p>La clave para usar Git en combinaci\u00f3n con alojamiento en la nube es entender su funcionamiento interno y tener un plan s\u00f3lido. Usarlo sin pautas adecuadas sobre qui\u00e9n puede commitear o sin estrategias claras de ramificaci\u00f3n o gesti\u00f3n de CI\/CD es una receta para el desastre.<\/p>\n\n\n\n<p>Con esta gu\u00eda, esperamos haber proporcionado una buena introducci\u00f3n al proceso continuo de desarrollar un excelente sistema de gesti\u00f3n de control de versiones que apoye las necesidades del equipo y garantice que el proyecto siempre est\u00e9 avanzando.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En WordPress, el control de versiones es la gesti\u00f3n de los cambios realizados en el c\u00f3digo relacionado con plugins, p\u00e1ginas y otros componentes de tu sitio web. Mantener un sistema de gesti\u00f3n de control de versiones bien estructurado y ser capaz de seguir el progreso y la evoluci\u00f3n del c\u00f3digo a lo largo del tiempo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1636,"template":"","blog-categories":[],"class_list":["post-11368","blogs","type-blogs","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress? - White Canvas<\/title>\n<meta name=\"description\" content=\"Estas son las estrategias que usamos para mantener un control de versiones escalable en nuestros proyectos.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress? - White Canvas\" \/>\n<meta property=\"og:description\" content=\"Estas son las estrategias que usamos para mantener un control de versiones escalable en nuestros proyectos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"White Canvas\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-23T21:09:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1708\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\/\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": [\n\t                \"Article\",\n\t                \"BlogPosting\"\n\t            ],\n\t            \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/\"\n\t            },\n\t            \"author\": {\n\t                \"@type\": \"Organization\",\n\t                \"name\": \"Wcanvas\",\n\t                \"url\": \"https:\/\/wcanvas.com\/\"\n\t            },\n\t            \"headline\": \"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress?\",\n\t            \"datePublished\": \"2023-02-01T13:03:52+00:00\",\n\t            \"dateModified\": \"2024-12-23T21:09:16+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@type\": \"WebPage\",\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/\"\n\t            },\n\t            \"wordCount\": 2419,\n\t            \"publisher\": {\n\t                \"@type\": \"Organization\",\n\t                \"name\": \"Wcanvas\",\n\t                \"logo\": {\n\t                    \"@type\": \"ImageObject\",\n\t                    \"url\": \"https:\/\/wcanvas.com\/wp-content\/themes\/wcanvas\/assets\/img\/elements\/logo-white-white.png\"\n\t                }\n\t            },\n\t            \"image\": [],\n\t            \"thumbnailUrl\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg\",\n\t            \"inLanguage\": \"es\",\n\t            \"description\": null\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/\",\n\t            \"url\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/\",\n\t            \"name\": \"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress? - White Canvas\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg\",\n\t            \"datePublished\": \"2023-02-01T13:03:52+00:00\",\n\t            \"dateModified\": \"2024-12-23T21:09:16+00:00\",\n\t            \"description\": \"Estas son las estrategias que usamos para mantener un control de versiones escalable en nuestros proyectos.\",\n\t            \"breadcrumb\": {\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#breadcrumb\"\n\t            },\n\t            \"inLanguage\": \"es\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"es\",\n\t            \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#primaryimage\",\n\t            \"url\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg\",\n\t            \"contentUrl\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg\",\n\t            \"width\": 2560,\n\t            \"height\": 1708,\n\t            \"caption\": \"code\"\n\t        },\n\t        {\n\t            \"@type\": \"BreadcrumbList\",\n\t            \"@id\": \"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#breadcrumb\",\n\t            \"itemListElement\": [\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 1,\n\t                    \"name\": \"Home\",\n\t                    \"item\": \"https:\/\/wcanvas.com\/es\/\"\n\t                },\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 2,\n\t                    \"name\": \"Blogs\",\n\t                    \"item\": \"https:\/\/wcanvas.com\/es\/blogs\/\"\n\t                },\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 3,\n\t                    \"name\": \"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress?\"\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\/\/wcanvas.com\/es\/#website\",\n\t            \"url\": \"https:\/\/wcanvas.com\/es\/\",\n\t            \"name\": \"White Canvas\",\n\t            \"description\": \"\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\/\/wcanvas.com\/es\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"es\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\/\/wcanvas.com\/es\/#organization\",\n\t            \"name\": \"White Canvas\",\n\t            \"url\": \"https:\/\/wcanvas.com\/es\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"es\",\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/#\/schema\/logo\/image\/\",\n\t                \"url\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/01\/logowhitecanvas.svg\",\n\t                \"contentUrl\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/01\/logowhitecanvas.svg\",\n\t                \"width\": 115,\n\t                \"height\": 32,\n\t                \"caption\": \"White Canvas\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/#\/schema\/logo\/image\/\"\n\t            },\n\t            \"alternateName\": \"Wcanvas\",\n\t            \"contactPoint\": [\n\t                {\n\t                    \"@type\": \"ContactPoint\",\n\t                    \"telephone\": \"+1 (347) 688 2902\",\n\t                    \"contactType\": \"sales\",\n\t                    \"contactOption\": \"TollFree\",\n\t                    \"areaServed\": \"US\",\n\t                    \"availableLanguage\": \"en\"\n\t                },\n\t                {\n\t                    \"@type\": \"ContactPoint\",\n\t                    \"telephone\": \"+54 (11) 5236 4717\",\n\t                    \"contactType\": \"sales\",\n\t                    \"contactOption\": \"TollFree\",\n\t                    \"areaServed\": \"AR\",\n\t                    \"availableLanguage\": \"es\"\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\/\/wcanvas.com\/es\/#\/schema\/person\/ea362f7fa9eb0239142e5e982bd8c198\",\n\t            \"name\": \"Nicolas Pisani\",\n\t            \"image\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"es\",\n\t                \"@id\": \"https:\/\/wcanvas.com\/es\/#\/schema\/person\/image\/\",\n\t                \"url\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2022\/12\/cropped-avatar-nico-96x96.png\",\n\t                \"contentUrl\": \"https:\/\/wcanvas.com\/wp-content\/uploads\/2022\/12\/cropped-avatar-nico-96x96.png\",\n\t                \"caption\": \"Nicolas Pisani\"\n\t            },\n\t            \"sameAs\": [\n\t                \"https:\/\/wcanvas.com\",\n\t                \"#\",\n\t                \"https:\/\/www.instagram.com\/whitecanvasteam\/\",\n\t                \"https:\/\/x.com\/wcanvas\"\n\t            ]\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress? - White Canvas","description":"Estas son las estrategias que usamos para mantener un control de versiones escalable en nuestros proyectos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/","og_locale":"es_ES","og_type":"article","og_title":"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress? - White Canvas","og_description":"Estas son las estrategias que usamos para mantener un control de versiones escalable en nuestros proyectos.","og_url":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/","og_site_name":"White Canvas","article_modified_time":"2024-12-23T21:09:16+00:00","og_image":[{"width":2560,"height":1708,"url":"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#article","isPartOf":{"@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/"},"author":{"@type":"Organization","name":"Wcanvas","url":"https:\/\/wcanvas.com\/"},"headline":"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress?","datePublished":"2023-02-01T13:03:52+00:00","dateModified":"2024-12-23T21:09:16+00:00","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/"},"wordCount":2419,"publisher":{"@type":"Organization","name":"Wcanvas","logo":{"@type":"ImageObject","url":"https:\/\/wcanvas.com\/wp-content\/themes\/wcanvas\/assets\/img\/elements\/logo-white-white.png"}},"image":[],"thumbnailUrl":"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg","inLanguage":"es","description":null},{"@type":"WebPage","@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/","url":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/","name":"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress? - White Canvas","isPartOf":{"@id":"https:\/\/wcanvas.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg","datePublished":"2023-02-01T13:03:52+00:00","dateModified":"2024-12-23T21:09:16+00:00","description":"Estas son las estrategias que usamos para mantener un control de versiones escalable en nuestros proyectos.","breadcrumb":{"@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#primaryimage","url":"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg","contentUrl":"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/02\/How-to-maintain-scalable-code-version-control-in-WordPress_-HERO-1.jpg","width":2560,"height":1708,"caption":"code"},{"@type":"BreadcrumbList","@id":"https:\/\/wcanvas.com\/es\/blog\/mantener-control-versiones-escalable-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wcanvas.com\/es\/"},{"@type":"ListItem","position":2,"name":"Blogs","item":"https:\/\/wcanvas.com\/es\/blogs\/"},{"@type":"ListItem","position":3,"name":"\u00bfC\u00f3mo mantener un control de versiones escalable del c\u00f3digo en WordPress?"}]},{"@type":"WebSite","@id":"https:\/\/wcanvas.com\/es\/#website","url":"https:\/\/wcanvas.com\/es\/","name":"White Canvas","description":"","publisher":{"@id":"https:\/\/wcanvas.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wcanvas.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/wcanvas.com\/es\/#organization","name":"White Canvas","url":"https:\/\/wcanvas.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/wcanvas.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/01\/logowhitecanvas.svg","contentUrl":"https:\/\/wcanvas.com\/wp-content\/uploads\/2023\/01\/logowhitecanvas.svg","width":115,"height":32,"caption":"White Canvas"},"image":{"@id":"https:\/\/wcanvas.com\/es\/#\/schema\/logo\/image\/"},"alternateName":"Wcanvas","contactPoint":[{"@type":"ContactPoint","telephone":"+1 (347) 688 2902","contactType":"sales","contactOption":"TollFree","areaServed":"US","availableLanguage":"en"},{"@type":"ContactPoint","telephone":"+54 (11) 5236 4717","contactType":"sales","contactOption":"TollFree","areaServed":"AR","availableLanguage":"es"}]},{"@type":"Person","@id":"https:\/\/wcanvas.com\/es\/#\/schema\/person\/ea362f7fa9eb0239142e5e982bd8c198","name":"Nicolas Pisani","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/wcanvas.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/wcanvas.com\/wp-content\/uploads\/2022\/12\/cropped-avatar-nico-96x96.png","contentUrl":"https:\/\/wcanvas.com\/wp-content\/uploads\/2022\/12\/cropped-avatar-nico-96x96.png","caption":"Nicolas Pisani"},"sameAs":["https:\/\/wcanvas.com","#","https:\/\/www.instagram.com\/whitecanvasteam\/","https:\/\/x.com\/wcanvas"]}]}},"_links":{"self":[{"href":"https:\/\/wcanvas.com\/es\/wp-json\/wp\/v2\/blogs\/11368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wcanvas.com\/es\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/wcanvas.com\/es\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/wcanvas.com\/es\/wp-json\/wp\/v2\/users\/1"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wcanvas.com\/es\/wp-json\/wp\/v2\/media\/1636"}],"wp:attachment":[{"href":"https:\/\/wcanvas.com\/es\/wp-json\/wp\/v2\/media?parent=11368"}],"wp:term":[{"taxonomy":"blog-categories","embeddable":true,"href":"https:\/\/wcanvas.com\/es\/wp-json\/wp\/v2\/blog-categories?post=11368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}