{"id":75834,"date":"2024-07-19T15:01:38","date_gmt":"2024-07-19T13:01:38","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=75834&#038;preview=true&#038;preview_id=75834"},"modified":"2024-07-29T12:41:38","modified_gmt":"2024-07-29T10:41:38","slug":"wordpress-htmx","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/","title":{"rendered":"Potenciando WordPress con HTMX: c\u00f3mo mejorar la plataforma sin frameworks complejos"},"content":{"rendered":"<p>Aunque hay muchos lenguajes de programaci\u00f3n aceptables, el desarrollo web se est\u00e1 asentando en unas cuantas tecnolog\u00edas fiables. Esto es especialmente cierto en el caso de WordPress.<\/p>\n<p>JavaScript a\u00fan est\u00e1 en fase de maduraci\u00f3n para la plataforma, aunque las expectativas de los usuarios en cuanto a sitios web din\u00e1micos e interactivos siguen vigentes. Los frameworks pueden salvar esa distancia, pero la complejidad de algunos de los m\u00e1s populares puede obstaculizar tu desarrollo. Aqu\u00ed es donde entra HTMX. Esta ligera biblioteca promete ofrecer usabilidad y simplificaci\u00f3n a la hora de crear experiencias web modernas.<\/p>\n<p>En este art\u00edculo vamos a explorar c\u00f3mo HTMX puede integrarse en tu propio flujo de trabajo de desarrollo de WordPress. A lo largo de todo el art\u00edculo, aprender\u00e1s a utilizar esta potente y accesible forma de crear contenido din\u00e1mico e interactividad.<\/p>\n<p>Hablaremos de qu\u00e9 es HTMX, por qu\u00e9 est\u00e1 ganando adeptos y c\u00f3mo se conecta con WordPress. Tambi\u00e9n obtendr\u00e1s una gu\u00eda pr\u00e1ctica sobre la integraci\u00f3n y el uso de HTMX con WordPress.<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Qu\u00e9 es HTMX<\/h2>\n<figure id=\"attachment_182716\" aria-describedby=\"caption-attachment-182716\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182716 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/htmx-logo.png\" alt=\"El logotipo de HTMX, que consiste en el texto \"htmx\" en letras blancas, con corchetes angulares a ambos lados que representan etiquetas HTML. La \"x\" de \"htmx\" est\u00e1 coloreada en azul para darle \u00e9nfasis. Debajo del texto principal hay un eslogan que dice \"high power tools for HTML\". El logotipo se coloca sobre un fondo oscuro, creando un llamativo contraste.\" width=\"1200\" height=\"295\"><figcaption id=\"caption-attachment-182716\" class=\"wp-caption-text\">El logotipo de HTMX.<\/figcaption><\/figure>\n<p>En pocas palabras, <a href=\"https:\/\/htmx.org\/\">HTMX<\/a> es una biblioteca de JavaScript que ampl\u00eda el <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-el-html\/\">Lenguaje de Marcado de Hipertexto Est\u00e1ndar (HTML)<\/a> sin la necesidad de escribir <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-javascript\/\">JavaScript<\/a> vanilla o de framework. Estas extensiones te permiten acceder tambi\u00e9n a otras tecnolog\u00edas:<\/p>\n<ul>\n<li><strong>JavaScript As\u00edncrono y XML (AJAX).<\/strong> HTMX utiliza AJAX para realizar peticiones \u00abas\u00edncronas\u00bb al servidor. Esto te permite realizar actualizaciones parciales de la p\u00e1gina sin necesidad de recargarla por completo.<\/li>\n<li><strong>WebSockets.<\/strong> Puedes establecer conexiones WebSocket y permitir la comunicaci\u00f3n bidireccional en tiempo real entre el navegador y el servidor.<\/li>\n<li><strong>Eventos enviados por el servidor (SSE).<\/strong> Esta tecnolog\u00eda permite al servidor enviar datos al navegador. Desde all\u00ed, puedes utilizar HTMX para realizar actualizaciones de la p\u00e1gina en tiempo real.<\/li>\n<li><strong>Transiciones CSS.<\/strong> Puedes integrarte con <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/CSS_transitions\/Using_CSS_transitions\">transiciones CSS<\/a>, lo que te permite implementar actualizaciones suaves y animadas en tu sitio.<\/li>\n<\/ul>\n<p>En esencia, HTMX pretende simplificar la forma de crear aplicaciones web din\u00e1micas e interactivas. Su funcionalidad clave es c\u00f3mo puede hacer <code>GET<\/code>, <code>POST<\/code>, <code>PUT<\/code>, <code>PATCH<\/code>, y <code>DELETE<\/code> <a href=\"https:\/\/kinsta.com\/es\/blog\/javascript-peticion-http\/\">peticiones HTTP<\/a> desde elementos HTML. Esto significa que puedes procesar actualizaciones parciales de la p\u00e1gina de forma fluida, como si fuera una aplicaci\u00f3n m\u00f3vil. En conjunto, HTMX es un potente conjunto de herramientas para ayudarte a crear una experiencia web din\u00e1mica sin necesidad de montones de c\u00f3digo JavaScript.<\/p>\n<h2>Por qu\u00e9 todos hablamos de HTMX<\/h2>\n<p>Recientemente ha habido un gran revuelo en torno a HTMX, y las b\u00fasquedas de la biblioteca se han disparado en los <a href=\"https:\/\/trends.google.com\/trends\/explore?date=today%205-y&#038;q=htmx&#038;hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">\u00faltimos cinco a\u00f1os<\/a>.<\/p>\n<figure id=\"attachment_182718\" aria-describedby=\"caption-attachment-182718\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182718 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/htmx-trends.png\" alt=\"Un gr\u00e1fico lineal que muestra el inter\u00e9s a lo largo del tiempo desde julio de 2019 hasta enero de 2024. El gr\u00e1fico empieza bajo y relativamente plano hasta mediados de 2022, luego muestra un fuerte aumento seguido de fluctuaciones a un nivel m\u00e1s alto hasta 2023 y principios de 2024.\" width=\"1200\" height=\"376\"><figcaption id=\"caption-attachment-182718\" class=\"wp-caption-text\">El gr\u00e1fico de Google Trends muestra un aumento de las b\u00fasquedas de HTMX en un periodo de cinco a\u00f1os.<\/figcaption><\/figure>\n<p>Este aumento de popularidad se debe en parte a la visibilidad en las redes sociales y en los foros de desarrolladores. Sin embargo, HTMX tiene varios factores que lo convierten en una atractiva opci\u00f3n de desarrollo.<\/p>\n<ul>\n<li><strong>Simplicidad.<\/strong> Dado que HTMX utiliza la conocida sintaxis HTML para ayudarte a crear aplicaciones web din\u00e1micas e interactivas, es muy f\u00e1cil de implementar y no tiene casi ninguna de las complejidades de los <a href=\"https:\/\/kinsta.com\/es\/blog\/bibliotecas-javascript\/\">t\u00edpicos frameworks JavaScript<\/a>.<\/li>\n<li><strong>Rendimiento.<\/strong> Al minimizar la cantidad de JavaScript necesaria, HTMX puede ofrecer <a href=\"https:\/\/htmx.org\/essays\/a-real-world-react-to-htmx-port\/\" target=\"_blank\" rel=\"noopener noreferrer\">tiempos de carga m\u00e1s r\u00e1pidos<\/a> y mejor rendimiento que otros frameworks, especialmente para dispositivos m\u00f3viles.<\/li>\n<li><strong>Renderizaci\u00f3n del lado del servidor. <\/strong> La renderizaci\u00f3n del lado del servidor es genial si quieres mejorar los tiempos de carga iniciales de la p\u00e1gina y <a href=\"https:\/\/kinsta.com\/es\/blog\/que-quiere-decir-seo\/\">la optimizaci\u00f3n para motores de b\u00fasqueda (SEO)<\/a>. HTMX incorpora esto en su conjunto de funciones.<\/li>\n<li><strong>Mejora progresiva.<\/strong> Esto significa a\u00f1adir interactividad a los sitios web sin romper la funcionalidad para quienes desactivan JavaScript. HTMX funciona seg\u00fan estos principios, por lo que hay disponible un beneficio de accesibilidad.<\/li>\n<\/ul>\n<p>Adem\u00e1s, a diferencia de algunos frameworks m\u00e1s grandes, HTMX no requiere un proceso de construcci\u00f3n o una cadena de herramientas complejas. Combinado con una curva de aprendizaje mucho menor, integrar la biblioteca en tus proyectos es m\u00e1s f\u00e1cil.<\/p>\n<p>Estas ventajas, a su vez, conducen a un mayor debate y adopci\u00f3n de HTMX. Si buscas una soluci\u00f3n m\u00e1s sencilla para crear experiencias web interactivas, esta biblioteca podr\u00eda ser tu elecci\u00f3n.<\/p>\n<h2>La arquitectura de WordPress en relaci\u00f3n con JavaScript<\/h2>\n<p>La historia de WordPress con JavaScript cogi\u00f3 ritmo a partir del <a href=\"https:\/\/wordpress.tv\/2015\/12\/07\/matt-mullenweg-state-of-the-word-2015\/\">State of the Word 2015<\/a>, cuando Matt Mullenweg concluy\u00f3 con la frase: \u00abAprende JavaScript profundamente\u00bb.<\/p>\n<p>El camino t\u00edpico para los desarrolladores de WordPress era investigar la necesidad de componentes interactivos y din\u00e1micos en un sitio web. En la mayor\u00eda de los casos, <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-jquery\/\">jQuery<\/a> ha sido el framework JavaScript de WordPress. Incluso el popular\u00edsimo <a href=\"https:\/\/news.harvard.edu\/gazette\/\" target=\"_blank\" rel=\"noopener noreferrer\">sitio web Harvard Gazette<\/a> se basa en jQuery:<\/p>\n<figure id=\"attachment_182715\" aria-describedby=\"caption-attachment-182715\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182715 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/harvard-gazette.png\" alt=\"La p\u00e1gina de inicio de Harvard Gazette, con una gran imagen principal de una mujer mayor y una barra lateral de art\u00edculos de actualidad, con im\u00e1genes destacadas.\" width=\"1200\" height=\"750\"><figcaption id=\"caption-attachment-182715\" class=\"wp-caption-text\">El sitio web Harvard Gazette, que utiliza WordPress y jQuery para funcionar.<\/figcaption><\/figure>\n<p>Por eso, <a href=\"https:\/\/kinsta.com\/es\/blog\/wp-enqueue-scripts\/\"><u>WordPress utiliza jQuery<\/u><\/a> por defecto. Adem\u00e1s, muchas funciones del core, plugins y temas lo utilizan de manera generalizada. Este enfoque es coherente y est\u00e1 ampliamente soportado.<\/p>\n<figure id=\"attachment_182713\" aria-describedby=\"caption-attachment-182713\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182713 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/block-editor.png\" alt=\"La interfaz del Editor de Bloques de WordPress. A la izquierda hay una barra lateral con varias opciones de Bloque, como P\u00e1rrafo, T\u00edtulo, Lista y Tabla. El \u00e1rea de contenido principal muestra un Bloque de Tabla con n\u00fameros de versi\u00f3n y fechas de lanzamiento de WordPress, junto con opciones para subir archivos multimedia o acceder a la biblioteca multimedia. La interfaz tiene un dise\u00f1o limpio y moderno con fondo blanco.\" width=\"1200\" height=\"635\"><figcaption id=\"caption-attachment-182713\" class=\"wp-caption-text\">Mostrando la barra lateral de Bloques dentro del Editor de Bloques de WordPress.<\/figcaption><\/figure>\n<p>Sin embargo, a medida que evoluciona el desarrollo web, tambi\u00e9n lo hace el enfoque de WordPress respecto a JavaScript. La introducci\u00f3n del <a href=\"https:\/\/kinsta.com\/es\/blog\/gutenberg-wordpress-editor\/\">Editor de Bloques<\/a> vino acompa\u00f1ada de un cambio hacia el uso del <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-react-js\/\">framework React<\/a> para construir interfaces de usuario, especialmente en el panel de control de WordPress.<\/p>\n<h3>Ventajas e inconvenientes de utilizar la implementaci\u00f3n actual de JavaScript de WordPress<\/h3>\n<p>Esto significa que hay una mezcla de frameworks soportados en el core de WordPress. Esto tiene algunos puntos positivos y algunos inconvenientes. Primero, los puntos positivos:<\/p>\n<ul>\n<li>Existe una amplia compatibilidad tanto para React como para jQuery. Con el primero, es un framework potente y popular. Con el segundo, tiene una larga asociaci\u00f3n con WordPress.<\/li>\n<li>Muchos desarrolladores est\u00e1n familiarizados con los frameworks porque React y jQuery son populares. Adem\u00e1s, puedes encontrar m\u00e1s recursos para aprender y solucionar problemas de ambos.<\/li>\n<li>WordPress ofrece soporte integrado para AJAX a trav\u00e9s de <code>wp_ajax<\/code>.<\/li>\n<\/ul>\n<p>Sin embargo, estos pros tienen varios aspectos negativos que los equilibran:<\/p>\n<ul>\n<li><a href=\"https:\/\/make.wordpress.org\/themes\/2021\/10\/04\/the-performance-impact-of-using-jquery-in-wordpress-themes\/\" target=\"_blank\" rel=\"noopener noreferrer\">Depender de jQuery<\/a> afecta al rendimiento de tu sitio, y puede que no necesites el framework para algunas aplicaciones.<\/li>\n<li>No todas las caracter\u00edsticas y funcionalidades \u00abmodernas\u00bb de JavaScript est\u00e1n implementadas en WordPress por motivos de compatibilidad y seguridad. Esto podr\u00eda suponer un problema si hay algo en particular que te gustar\u00eda construir.<\/li>\n<li>Con la incorporaci\u00f3n de React a \u00e1reas de WordPress (como los editores de bloques y de sitios), tienes una curva de aprendizaje mayor que nunca.<\/li>\n<\/ul>\n<p>La arquitectura JavaScript actual de WordPress es adecuada si tienes conocimientos de desarrollo de los frameworks recomendados o tiempo para aprenderlos. Si no es as\u00ed, es probable que quieras una soluci\u00f3n que no tenga la complejidad de los frameworks t\u00edpicos, pero que proporcione una experiencia interactiva moderna en el front end. En este caso, HTMX deber\u00eda ser considerado.<\/p>\n<h2>Por qu\u00e9 HTMX podr\u00eda ser m\u00e1s adecuado para algunas tareas de desarrollo de WordPress<\/h2>\n<p>HTMX ofrece algunas ventajas convincentes cuando se trata del desarrollo de WordPress. Podr\u00eda proporcionar un punto intermedio entre la simplicidad de jQuery y la modernidad y rendimiento de React.<\/p>\n<p>Ya hemos hablado de algunos de estos aspectos, pero recapitulemos brevemente:<\/p>\n<ul>\n<li>El \u00abpeso\u00bb de HTMX puede tener un gran impacto en el rendimiento en comparaci\u00f3n con jQuery y React.<\/li>\n<li>La mayor\u00eda de los desarrolladores de WordPress se consideran m\u00e1s expertos en HTML y PHP que en JavaScript. HTMX presenta una barrera de entrada m\u00e1s f\u00e1cil a medida que trabajas con \u00e9l, como si fuera un lenguaje de marcado.<\/li>\n<li>PHP y HTMX tambi\u00e9n funcionar\u00e1n bien juntos, gracias a la renderizaci\u00f3n del lado del servidor, lo que de nuevo podr\u00eda tener un impacto positivo en el rendimiento.<\/li>\n<li>A pesar de ser una biblioteca \u00abm\u00e1s nueva\u00bb, puedes integrar HTMX con mayor facilidad y ponerte al d\u00eda sobre su funcionamiento. Esto beneficiar\u00e1 a tu flujo de trabajo.<\/li>\n<\/ul>\n<p>Para el desarrollo de WordPress, tambi\u00e9n nos gusta la facilidad con la que puedes crear prototipos de nuevas funcionalidades para un sitio. Puedes crear r\u00e1pidamente nuevas funciones complejas programando dentro del HTML existente. A partir de ah\u00ed, tienes la flexibilidad de a\u00f1adir componentes React o un poco de jQuery cuando sea necesario.<\/p>\n<p>Los principios de mejora progresiva de HTMX tambi\u00e9n son atractivos. La accesibilidad debe ser fundamental en tu estrategia de dise\u00f1o, y HTMX puede permitirte construir interactividad sin romperla para quienes eligen desactivar JavaScript en el navegador.<\/p>\n<p>Por \u00faltimo, una ventaja significativa de HTMX es que no requiere ninguna configuraci\u00f3n personalizada o especial del lado del servidor. Puedes utilizar tu marcado HTMX con cualquier alojamiento, incluido <a href=\"https:\/\/kinsta.com\/es\/\">Kinsta<\/a>.<\/p>\n<figure id=\"attachment_182719\" aria-describedby=\"caption-attachment-182719\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182719 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/kinsta-website.png\" alt=\"La p\u00e1gina de inicio de Kinsta muestra el panel de control de MyKinsta. Incluye detalles b\u00e1sicos como la ubicaci\u00f3n (B\u00e9lgica) y el nombre del sitio, detalles del entorno con direcciones IP, informaci\u00f3n sobre la conexi\u00f3n SFTP\/SSH y dos gr\u00e1ficos. Un gr\u00e1fico muestra las visitas al sitio a lo largo del tiempo, y el otro muestra el tiempo total de transacci\u00f3n desglosado por componentes tecnol\u00f3gicos.\" width=\"1200\" height=\"704\"><figcaption id=\"caption-attachment-182719\" class=\"wp-caption-text\">La p\u00e1gina de inicio de Kinsta mostrando el panel MyKinsta.<\/figcaption><\/figure>\n<p>Dado el rendimiento de calidad de nuestros servicios de alojamiento, un sitio que utilice HTMX deber\u00eda ir viento en popa. Esto repercutir\u00e1 en tus m\u00e9tricas SEO, en las cifras de tr\u00e1fico, en el tiempo de desarrollo, en el flujo de trabajo de resoluci\u00f3n de problemas y en toda la cadena de desarrollo.<\/p>\n<h2>Casos de uso t\u00edpicos de HTMX<\/h2>\n<p>Te lo hemos adelantado en la \u00faltima secci\u00f3n, pero HTMX no ser\u00e1 una biblioteca que utilices como sustituto directo de ninguno de los frameworks de JavaScript m\u00e1s conocidos. Por el contrario, funcionar\u00e1 mejor junto a lo que ya existe para ayudar a soportar la carga cuando sea necesario.<\/p>\n<p>Esto significa que emplear\u00e1s HTMX para ciertas tareas para las que jQuery y React pueden no ser \u00f3ptimas. Antes de sumergirnos en la implementaci\u00f3n de HTMX en WordPress, vamos a exponer tres escenarios comunes en los que la biblioteca podr\u00eda mejorar WordPress.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"3\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Recargas parciales de p\u00e1gina<\/h3>\n<p>El gran caso de uso de HTMX es c\u00f3mo puedes implementar actualizaciones parciales de p\u00e1gina con el m\u00ednimo esfuerzo. Esto podr\u00eda ser muy importante para muchos desarrolladores, especialmente para maquetas y prototipos r\u00e1pidos. Sin embargo, HTMX podr\u00eda ofrecer resultados con calidad de producci\u00f3n.<\/p>\n<p>Por ejemplo, podr\u00eda ayudarte a implementar la funcionalidad de b\u00fasqueda en tiempo real en tu sitio:<\/p>\n<figure id=\"attachment_182721\" aria-describedby=\"caption-attachment-182721\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182721 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/live-search.gif\" alt=\"Un GIF de un cuadro de di\u00e1logo de b\u00fasqueda din\u00e1mica utilizando HTMX con un fondo oscuro. Muestra una tabla de contactos, con nombres, apellidos y direcciones de correo electr\u00f3nico de varias personas. La tabla incluye 10 filas de informaci\u00f3n de contacto de muestra.\" width=\"1200\" height=\"370\"><figcaption id=\"caption-attachment-182721\" class=\"wp-caption-text\">Una interfaz de b\u00fasqueda din\u00e1mica en tiempo real utilizando HTMX.<\/figcaption><\/figure>\n<p>La <a href=\"https:\/\/htmx.org\/examples\/\" target=\"_blank\" rel=\"noopener noreferrer\">biblioteca de ejemplos<\/a> HTMX tambi\u00e9n se adentra en la metodolog\u00eda para llevar a cabo actualizaciones en tiempo real en otras \u00e1reas de contenido dentro de la p\u00e1gina. Por ejemplo, <a href=\"https:\/\/htmx.org\/examples\/update-other-content\/\" target=\"_blank\" rel=\"noopener noreferrer\">su ejemplo<\/a> utiliza un formulario de contacto con una tabla de contactos disponibles que se actualizar\u00eda una vez que el usuario enviara una nueva incorporaci\u00f3n. HTMX tiene varias formas elegantes de conseguirlo:<\/p>\n<pre><code class=\"language-html\">&lt;div id=\"table-and-form\"&gt;\n    &lt;h2&gt;Contacts&lt;\/h2&gt;\n    &lt;table class=\"table\"&gt;\n      &lt;thead&gt;\n        &lt;tr&gt;\n          &lt;th&gt;Name&lt;\/th&gt;\n          &lt;th&gt;Email&lt;\/th&gt;\n          &lt;th&gt;&lt;\/th&gt;\n        &lt;\/tr&gt;\n      &lt;\/thead&gt;\n      &lt;tbody id=\"contacts-table\"&gt;\n\n        ...\n\n      &lt;\/tbody&gt;\n    &lt;\/table&gt;\n\n    &lt;h2&gt;Add A Contact&lt;\/h2&gt;\n\n    &lt;form hx-post=\"\/contacts\" hx-target=\"#table-and-form\"&gt;\n      &lt;label&gt;\n        Name\n            &lt;input name=\"name\" type=\"text\"&gt;  \n      &lt;\/label&gt;\n\n      &lt;label&gt;\n        Email\n            &lt;input name=\"email\" type=\"email\"&gt;  \n      &lt;\/label&gt;\n    &lt;\/form&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n<p>El formulario utiliza los atributos <code>hx-post<\/code> y <code>hx-target<\/code> para ampliar su objetivo. Tambi\u00e9n podr\u00edas utilizar atributos HTMX para <a href=\"https:\/\/htmx.org\/examples\/file-upload-input\/\" target=\"_blank\" rel=\"noopener noreferrer\">conservar las entradas del formulario<\/a> tras un error u otro intento de validaci\u00f3n que utilice actualizaciones:<\/p>\n<pre><code class=\"language-html\">&lt;input form=\"binaryForm\" type=\"file\" name=\"binaryFile\"&gt;\n\n&lt;form method=\"POST\" id=\"binaryForm\" enctype=\"multipart\/form-data\" hx-swap=\"outerHTML\" hx-target=\"#binaryForm\"&gt;\n    &lt;button type=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;\n<\/code><\/pre>\n<p>Aqu\u00ed, colocas la entrada del archivo binario fuera del elemento principal del formulario y utilizas los atributos <code>hx-swap<\/code> y <code>hx-target<\/code>.<\/p>\n<h3>Carga din\u00e1mica<\/h3>\n<p>Este enfoque de la actualizaci\u00f3n y carga din\u00e1micas tambi\u00e9n puede ser adecuado para tareas m\u00e1s comunes. Por ejemplo, el <a href=\"https:\/\/htmx.org\/examples\/infinite-scroll\/\" target=\"_blank\" rel=\"noopener noreferrer\">desplazamiento infinito<\/a>:<\/p>\n<pre><code class=\"language-html\">&lt;tr hx-get=\"\/contacts\/?page=2\"\n    hx-trigger=\"revealed\"\n    hx-swap=\"afterend\"&gt;\n  &lt;td&gt;Agent Smith&lt;\/td&gt;\n  &lt;td&gt;void29@null.org&lt;\/td&gt;\n  &lt;td&gt;55F49448C0&lt;\/td&gt;\n&lt;\/tr&gt;\n<\/code><\/pre>\n<p>El atributo <code>hx-swap<\/code> act\u00faa como \u00ablistener\u00bb (oyente) del atributo <code>hx-trigger<\/code>. Cuando un usuario llegue al final de la lista, HTMX cargar\u00e1 la segunda p\u00e1gina de contactos de forma infinita.<\/p>\n<p>Tambi\u00e9n podr\u00edas aplicar el mismo m\u00e9todo a la funcionalidad de <a href=\"https:\/\/htmx.org\/examples\/lazy-load\/\" target=\"_blank\" rel=\"noopener noreferrer\">carga perezosa<\/a>:<\/p>\n<figure id=\"attachment_182720\" aria-describedby=\"caption-attachment-182720\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182720 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/lazy-loading-gif.gif\" alt=\"Un GIF de una p\u00e1gina web de fondo oscuro, que implementa la carga perezosa. El GIF comienza con una peque\u00f1a animaci\u00f3n de carga, a partir de la cual se desvanece una imagen gr\u00e1fica a medida que el usuario se desplaza por la p\u00e1gina.\" width=\"1200\" height=\"282\"><figcaption id=\"caption-attachment-182720\" class=\"wp-caption-text\">Utilizar HTMX para implementar la carga perezosa.<\/figcaption><\/figure>\n<p>Esto utiliza de nuevo los atributos <code>hx-get<\/code> y <code>hx-trigger<\/code> para iniciar una transici\u00f3n de asentamiento htmx para cargar el gr\u00e1fico utilizando un fundido lento.<\/p>\n<h3>Presentaci\u00f3n de datos<\/h3>\n<p>No deber\u00eda sorprender que el HTMX sea excelente para presentar informaci\u00f3n en pantalla utilizando elementos interactivos o din\u00e1micos.<\/p>\n<p>Por ejemplo, puedes implementar todos los tipos de filtrado de contenidos, como las <a href=\"https:\/\/htmx.org\/examples\/value-select\/\" target=\"_blank\" rel=\"noopener noreferrer\">selecciones de valores<\/a>. En este caso, las opciones de una lista se rellenan en funci\u00f3n de las de otra:<\/p>\n<figure id=\"attachment_182723\" aria-describedby=\"caption-attachment-182723\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182723 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/value-select-gif.gif\" alt=\"GIF de una interfaz de usuario que muestra un men\u00fa desplegable para seleccionar una marca y un modelo de coche. El t\u00edtulo dice \"Elige una marca\/modelo\" y las opciones visibles son Audi (que est\u00e1 seleccionada), Toyota y BMW. El usuario recorre cada Marca, lo que cambia las opciones del men\u00fa desplegable Modelo.\" width=\"1200\" height=\"374\"><figcaption id=\"caption-attachment-182723\" class=\"wp-caption-text\">Utilizar HTMX para asignar selecciones de valor a elementos del sitio.<\/figcaption><\/figure>\n<p>Incluso podr\u00edas configurar <a href=\"https:\/\/htmx.org\/examples\/modal-bootstrap\/\" target=\"_blank\" rel=\"noopener noreferrer\">cuadros de di\u00e1logos modales<\/a> o pesta\u00f1as de interfaz con la misma facilidad. Esto tambi\u00e9n muestra c\u00f3mo funciona HTMX junto con otras bibliotecas y frameworks, como Bootstrap:<\/p>\n<figure id=\"attachment_182722\" aria-describedby=\"caption-attachment-182722\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182722 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/modal-box-gif.gif\" alt=\"Un GIF de una secci\u00f3n de p\u00e1gina web de tem\u00e1tica ligera titulada \"Demo\" con un icono de enlace y un bot\u00f3n titulado \"ABRIR MODAL\" en may\u00fasculas. Cuando el usuario pulsa el bot\u00f3n, se abre un cuadro modal utilizando HTMX.\" width=\"1200\" height=\"250\"><figcaption id=\"caption-attachment-182722\" class=\"wp-caption-text\">Abrir un cuadro de di\u00e1logo modal con HTMX.<\/figcaption><\/figure>\n<p>Esta flexibilidad se extiende tambi\u00e9n a la implementaci\u00f3n de pesta\u00f1as. Hay dos formas de hacerlo: combinando <a href=\"https:\/\/htmx.org\/examples\/tabs-javascript\/\" target=\"_blank\" rel=\"noopener noreferrer\">JavaScript vanilla<\/a> y HTMX o utilizando los principios del <a href=\"https:\/\/htmx.org\/examples\/tabs-hateoas\/\" target=\"_blank\" rel=\"noopener noreferrer\">Hipertexto Como Motor del Estado de la Aplicaci\u00f3n (HATEOAS)<\/a>:<\/p>\n<figure id=\"attachment_182714\" aria-describedby=\"caption-attachment-182714\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182714 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/content-tabs.gif\" alt=\"Un GIF de una interfaz con pesta\u00f1as HTMX con tres pesta\u00f1as etiquetadas como \"Pesta\u00f1a 1\", \"Pesta\u00f1a 2\" y \"Pesta\u00f1a 3\". El usuario se desplaza entre cada pesta\u00f1a, que muestra diferentes p\u00e1rrafos de texto \"Lorem Ipsum\". La interfaz tiene un fondo oscuro con texto blanco, lo que le da un aspecto elegante y moderno.\" width=\"1200\" height=\"208\"><figcaption id=\"caption-attachment-182714\" class=\"wp-caption-text\">GIF de una interfaz con pesta\u00f1as utilizando HTMX.<\/figcaption><\/figure>\n<p>Hay muchas m\u00e1s formas de utilizar HTMX para los elementos front-end del sitio, con su core en el lado del servidor. En la siguiente secci\u00f3n, te daremos las herramientas para crear tu propia visi\u00f3n dentro de WordPress.<\/p>\n<h2>C\u00f3mo integrar HTMX en WordPress<\/h2>\n<p>Si quieres a\u00f1adir HTMX a tu sitio web de WordPress, la buena noticia es que es r\u00e1pido y sencillo. A continuaci\u00f3n, veremos un enfoque de tres pasos para hacerlo. No abordaremos todo el proceso y el c\u00f3digo para desarrollar la funcionalidad para WordPress, aunque s\u00ed abordaremos todos los puntos clave que debes seguir.<\/p>\n<p>Adem\u00e1s, gran parte del proceso, especialmente el primer paso, deber\u00eda ser habitual si ya has desarrollado para WordPress.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"3\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Agrega HTMX a tu c\u00f3digo PHP<\/h3>\n<p>Como con cualquier script adicional para WordPress, debes incluir la biblioteca HTMX en el c\u00f3digo de tu tema o plugin.<\/p>\n<pre><code class=\"language-php\">wp_enqueue_script('htmx-script', 'https:\/\/unpkg.com\/htmx.org@2.0.0\/dist\/htmx.min.js', array(), '2.0.0', true);\n<\/code><\/pre>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>La gu\u00eda de inicio r\u00e1pido de HTMX llama a la biblioteca desde una Red de Entrega de Contenidos (CDN). Debes decidir si esto es una buena idea para tu proyecto.<\/p>\n<\/aside>\n\n<figure id=\"attachment_182717\" aria-describedby=\"caption-attachment-182717\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182717 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/htmx-quick-start.png\" alt=\"Un fragmento de c\u00f3digo de la gu\u00eda de inicio r\u00e1pido de HTMX. Muestra una sola l\u00ednea de c\u00f3digo HTML que incluye una etiqueta script para cargar la biblioteca HTMX desde una fuente externa. El c\u00f3digo est\u00e1 resaltado en naranja para llamar la atenci\u00f3n sobre \u00e9l. Debajo de la etiqueta script hay un ejemplo de un elemento de bot\u00f3n HTML que utiliza atributos HTMX. El c\u00f3digo se muestra sobre un fondo oscuro con resaltado de sintaxis.\" width=\"1200\" height=\"257\"><figcaption id=\"caption-attachment-182717\" class=\"wp-caption-text\">Aseg\u00farate de que utilizas la \u00faltima versi\u00f3n de HTMX, y ten en cuenta que la gu\u00eda de inicio r\u00e1pido llama a la biblioteca desde una CDN, lo que puede no ser adecuado para tu proyecto.<\/figcaption><\/figure>\n<p>Sin embargo, una idea objetivamente buena es envolver esta carga dentro de una funci\u00f3n que tambi\u00e9n a\u00f1ada y <a href=\"https:\/\/kinsta.com\/es\/blog\/patrones-de-bloques-wordpress\/\">registre un Bloque<\/a> en WordPress. Por supuesto, esto depende de si tu proyecto requiere trabajar con el Editor de Bloques.<\/p>\n<p>La parte final para cargar HTMX es invocar la funci\u00f3n completa utilizando <code>add_action<\/code>. Tendr\u00e1s que volver a utilizar <a href=\"https:\/\/kinsta.com\/es\/blog\/wordpress-hooks\/\">hooks y filtros<\/a> m\u00e1s adelante cuando trabajes con peticiones AJAX.<\/p>\n<h3>2. A\u00f1adir elementos HTMX a tus archivos de plantilla de WordPress<\/h3>\n<p>A partir de nuestros casos de uso, ver\u00e1s que HTMX requiere el marcado adecuado dentro del HTML para gestionar y activar las peticiones AJAX. La biblioteca utiliza los t\u00edpicos <a href=\"https:\/\/kinsta.com\/es\/blog\/javascript-peticion-http\/\">atributos de petici\u00f3n HTTP<\/a> para crear los suyos propios &#8211; <code>GET<\/code>, <code>POST<\/code>, <code>PUSH<\/code>, <code>PATCH<\/code>, y <code>DELETE<\/code> &#8211; con un prefijo <code>hx-<\/code>:<\/p>\n<pre><code class=\"language-html\">hx-post\n<\/code><\/pre>\n<p>Las peticiones AJAX de WordPress utilizan el endpoint <strong>admin-ajax. php<\/strong>, \u00a1que debes recordar! Los elementos t\u00edpicos que crear\u00e1s con HTMX realizar\u00e1n una petici\u00f3n AJAX, la enviar\u00e1n a un elemento de destino y, potencialmente, procesar\u00e1n un trigger.<\/p>\n<p>El atributo <code>hx-target<\/code> te permite especificar a d\u00f3nde ir\u00e1 el resultado de tu solicitud. Puede ser otra p\u00e1gina, un <code>div<\/code> espec\u00edfico o cualquier otra cosa. Piensa en ello como en las etiquetas de anclaje de HTML:<\/p>\n<pre><code class=\"language-html\">&lt;input type=\"search\"\n        name=\"search\" placeholder=\"Search...\"\n        hx-post=\"&lt;?php echo admin_url('admin-ajax.php'); ?&gt;?action=live_search\"\n        hx-target=\"#search-results\"\n        \u2026<\/code><\/pre>\n<p>HTMX utiliza \u00abnatural\u00bb y \u00abno natural\u00bb para definir una acci\u00f3n. Por ejemplo, <code>submit<\/code> activar\u00e1 un formulario, y esto es un evento de elemento natural. Para los eventos de elementos no naturales, utilizar\u00e1s el atributo <code>hx-trigger<\/code>. <a href=\"https:\/\/htmx.org\/docs\/#triggers\" target=\"_blank\" rel=\"noopener noreferrer\">Estos <\/a><a href=\"https:\/\/htmx.org\/docs\/#triggers\" target=\"_blank\" rel=\"noopener noreferrer\">triggers<\/a>\u00a0pueden ser una de las partes m\u00e1s complejas de HTMX, aunque siguen siendo sencillos de entender.<\/p>\n<p>Por ejemplo, podr\u00edas utilizar un trigger para controlar un campo de entrada:<\/p>\n<pre><code class=\"language-html\">\u2026\nhx-post=\"&lt;?php echo admin_url('admin-ajax.php'); ?&gt;?action=live_search\"\nhx-target=\"#search-results\"\nhx-trigger=\"input changed delay:500ms, search\"\nhx-indicator=\".htmx-indicator\"&gt;\n\u2026<\/code><\/pre>\n<p>Cambiar lo que haya en un campo de entrada desencadenar\u00e1 una actualizaci\u00f3n en otra parte de la p\u00e1gina. Otro ejemplo: podr\u00edas querer desencadenar un evento una sola vez bas\u00e1ndote en una acci\u00f3n at\u00edpica, como la entrada del cursor en una parte de la pantalla:<\/p>\n<pre><code class=\"language-html\">&lt;div hx-post=\"\/mouse_entered\" hx-trigger=\"mouseenter once\"&gt;\n    [Here Mouse, Mouse!]\n&lt;\/div&gt;\n<\/code><\/pre>\n<p>Esto podr\u00eda inspirarte para crear aplicaciones como <a href=\"https:\/\/kinsta.com\/es\/blog\/popups-elementor\/\">ventanas emergentes<\/a> u otros cuadros de di\u00e1logos modales. Sin embargo, antes de que puedas verlas en acci\u00f3n, tienes que procesar la petici\u00f3n AJAX.<\/p>\n<h3>3. Gestionar las peticiones AJAX<\/h3>\n<p>Por \u00faltimo, tienes que gestionar la petici\u00f3n AJAX en el lado del servidor. Para WordPress, es una pr\u00e1ctica beneficiosa almacenar todo esto en un archivo separado. Puedes llamarlo como quieras, pero <strong>ajax-functions.php<\/strong> es suficientemente descriptivo y claro.<\/p>\n<p>Esta parte del uso de HTMX requerir\u00e1 que pongas a <a href=\"https:\/\/kinsta.com\/es\/blog\/php-tutoriales\/\">prueba tus conocimientos de PHP<\/a>. El procesamiento de tus peticiones AJAX ser\u00e1 \u00fanico para tu proyecto en particular. Es donde enlazas los atributos que nombras en tus archivos de plantilla con el procesamiento del lado del servidor.<\/p>\n<p>Por supuesto, deber\u00edas hacer esto de todos modos, independientemente de si programas con HTMX, JavaScript vainilla u otra cosa. Aqu\u00ed tienes un pseudoc\u00f3digo que muestra c\u00f3mo quedar\u00eda:<\/p>\n<pre><code class=\"language-html\">function my_search_action() {\n    $search_term = sanitize_text_field( $_POST['search'] );\n\n    $args = array(\n        's' =&gt; $search_term,\n        'post_type' =&gt; 'post',\n        'posts_per_page' =&gt; 5\n    );\n\n    $query = new WP_Query( $args );\n\n    if ( $query-&gt;have_posts() ) :\n        while ( $query-&gt;have_posts() ) : $query-&gt;the_post();\n            echo '&lt;h2&gt;' . get_the_title() . '&lt;\/h2&gt;';\n            echo '&lt;p&gt;' . get_the_excerpt() . '&lt;\/p&gt;';\n        endwhile;\n    else:\n        echo 'No results found.';\n    endif;\n\n    wp_reset_postdata();\n\n    wp_die();\n}\n<\/code><\/pre>\n<p>Aun as\u00ed, puede que esto no sea relevante o ni siquiera se parezca a la gesti\u00f3n AJAX de tu propio proyecto. Las mismas habilidades que utilizar\u00e1s para <a href=\"https:\/\/kinsta.com\/es\/blog\/plantillas-de-bloques-wordpress\/\">crear plantillas de Bloque<\/a>, <a href=\"https:\/\/kinsta.com\/es\/blog\/plugin-extensible-wordpress\/\">ampliar plugins<\/a> utilizando PHP, etc., te ayudar\u00e1n a crear tus propios manejadores y funciones de peticiones AJAX.<\/p>\n<h2>Consejos para utilizar HTMX con WordPress<\/h2>\n<p>Aunque utilizar HTMX es una de las formas m\u00e1s sencillas de implementar contenido din\u00e1mico con WordPress, sigue necesitando una gesti\u00f3n y una atenci\u00f3n minuciosas. Tambi\u00e9n hay algunas formas de mejorar tu experiencia de desarrollo.<\/p>\n<p>El primer consejo est\u00e1 relacionado con la \u00abmadurez\u00bb de HTMX. Ahora mismo, es una biblioteca nueva para la plataforma, por lo que no tiene el mismo nivel de integraci\u00f3n que jQuery, por ejemplo.<\/p>\n<p>HTMX tiene una gran documentaci\u00f3n, pero no hay tantos recursos para combinar la biblioteca con WordPress. Esto significa que tendr\u00e1s que ponerte manos a la obra para hacer que las cosas funcionen sin la red de seguridad de una comunidad preparada.<\/p>\n<p>Uno de los grandes consejos que podemos darte es que, de momento, incorpores tu funcionalidad <a href=\"https:\/\/kinsta.com\/es\/blog\/directorio-de-plugins-de-wordpress\/\">dentro de un plugin<\/a>. Esto puede proporcionarte una estructura y una gesti\u00f3n m\u00e1s sencilla mientras compruebas si hay bugs u otros errores de integraci\u00f3n.<\/p>\n<p>Ya que hablamos de WordPress, intenta comprender c\u00f3mo se conecta el archivo <strong>admin-ajax.php<\/strong> con el resto del ecosistema, ya que muchas interacciones lo involucrar\u00e1n.<\/p>\n<figure id=\"attachment_182712\" aria-describedby=\"caption-attachment-182712\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182712 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/admin-ajax.png\" alt=\"Una ventana del editor de c\u00f3digo que muestra el c\u00f3digo PHP de un archivo admin-ajax.php de WordPress. El c\u00f3digo incluye comentarios y funciones para cargar el c\u00f3digo bootstrap de WordPress, gestionar peticiones entre dominios, establecer cabeceras y cargar las API de administraci\u00f3n de WordPress y los manejadores Ajax. El editor tiene un tema oscuro con resaltado de sintaxis azul claro.\" width=\"1200\" height=\"814\"><figcaption id=\"caption-attachment-182712\" class=\"wp-caption-text\">El archivo admin-ajax.php dentro de un editor de c\u00f3digo.<\/figcaption><\/figure>\n<p>Aunque HTMX tiene un gran rendimiento, debes asegurarte de que el <a href=\"https:\/\/kinsta.com\/es\/blog\/admin-ajax\/\">uso de AJAX<\/a> sea lo suficientemente bajo como para que no afecte a la velocidad de carga de tu sitio ni al SEO. La depuraci\u00f3n de peticiones tambi\u00e9n debe ser un elemento b\u00e1sico de tu flujo de trabajo, especialmente las m\u00e9tricas <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/XMLHttpRequest\" target=\"_blank\" rel=\"noopener noreferrer\">XMLHttpRequest (XHR)<\/a> dentro de las herramientas de desarrollo de tu navegador.<\/p>\n<figure id=\"attachment_182724\" aria-describedby=\"caption-attachment-182724\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182724 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/07\/xhr-metrics.png\" alt=\"La interfaz DevTools del navegador Brave, que muestra el sitio web de WordPress en la parte superior. Incluye un texto que lo describe como \"La plataforma de publicaci\u00f3n de c\u00f3digo abierto elegida por millones de sitios web de todo el mundo\" y una miniatura de v\u00eddeo sobre WordCamp Europe 2024. La consola de desarrollador muestra las peticiones XHR para el sitio.\" width=\"1200\" height=\"630\"><figcaption id=\"caption-attachment-182724\" class=\"wp-caption-text\">Las peticiones Fetch\/XHR del sitio web WordPress.org.<\/figcaption><\/figure>\n<p>Este es el registro de los datos de solicitud y respuesta, que utilizar\u00e1s para depurar las solicitudes AJAX y las llamadas a la Interfaz de Programaci\u00f3n de Aplicaciones (API). Dado que HTMX a\u00fan no tiene una estrecha integraci\u00f3n con WordPress, la depuraci\u00f3n puede ser una tarea m\u00e1s pertinente de lo que ser\u00eda con otros frameworks de JavaScript.<\/p>\n<h2>Resumen<\/h2>\n<p>Para los desarrolladores de WordPress que deseen crear elementos de sitio din\u00e1micos e interactivos sin que los complejos frameworks de JavaScript dominen su tiempo, <a href=\"https:\/\/htmx.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">HTMX <\/a>trae una propuesta muy interesante. Te permite construir dentro de HTML y ofrece una alternativa ligera a jQuery y React, sin dejar de ofrecerte una interactividad moderna.<\/p>\n<p>En la pr\u00e1ctica, utilizar\u00e1s HTMX junto a esos otros frameworks, ya que no ser\u00e1 adecuado para todas las tareas. A\u00fan as\u00ed, es sencillo de implementar y te ofrece una forma r\u00e1pida de crear prototipos de los elementos interactivos de tu sitio, e incluso podr\u00eda convertirse en tu versi\u00f3n de producci\u00f3n.<\/p>\n<p>\u00bfTe parece que HTMX y WordPress son un binomio tentador? Danos tu opini\u00f3n en la secci\u00f3n de comentarios m\u00e1s abajo<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aunque hay muchos lenguajes de programaci\u00f3n aceptables, el desarrollo web se est\u00e1 asentando en unas cuantas tecnolog\u00edas fiables. Esto es especialmente cierto en el caso de &#8230;<\/p>\n","protected":false},"author":199,"featured_media":75835,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1345,1296],"class_list":["post-75834","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-desarrollo-wordpress","topic-frameworks-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Potenciando WordPress con HTMX - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Potenciando WordPress con HTMX: c\u00f3mo mejorar la plataforma sin frameworks complejos\" \/>\n<meta property=\"og:description\" content=\"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-19T13:01:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-29T10:41:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx-1024x512.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Potenciando WordPress con HTMX: c\u00f3mo mejorar la plataforma sin frameworks complejos\",\"datePublished\":\"2024-07-19T13:01:38+00:00\",\"dateModified\":\"2024-07-29T10:41:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/\"},\"wordCount\":3462,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/\",\"name\":\"Potenciando WordPress con HTMX - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg\",\"datePublished\":\"2024-07-19T13:01:38+00:00\",\"dateModified\":\"2024-07-29T10:41:38+00:00\",\"description\":\"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Desarrollo WordPress\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/desarrollo-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Potenciando WordPress con HTMX: c\u00f3mo mejorar la plataforma sin frameworks complejos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Potenciando WordPress con HTMX - Kinsta\u00ae","description":"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!","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:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/","og_locale":"es_ES","og_type":"article","og_title":"Potenciando WordPress con HTMX: c\u00f3mo mejorar la plataforma sin frameworks complejos","og_description":"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!","og_url":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2024-07-19T13:01:38+00:00","article_modified_time":"2024-07-29T10:41:38+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx-1024x512.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Jeremy Holcombe","Tiempo de lectura":"19 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Potenciando WordPress con HTMX: c\u00f3mo mejorar la plataforma sin frameworks complejos","datePublished":"2024-07-19T13:01:38+00:00","dateModified":"2024-07-29T10:41:38+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/"},"wordCount":3462,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/","url":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/","name":"Potenciando WordPress con HTMX - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg","datePublished":"2024-07-19T13:01:38+00:00","dateModified":"2024-07-29T10:41:38+00:00","description":"Los frameworks de JavaScript pueden ser complejos, lo que no es ideal para el dise\u00f1o web. \u00a1Descubre c\u00f3mo la biblioteca HTMX puede ser la forma de implementar JavaScript!","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/07\/supercharging-wordpress-with-htmx.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-htmx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Desarrollo WordPress","item":"https:\/\/kinsta.com\/es\/secciones\/desarrollo-wordpress\/"},{"@type":"ListItem","position":3,"name":"Potenciando WordPress con HTMX: c\u00f3mo mejorar la plataforma sin frameworks complejos"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/75834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=75834"}],"version-history":[{"count":11,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/75834\/revisions"}],"predecessor-version":[{"id":75993,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/75834\/revisions\/75993"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/translations\/es"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/75834\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/75835"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=75834"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=75834"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=75834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}