{"id":2799,"date":"2020-11-22T17:50:38","date_gmt":"2020-11-22T16:50:38","guid":{"rendered":"https:\/\/davidperezgar.com\/?p=2799"},"modified":"2025-10-16T12:10:32","modified_gmt":"2025-10-16T10:10:32","slug":"desarrollar-wordpress-coding-standards","status":"publish","type":"post","link":"https:\/\/davidperezgar.com\/es\/desarrollar-wordpress-coding-standards\/","title":{"rendered":"Desarrollar usando WordPress Coding Standards"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La programaci\u00f3n hoy en d\u00eda, se hace fundamental con <strong>Coding Standards<\/strong>. El objetivo es mantener un mismo estilo, de manera que al observarlo puedas interpretarlo f\u00e1cilmente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"que-es-coding-standards\">\u00bfQu\u00e9 es Coding Standards?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los <strong>Coding Standards<\/strong> son unas reglas de estilo a la hora de desarrollar, que nos permite una mejor lectura y entendimiento de las funciones. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trata de establecer las mejores formas de trabajar en WordPress y adem\u00e1s no s\u00f3lo se basa en el estilo sino tambi\u00e9n en <strong>mejores pr\u00e1cticas.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"porque-el-estilo-del-codigo-es-importante\">\u00bfPorqu\u00e9 el estilo del c\u00f3digo es importante?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Incluso si est\u00e1s trabajando en un proyecto privado, el formato de tu c\u00f3digo dice mucho. Y si est\u00e1s en un entorno de m\u00faltiples desarrolladores, dice mucho m\u00e1s. El c\u00f3digo con un buen estilo y bien pensado muestra calidad (aunque no sea buena), mientras que el caos engendra una programaci\u00f3n descuidada (aunque sea genial).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">He aqu\u00ed algunas razones para <strong>prestar atenci\u00f3n al estilo de tu c\u00f3digo<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\">El <strong>c\u00f3digo con estilo es m\u00e1s f\u00e1cil de mantener<\/strong>. Puede que sepas lo que est\u00e1 pasando hoy, pero \u00bfqu\u00e9 pasar\u00e1 dentro de un a\u00f1o? Tomarse el tiempo para estructurar el trabajo te ahorrar\u00e1 horas m\u00e1s adelante.<\/li>\n\n\n\n<li class=\"\">Otros <strong>desarrolladores no te leen la mente<\/strong>, as\u00ed que no entender\u00e1n tu c\u00f3digo ca\u00f3tico, o necesitar\u00e1n mucho tiempo para desenredarlo. Asegurar la menor fricci\u00f3n posible en la comunicaci\u00f3n es lo mejor para el proyecto, y esto puede ser facilitado por un formato que cumpla con los est\u00e1ndares.<\/li>\n\n\n\n<li class=\"\">Un poco menos importante, alguien que est\u00e1 aprendiendo a programar deber\u00eda poder visitar un sitio web y <strong>aprender algo mirando el c\u00f3digo fuente<\/strong>. Los est\u00e1ndares suelen tener una l\u00f3gica inherente, por lo que un espectador ser\u00eda capaz de averiguar lo que est\u00e1 pasando. Adherirse a los est\u00e1ndares podr\u00eda ayudar a muchos desarrolladores que empiezan a aprender a programar de la manera correcta desde el primer d\u00eda.<\/li>\n\n\n\n<li class=\"\">En muchos casos, <strong>un buen formato ayuda a la mantenibilidad.<\/strong> Muchos est\u00e1ndares requieren que se espacien las declaraciones y otros bloques de c\u00f3digo. No amontonar el c\u00f3digo har\u00e1 que un mensaje de \"Error en la l\u00ednea 267\" sea mucho m\u00e1s f\u00e1cil de arreglar.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"proceso-de-configuracion-en-mac\">Proceso de configuraci\u00f3n en Mac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este es mi proceso que mantengo actualizado para configurar Coding Standards en Mac. Hay varias formas de instalarlo, la que m\u00e1s me gusta y es la que expongo, es con composer. Quien no lo conozca es un software para librer\u00edas basadas en php para integrar en tus proyectos de forma muy f\u00e1cil. Tambi\u00e9n permite una instalaci\u00f3n global que es la que realizaremos. Luego mantener actualizadas todas las librer\u00edas es muy f\u00e1cil con este comando:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">composer global update<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"instalar-composer-en-macos\">Instalar Composer en MacOs<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener\">Composer <\/a>con BREW<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Si tienes brew, el instalador de paquetes para MacOS.<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">brew install composer<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Y ya estar\u00eda! Mucho m\u00e1s f\u00e1cil.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener\">Composer (getcomposer.org)<\/a> manualmente<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Seguimos los siguientes pasos que realmente me han funcionado. Abrimos el terminal y ejecutamos los siguientes comandos:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">curl -sS https:\/\/getcomposer.org\/installer | php<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Y movemos dicho archivo composer.phar al directorio de binarios \/usr\/local\/bin. Revisa que est\u00e9 dicha carpeta antes.<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">sudo mv composer.phar \/usr\/local\/bin\/<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Y cambiamos sus permisos:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">sudo chmod 755 \/usr\/local\/bin\/composer.phar<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">A\u00f1adirmos .profile<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">nano ~\/.profile<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Y a\u00f1adimos un alias para utilizarlo f\u00e1cilmente:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">alias composer=\"php \/usr\/local\/bin\/composer.phar\"<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Seguimos en el terminal:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">source ~\/.profile<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Y finalmente comprobamos que Composer se ha instalado correctamente:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">composer -v<\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"465\" height=\"227\" src=\"\/wp-content\/uploads\/2026\/10\/configuracion-composer-mac.png\" alt=\"configuracion composer mac\" class=\"wp-image-5424\" title=\"\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configurando-code-sniffer-y-wordpress-standards\">Configurando <strong>Code Sniffer y WordPress Standards<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mis instrucciones de instalaci\u00f3n se basan en trabajar con <a href=\"https:\/\/getcomposer.org\/\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">Composer<\/a>, el famoso gestor de librer\u00edas en PHP, ya que despu\u00e9s para actualizar todas nuestras librer\u00edas se hace con un s\u00f3lo comando:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">composer global update<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">En cambio, si lo has instalado en otras carpetas como por ejemplo, <a href=\"https:\/\/github.com\/ahmadawais\/VSCode-Tips-Tricks\/blob\/master\/videos\/PHP%2BWordPress-Setup\/WordPress.md\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">recomienda Ahmad Awais<\/a>, despu\u00e9s mantenerlas actualizadas se complica sobremanera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instalamos en nuestro ordenador, la versi\u00f3n de CodeSniffer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PHP_CodeSniffer es un conjunto de dos scripts PHP; el principal <em>phpcs<\/em> script que registra archivos PHP, JavaScript y CSS para detectar violaciones de un est\u00e1ndar de codificaci\u00f3n definido, y un segundo script <em>phpcbf<\/em> para corregir autom\u00e1ticamente las violaciones del est\u00e1ndar de codificaci\u00f3n. PHP_CodeSniffer es una herramienta de desarrollo esencial que asegura que su c\u00f3digo se mantenga limpio y consistente.<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">composer global require PHPCSStandards\/PHP_CodeSniffer<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Permitimos a composer que permite la configuraci\u00f3n de forma global.<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">composer global config bin-dir --absolute<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Dentro de Composer, creamos un proyecto de Coding Standards para WordPress. Es una librer\u00eda creada para gestionar las reglas recomendadas dentro de WordPress. <\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">composer global require \"wp-coding-standards\/wpcs\"<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez bajado dicho proyecto, le decimos a PHPCS que gestione las reglas de Coding Standards, en nuestra ubicaci\u00f3n. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recuerda personalizar <em>.composer\/vendor\/wp-coding-standards\/wpcs<\/em> con la ubicaci\u00f3n del proyecto de WordPress<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">phpcs --config-set installed_paths $HOME\/.composer\/vendor\/wp-coding-standards\/wpcs <\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Si no te funciona este comando, en definitiva el archivo <em>.composer\/vedor\/squizlabs\/php_code_snifer\/CodeSniffer.conf<\/em> deber\u00eda contener esta informaci\u00f3n:<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">&lt;?php\n $phpCodeSnifferConfig = array (\n  'installed_paths' =&gt; '\/Users\/USER\/.composer\/vendor\/wp-coding-standards\/wpcs',\n  'default_standard' =&gt; 'WordPress',\n)\n?&gt;<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Donde <em>installed_paths<\/em> contiene el directorio donde tienes instalado los Coding standards.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente, definimos la regla que utilizaremos. Tenemos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\"><em>WordPress<\/em> - juego completo con todas las reglas del proyecto\n<ul class=\"wp-block-list\">\n<li class=\"\"><em>WordPress-Core<\/em> - reglas principales para las normas de codificaci\u00f3n del n\u00facleo de WordPress.<\/li>\n\n\n\n<li class=\"\"><em>WordPress-Docs<\/em> - reglas adicionales para las normas de documentaci\u00f3n en l\u00ednea de WordPress.<\/li>\n\n\n\n<li class=\"\"><em>WordPress-Extra<\/em> - conjunto de reglas ampliadas para las mejores pr\u00e1cticas recomendadas, que no est\u00e1n suficientemente cubiertas en las normas b\u00e1sicas de codificaci\u00f3n de WordPress, incluye WordPress-Core.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Y configuramos el set completo de WordPress.<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">phpcs --config-set default_standard WordPress <\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Y ya podemos disfrutar de las recomendaciones de Coding Standard en nuestro editor favorito.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"adaptaciones-en-visualcode-para-wordpress-coding-standards\">Adaptaciones en VisualCode para WordPress Coding Standards<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente si utilizamos Visualcode, deberemos configurarle donde est\u00e1 el ejecutable de phpcs, que vendr\u00e1 de nuestra carpeta de binarios de composer. A\u00f1ade estas lineas en tu settings JSON (revisa el ejecutable):<\/p>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">\t\"phpcs.executablePath\": \"\/Users\/USUARIO\/.composer\/vendor\/bin\/phpcs\",\n\t\/\/ PHPCBF.\n\t\"phpcbf.onsave\": false,\n\t\"phpcbf.standard\": \"WordPress\",\n\t\"phpcbf.executablePath\": \"\/Users\/USUARIO\/.composer\/vendor\/bin\/phpcbf\",\n\t\"phpcs.ignorePatterns\": [\"*\/vendor\/*\", \"*\/vendors\/*\"],\n\t\t\"files.autoSave\": \"onFocusChange\",<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Para permitir la integraci\u00f3n con nuestro editor de Coding Standards, que al final es lo que nos hace ponerlo en pr\u00e1ctica, instalaremos la <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">extensi\u00f3n de VisualCode phpcs<\/a>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1578\" height=\"324\" src=\"\/wp-content\/uploads\/2026\/10\/extension-phpcs-vscode.png\" alt=\"extension phpcs vscode\" class=\"wp-image-5421\" title=\"\" srcset=\"https:\/\/davidperezgar.com\/wp-content\/uploads\/extension-phpcs-vscode.png 1578w, https:\/\/davidperezgar.com\/wp-content\/uploads\/extension-phpcs-vscode-596x122.png 596w, https:\/\/davidperezgar.com\/wp-content\/uploads\/extension-phpcs-vscode-1082x222.png 1082w, https:\/\/davidperezgar.com\/wp-content\/uploads\/extension-phpcs-vscode-768x158.png 768w, https:\/\/davidperezgar.com\/wp-content\/uploads\/extension-phpcs-vscode-1536x315.png 1536w\" sizes=\"auto, (max-width: 1578px) 100vw, 1578px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Es un preprocesador Lint, que nos va se\u00f1alando en todo momento los errores y mejoras que al situarse encima, nos ense\u00f1a el error a subsanar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1366\" height=\"352\" src=\"\/wp-content\/uploads\/2026\/10\/subrayado-phpcs.png\" alt=\"subrayado phpcs\" class=\"wp-image-5422\" title=\"\" srcset=\"https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-phpcs.png 1366w, https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-phpcs-596x154.png 596w, https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-phpcs-1082x279.png 1082w, https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-phpcs-768x198.png 768w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1230\" height=\"214\" src=\"\/wp-content\/uploads\/2026\/10\/subrayado-explicacion-phpcs.png\" alt=\"subrayado explicacion phpcs\" class=\"wp-image-5423\" title=\"\" srcset=\"https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-explicacion-phpcs.png 1230w, https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-explicacion-phpcs-596x104.png 596w, https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-explicacion-phpcs-1082x188.png 1082w, https:\/\/davidperezgar.com\/wp-content\/uploads\/subrayado-explicacion-phpcs-768x134.png 768w\" sizes=\"auto, (max-width: 1230px) 100vw, 1230px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Actualizar a la versi\u00f3n 3.0<\/h2>\n\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\"><code class=\"\">composer global update wp-coding-standards\/wpcs --with-dependencies<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tener integrado los <strong><em>WordPress Coding Standards<\/em><\/strong> en nuestro editor es fundamental para escribir un c\u00f3digo m\u00e1s seguro, limpio y f\u00e1cil lectura. Y la integraci\u00f3n es imprescindible para ponerlo en marcha.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fuentes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\"><a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">Repositorio oficial de WordPress Coding Standards<\/a>.<\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\" target=\"_blank\" rel=\"noopener\">TomMcFarlin PHP Coding Sniffer<\/a><\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/www.smashingmagazine.com\/2012\/07\/guide-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener\">Guide To WordPress Coding Standards \u2014 Smashing Magazine<\/a><\/li>\n\n\n\n<li class=\"\"><a href=\"https:\/\/gist.github.com\/nunomorgadinho\/b2d8e5b8f5fec5b0ed946b24fa288a91\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">Configuraci\u00f3n de Nuno en Gist<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Revisiones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\">Octubre 2025: Actualizado repositorio de codesniffer.<\/li>\n\n\n\n<li class=\"\">Septiembre 2023: A\u00f1adido instalaci\u00f3n Composer con brew.<\/li>\n\n\n\n<li class=\"\">Noviembre 2021: A\u00f1adido el archivo CodeSniffer.conf.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>La programaci\u00f3n hoy en d\u00eda, se hace fundamental con Coding Standards. El objetivo es mantener un mismo estilo, de manera que al observarlo puedas interpretarlo f\u00e1cilmente. \u00bfQu\u00e9 es Coding Standards? Los Coding Standards son unas reglas de estilo a la hora de desarrollar, que nos permite una mejor lectura y entendimiento de las funciones. Trata [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2859,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":7,"footnotes":""},"categories":[168],"tags":[],"class_list":["post-2799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo-web"],"_links":{"self":[{"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/posts\/2799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/comments?post=2799"}],"version-history":[{"count":1,"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/posts\/2799\/revisions"}],"predecessor-version":[{"id":5877,"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/posts\/2799\/revisions\/5877"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/media\/2859"}],"wp:attachment":[{"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/media?parent=2799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/categories?post=2799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davidperezgar.com\/es\/wp-json\/wp\/v2\/tags?post=2799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}