{"id":233667,"date":"2023-02-20T19:57:00","date_gmt":"2023-02-20T16:57:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233667"},"modified":"2022-11-11T08:44:55","modified_gmt":"2022-11-11T05:44:55","slug":"como-compilar-scss-con-php-agregue-variables-al-personalizador-de-wordpress-para-compilar-el-css-del-tema","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/como-compilar-scss-con-php-agregue-variables-al-personalizador-de-wordpress-para-compilar-el-css-del-tema\/","title":{"rendered":"C\u00f3mo compilar SCSS con PHP: agregue variables al personalizador de WordPress para compilar el CSS del tema"},"content":{"rendered":"\n<p>Este tutorial le mostrar\u00e1 c\u00f3mo agregar configuraciones de tema, por ejemplo, colores de tema, en el Personalizador de WordPress y volver a compilar la hoja de estilo del tema con las variables elegidas. Al tener un estilo de tema en SCSS usando una biblioteca, puede permitir que los usuarios de temas personalicen f\u00e1cilmente cualquier variable en la hoja de estilo del tema, sin que tengan que editar los archivos SCSS.<\/p>\n<p>Cualquier buen tema deber\u00eda permitir una buena cantidad de personalizaci\u00f3n. Como m\u00ednimo, deber\u00eda ser posible establecer los colores del tema principal. En lugar de escribir una gran cantidad de CSS feo para anular los colores del tema en todas partes, puede volver a compilar la hoja de estilo completa directamente desde el Personalizador. \u00a1Este tutorial te ense\u00f1ar\u00e1 c\u00f3mo!<\/p>\n<h2>Lo que haremos y lo que necesitamos<\/h2>\n<p>Supongo que su tema ya tiene un poco de estilo en los archivos SCSS que ya compila en el archivo principal del tema <code>style.css<\/code>. Y al usar SCSS, lo m\u00e1s probable es que defina cosas recurrentes, como colores, tama\u00f1os o puntos de interrupci\u00f3n, como variables SCSS, y use esas variables en su dise\u00f1o.<\/p>\n<p>Puede crear cualquier configuraci\u00f3n del Personalizador que desee para las variables en su archivo SCSS. Los selectores de colores, las entradas de n\u00fameros y de texto son perfectos para esto. Mientras el usuario cambia la configuraci\u00f3n en el Personalizador de WordPress, ver\u00e1 una vista previa del tema con las variables modificadas. Y cuando hagan clic en &quot;Guardar&quot;, el CSS final se compilar\u00e1 en el archivo CSS de la hoja de estilo principal utilizando los valores elegidos.<\/p>\n<p>Como ejemplo para este tutorial, supondr\u00e9 que el archivo SCSS de la hoja de estilo principal del tema hace lo mismo que <code>@import<\/code>un <code>variables.scss<\/code>archivo. All\u00ed hemos definido tres variables que queremos que sean personalizables en el Personalizador: dos colores y un tama\u00f1o de texto en formato <code>px<\/code>.<\/p>\n<pre><code>$main: #594c74 !default;\n$secondary: #555 !default;\n$text-size: 12px !default;<\/code><\/pre>\n<p>Tenga en cuenta que para permitir que SCSS redefina variables, <strong>deben definirse<\/strong> con <code>!default<\/code>. Esta es una <a href=\"https:\/\/sass-lang.com\/documentation\/variables#default-values\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">regla en SCSS<\/a>. Para que este tutorial funcione; cualquier variable que desee personalizar debe definirse como predeterminada en sus archivos SCSS.<\/p>\n<p>Depende de usted cu\u00e1ndo (o si) desea sobrescribir el archivo CSS. Este tutorial asume que cuando el usuario hace clic en &quot;Guardar&quot; en el Personalizador, se volver\u00e1 a compilar y escribir en el CSS del tema. Sin embargo, mientras la vista previa del Personalizador est\u00e1 activa y el usuario est\u00e1 cambiando la configuraci\u00f3n (antes de hacer clic en Guardar), simplemente mostramos el CSS compilado en el encabezado de la vista previa del sitio web. No queremos sobrescribir el archivo CSS de inmediato en caso de que el usuario desee cancelar cualquier cambio que haya realizado.<\/p>\n<h3>\u00a0 Tenga en cuenta\u2026<\/h3>\n<p>Este tutorial sobrescribir\u00e1 el <code>style.css<\/code>archivo del tema cada vez que se guarde la configuraci\u00f3n del personalizador.<\/p>\n<p>Supongo que ya compila sus archivos SCSS con un programa compilador (por ejemplo, <a href=\"http:\/\/koala-app.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Koala<\/a> o l\u00ednea de comandos). Tener este c\u00f3digo en su tema sobrescribir\u00e1 el archivo CSS, pero no cambiar\u00e1 sus archivos SCSS de origen. Esto significa que cada vez que realice cambios en el Personalizador y luego vuelva a sus archivos SCSS originales y los vuelva a compilar, \u00a1se perder\u00e1n los ajustes de Personalizaci\u00f3n!<\/p>\n<p>Hay varios m\u00e9todos para evitar esto y depende de su proyecto y de c\u00f3mo trabaje. En la mayor\u00eda de los casos no ser\u00eda un problema. Por lo general, es solo algo a tener en cuenta mientras desarrolla su tema. Si le est\u00e1 dando su tema finalizado a otra persona para que lo use, normalmente no tocar\u00eda sus archivos SCSS de todos modos.<\/p>\n<p>Con eso fuera del camino, comencemos a ver c\u00f3mo hacemos esto:<\/p>\n<ol>\n<li>Familiarizarse con la biblioteca SCSSPHP e incluirla en nuestro tema<\/li>\n<li>Crear configuraciones personalizadas para cada variable SCSS que queremos que sea personalizable<\/li>\n<li>Asegurarse de que el Personalizador obtenga una vista previa de los cambios sobre la marcha<\/li>\n<li>Al guardar la configuraci\u00f3n del Personalizador, volvemos a compilar y sobrescribimos el archivo CSS del tema.<\/li>\n<\/ol>\n<h2>1 La biblioteca SCSSPHP<\/h2>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152472-61e4dfd0532a5.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-152472-61e4dfd0532a5.png\" alt=\"C\u00f3mo compilar SCSS con PHP: agregue variables al personalizador de WordPress para compilar el CSS del tema\" ><\/a><\/p>\n<p>Para compilar los archivos SCSS usaremos una <a href=\"https:\/\/scssphp.github.io\/scssphp\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca SCSSPHP de leafo<\/a> (licencia MIT). Tenga en cuenta que este tutorial es para la biblioteca SCSS. El autor de la biblioteca tiene una <a href=\"https:\/\/github.com\/leafo\/lessphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca LESS PHP<\/a> similar si prefiere usar LESS, pero recuerde que el siguiente tutorial es para la biblioteca SCSS.<\/p>\n<p>\u00a1La biblioteca SCSSPHP es realmente f\u00e1cil de usar! Aqu\u00ed hay una descripci\u00f3n general simplificada de c\u00f3mo usaremos la biblioteca en el PHP de nuestro tema:<\/p>\n<ul>\n<li>Incluimos la biblioteca<\/li>\n<li>Cree una nueva instancia de la clase de compilador de la biblioteca<\/li>\n<li>Cargue el contenido del archivo SCSS de origen y p\u00e1selo al objeto compilador<\/li>\n<li>Defina una matriz asociativa; Nombres de variables SCSS (incluido el <code>$<\/code>) como claves y sus valores. Cualquier elemento de esta matriz anular\u00e1 las variables del mismo nombre en el archivo SCSS proporcionado.<\/li>\n<li>Le pedimos al objeto compilador que compile y reciba el CSS compilado como una cadena a cambio. Luego podemos generar este CSS dentro <code>head<\/code>o podemos escribirlo en el <code>style.css<\/code>archivo del tema.<\/li>\n<\/ul>\n<h3>\u00a0 \u00bfQu\u00e9 tipo de variables SCSS podemos compilar?<\/h3>\n<p>La respuesta simple es: \u00a1cualquier tipo de variable SCSS v\u00e1lida!<\/p>\n<p>La biblioteca SCSSPHP puede compilar cualquier tipo de variable SCSS v\u00e1lida, pero tenga en cuenta que debe asegurarse de que tengan el formato correcto desde el Personalizador. Por ejemplo, los colores deben tener el prefijo a <code>#<\/code>para los colores hexadecimales o tener el formato de definiciones <code>rgb()<\/code>o. <code>rgba()<\/code>Una variable de tama\u00f1o generalmente necesitar\u00eda agregarse con &#8216; <code>px<\/code>&#8216;, &#8216; <code>em<\/code>&#8216;, &#8216; <code>%<\/code>&#8216;, y as\u00ed sucesivamente.<\/p>\n<p>Si planea crear un sistema avanzado para compilar variables SCSS a trav\u00e9s del tema del personalizador, \u00a1aseg\u00farese de tener un buen sistema para formatear correctamente cada tipo de variable!<\/p>\n<p>Dejemos el primer paso fuera del camino; descargando e incluyendo la biblioteca en nuestro tema:<\/p>\n<h3>Descargar e incluir la biblioteca SCSSPHP en su tema<\/h3>\n<p>El primer paso es descargar la <a href=\"https:\/\/scssphp.github.io\/scssphp\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca SCSSPHP<\/a>. En la p\u00e1gina vinculada, haga clic en el bot\u00f3n &quot;Descargar&quot; en la parte superior. Si prefiere usar Composer, el sitio proporciona una gu\u00eda al respecto.<\/p>\n<p>Extraiga el zip en una subcarpeta en alg\u00fan lugar dentro de su tema. Como ejemplo lo estoy colocando dentro de la <code>theme\/inc\/scssphp\/<\/code>carpeta.<\/p>\n<p>Abra el archivo PHP donde desea agregar su c\u00f3digo para compilar. Puede estar directamente dentro de su tema <code>functions.php<\/code>o un archivo PHP incluido por <code>functions.php<\/code>. En aras de la simplicidad, estoy escribiendo todo dentro <code>functions.php<\/code>.<\/p>\n<p>Antes de que podamos usar la biblioteca, debemos incluirla; al igual que:<\/p>\n<pre><code>require_once(get_stylesheet_directory(). '\/inc\/scssphp\/scss.inc.php');<\/code><\/pre>\n<p>Ajuste la ruta a sus archivos en consecuencia. Necesitamos incluir el <code>scss.inc.php<\/code>archivo que se encuentra dentro de la carpeta ra\u00edz de la biblioteca. \u00a1Ahora, despu\u00e9s de esta l\u00ednea podemos usar las clases de la biblioteca!<\/p>\n<h2>2 Creaci\u00f3n de la configuraci\u00f3n del Personalizador para las variables SCSS<\/h2>\n<p>Vamos a crear la configuraci\u00f3n del personalizador de WordPress para nuestras variables. Por el bien del tutorial, agregaremos configuraciones para las variables SCSS mencionadas anteriormente: dos selectores de color y una entrada de n\u00famero.<\/p>\n<p>No entrar\u00e9 en detalles para explicar c\u00f3mo agregar la configuraci\u00f3n del Personalizador; hay muchos tutoriales para esto. En el ejemplo de c\u00f3digo a continuaci\u00f3n, creo una nueva secci\u00f3n y coloco las tres configuraciones dentro:<\/p>\n<pre><code>add_action('customize_register', function($wp_customize) {\n    $wp_customize-&gt;add_section('theme-variables', [\n        'title' =&gt; __('Theme Variables', 'txtdomain'),\n        'priority' =&gt; 25\n    ]);\n\u00a0\n    $wp_customize-&gt;add_setting('theme-main', ['default' =&gt; '#594c74']);\n    $wp_customize-&gt;add_control(new WP_Customize_Color_Control($wp_customize, 'theme-main', [\n        'section' =&gt; 'theme-variables',\n        'label' =&gt; __('Main theme color', 'txtdomain'),\n        'priority' =&gt; 10\n    ]));\n\u00a0\n    $wp_customize-&gt;add_setting('theme-secondary', ['default' =&gt; '#555']);\n    $wp_customize-&gt;add_control(new WP_Customize_Color_Control($wp_customize, 'theme-secondary', [\n        'section' =&gt; 'theme-variables',\n        'label' =&gt; __('Secondary theme color', 'txtdomain'),\n        'priority' =&gt; 20\n    ]));\n\u00a0\n    $wp_customize-&gt;add_setting('theme-text-size', ['default' =&gt; '12']);\n    $wp_customize-&gt;add_control('theme-text-size', [\n        'section' =&gt; 'theme-variables',\n        'label' =&gt; __('Text size', 'txtdomain'),\n        'type' =&gt; 'number',\n        'priority' =&gt; 30,\n        'input_attrs' =&gt; ['min' =&gt; 8, 'max' =&gt; 20, 'step' =&gt; 1]\n    ]);\n});<\/code><\/pre>\n<p>Este c\u00f3digo se engancha <code>customize_register<\/code>y agrega una secci\u00f3n llamada &quot;Variables de tema&quot;. Luego procede a agregar un selector de color &#8216; <code>theme-main<\/code>&#8216;, otro selector de color &#8216; <code>theme-secondary<\/code>&#8216; y una entrada de n\u00famero &#8216; <code>theme-text-size<\/code>&#8216;. Esta es toda la funcionalidad predeterminada de WordPress. Tambi\u00e9n agrego establecer el valor predeterminado de cada configuraci\u00f3n en los mismos valores definidos en el <code>variables.scss<\/code>archivo. Esto es solo para garantizar que la configuraci\u00f3n del Personalizador se inicie con los colores correctos.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152472-61e4dfd112a70.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-152472-61e4dfd112a70.png\" alt=\"C\u00f3mo compilar SCSS con PHP: agregue variables al personalizador de WordPress para compilar el CSS del tema\" ><\/a><\/p>\n<p>\u00a1Se ve genial! Pero a partir de ahora no pasa nada cuando ajustas estas variables. Continuemos con el paso 3; manejo de la vista previa en el Personalizador.<\/p>\n<h2>3 Compile CSS sobre la marcha en la vista previa del Personalizador<\/h2>\n<p>Este paso maneja la actualizaci\u00f3n de la vista previa del Personalizador mientras el usuario cambia la configuraci\u00f3n y no escribir\u00e1 en ninguno de nuestros archivos. En su lugar, mostraremos el CSS compilado en <code>&lt;head&gt;<\/code>la vista previa dentro de una <code>&lt;style&gt;<\/code>etiqueta. De esta manera, nos aseguramos de que el CSS en l\u00ednea anule todos los estilos del archivo CSS original.<\/p>\n<p>Para verificar si actualmente estamos usando la vista previa del Personalizador, usamos la funci\u00f3n <code>[is_customize_preview](https:\/\/developer.wordpress.org\/reference\/functions\/is_customize_preview\/)()<\/code>. Cuando esto regresa <code>true<\/code>, creamos una funci\u00f3n enganchada a <code>wp_head<\/code>. Dentro de la funci\u00f3n, iniciamos y configuramos la biblioteca SCSSPHP, buscamos los valores de configuraci\u00f3n actuales, compilamos el CSS y lo generamos en una <code>&lt;style&gt;<\/code>etiqueta.<\/p>\n<pre><code>require_once(get_stylesheet_directory(). '\/inc\/scssphp\/scss.inc.php');\n\u00a0\nif (is_customize_preview()) {\n    add_action('wp_head', function() {\n        $compiler = new ScssPhpScssPhpCompiler();\n\u00a0\n        $source_scss = get_stylesheet_directory(). '\/assets\/scss\/style.scss';\n        $scssContents = file_get_contents($source_scss);\n        $import_path = get_stylesheet_directory(). '\/assets\/scss';\n        $compiler-&gt;addImportPath($import_path);\n\u00a0\n        $variables = [\n            '$main' =&gt; get_theme_mod('theme-main', '#594c74'),\n            '$secondary' =&gt; get_theme_mod('theme-secondary', '#555'),\n            '$text-size' =&gt; get_theme_mod('theme-text-size', '12'). 'px',\n        ];\n        $compiler-&gt;setVariables($variables);\n\u00a0\n        $css = $compiler-&gt;compile($scssContents);\n        if (!empty($css) &amp;&amp; is_string($css)) {\n            echo '&lt;style type=\"text\/css\"&gt;'. $css. '&lt;\/style&gt;';\n        }\n    });\n}<\/code><\/pre>\n<p>En l\u00ednea <code>#7<\/code>, definimos la ruta al archivo SCSS de origen y cargamos su contenido en una variable en <code>#8<\/code>. Y en l\u00ednea configuramos la ruta de importaci\u00f3n para la biblioteca para garantizar que cualquier <code>#9<\/code>correo electr\u00f3nico funcione correctamente en nuestros archivos SCSS. Puede leer m\u00e1s sobre esto en el <a href=\"https:\/\/scssphp.github.io\/scssphp\/docs\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sitio de documentaci\u00f3n de la biblioteca<\/a>, bajo el t\u00edtulo &quot;Rutas de importaci\u00f3n&quot;. B\u00e1sicamente, la biblioteca SCSSPHP necesita conocer la ruta relativa de su carpeta SCSS para que todas las rutas sean correctas.<code>#10``@import<\/code><a href=\"https:\/\/scssphp.github.io\/scssphp\/docs\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><code>@import<\/code><\/p>\n<p>En l\u00ednea <code>#12-16<\/code>creamos la matriz para el compilador; una matriz asociativa con los nombres de las variables como claves. Para los valores que usamos <code>[get_theme_mod](https:\/\/developer.wordpress.org\/reference\/functions\/get_theme_mod\/)()<\/code>para obtener los valores del Personalizador. La funci\u00f3n <code>get_theme_mod()<\/code>le permite definir un valor predeterminado como segundo par\u00e1metro si el valor no se guard\u00f3. Esto nos evita bloquear el compilador con valores como <code>null<\/code>. Por lo tanto, proporcionamos el mismo valor predeterminado que en nuestro archivo de variables SCSS y cuando registramos la configuraci\u00f3n del Personalizador.<\/p>\n<p>Tambi\u00e9n tenga en cuenta que el c\u00f3digo en la l\u00ednea <code>#15<\/code>agrega un &#8216; <code>px<\/code>&#8216;, lo que garantiza que el valor de la variable real sea v\u00e1lido. De lo contrario, se compilar\u00eda como &quot; <code>$text-size: 12;<\/code>&quot; cuando necesitemos &quot; <code>$text-size: 12px;<\/code>&quot;. Proporcionamos la matriz de variables al compilador en la l\u00ednea <code>#17<\/code>, dici\u00e9ndole que compile usando estas variables.<\/p>\n<p>Luego, en l\u00ednea <code>#19-22<\/code>, llamamos a la <code>compile()<\/code>funci\u00f3n que deber\u00eda devolver el CSS compilado como una cadena. Damos salida a una <code>&lt;style&gt;<\/code>etiqueta con la cadena CSS dentro. Debido a que estamos enganchados a <code>wp_head<\/code>, el Personalizador mostrar\u00e1 la vista previa con el CSS modificado cada vez que se realice un cambio.<\/p>\n<h2>4 Guardar el CSS compilado en la hoja de estilo del tema<\/h2>\n<p>El c\u00f3digo para compilar el CSS es muy similar al paso anterior. La \u00fanica diferencia es que ahora estamos escribiendo el CSS en un archivo en lugar de generarlo. Realmente <strong>deber\u00eda<\/strong> considerar poner esto en una funci\u00f3n para que no repita el c\u00f3digo, pero en aras de la claridad, he elegido separar los dos.<\/p>\n<p>Nos conectamos a <code>[customize_save_after](https:\/\/developer.wordpress.org\/reference\/hooks\/customize_save_after\/)<\/code>qu\u00e9 disparadores cada vez que alguien hace clic en Guardar en el Personalizador de WordPress. En este punto, buscamos el SCSS de origen, definimos los valores de las variables y lo compilamos en CSS. Con la cadena CSS, usamos una funci\u00f3n PHP simple para escribirla en el archivo CSS del tema.<\/p>\n<pre><code>add_action('customize_save_after', function() {\n    $compiler = new ScssPhpScssPhpCompiler();\n\u00a0\n    $source_scss = get_stylesheet_directory(). '\/assets\/scss\/style.scss';\n    $scssContents = file_get_contents($source_scss);\n    $import_path = get_stylesheet_directory(). '\/assets\/scss';\n    $compiler-&gt;addImportPath($import_path);\n    $target_css = get_stylesheet_directory(). '\/style.css';\n\u00a0\n    $variables = [\n        '$main' =&gt; get_theme_mod('theme-main', '#594c74'),\n        '$secondary' =&gt; get_theme_mod('theme-secondary', '#555'),\n        '$text-size' =&gt; get_theme_mod('theme-text-size', '12'). 'px',\n    ];      \n    $compiler-&gt;setVariables($variables);\n\u00a0\n    $css = $compiler-&gt;compile($scssContents);\n    if (!empty($css) &amp;&amp; is_string($css)) {\n        file_put_contents($target_css, $css);\n    }\n});<\/code><\/pre>\n<p>La \u00fanica diferencia con respecto a antes est\u00e1 en la l\u00ednea <code>#8<\/code>donde definimos el archivo de destino para escribir y la l\u00ednea <code>#19<\/code>donde escribimos en el archivo.<\/p>\n<h2>\u00a0 Conclusi\u00f3n<\/h2>\n<p>Ahora tenemos la configuraci\u00f3n del Personalizador que controla las variables en el archivo SCSS del tema y sobrescribe la hoja de estilo principal del tema usando esas variables. \u00a1No hay l\u00edmite para la cantidad o el tipo de configuraciones que desea permitir que los usuarios del tema personalicen! Invierta algo de tiempo en configurar un sistema adecuado para manejar el formato de diferentes tipos de variables (p. ej., prefijos o postfijos) y estructurar correctamente la configuraci\u00f3n del Personalizador. \u00a1Los usuarios del tema apreciar\u00e1n la flexibilidad y lo f\u00e1cil que es personalizar su tema!<\/p>\n<p>Tambi\u00e9n puede descubrir diferentes formas de manejar la escritura de archivos del CSS final. Si no desea sobrescribir la hoja de estilo principal, tal vez desee enviarla a un archivo diferente. Tambi\u00e9n puede considerar el uso <a href=\"https:\/\/sass-lang.com\/documentation\/at-rules\/control\/if\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">de condicionales if-else en SCSS<\/a>.<\/p>\n<p>Este tutorial fue escrito para brindarle un trampol\u00edn sobre c\u00f3mo puede personalizar su tema de WordPress desde el Personalizador. \u00a1Av\u00edseme si le sirvi\u00f3 de algo, o si desea un tutorial m\u00e1s avanzado que asegure que la hoja de estilo del tema no se sobrescriba!<\/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>Este tutorial le mostrar\u00e1 c\u00f3mo agregar configuraciones de tema como colores en el Personalizador de WordPress y compilar el tema SCSS con las variables elegidas en PHP.<\/p>\n","protected":false},"author":1,"featured_media":224105,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[924,892,892,903,903,716,716,831,1110,800,800,831,924,840,840,861,861],"tags":[1172],"class_list":["post-233667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asignaturas","category-codigo","category-css-2","category-desarrollador","category-guia-para-principiantes","category-n-a","category-php-2","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233667","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=233667"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/224105"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}