Remixando WordPress: Construyendo un Sitio Headless con Remix, WPGraphQL y Fundamentos Web

Rate this content
Bookmark

Una de las principales ventajas de la arquitectura headless o desacoplada de WordPress es que podemos mezclar infinitamente el CMS de WordPress que los creadores de contenido aman con lo último y mejor de la tecnología web. Esta presentación demostrará lo rápido que un desarrollador puede comenzar a trabajar con el desarrollo de WordPress headless utilizando el framework completo de Remix. Utilizando herramientas de código abierto como WPGraphQL y Atlas Content Modeler, puedes transformar tu sitio de WordPress en un potente CMS headless que sirve datos a través de GraphQL. Veremos cómo podemos consultar y utilizar esos datos en una aplicación de Remix, y también discutiremos cómo el enfoque del framework en los fundamentos web puede beneficiar tanto al desarrollador como a los visitantes que utilizan nuestros sitios.

FAQ

Un WordPress headless es una versión de WordPress que funciona como backend solo, sin la parte frontal tradicional. En su lugar, se maneja la interfaz de usuario a través de otras tecnologías de frontend, permitiendo a los desarrolladores más flexibilidad y control sobre la presentación y la interactividad del sitio.

Un desarrollador se beneficia de WordPress headless al tener más libertad para elegir tecnologías frontend como frameworks de JavaScript (React, Vue, etc.), lo que permite crear experiencias de usuario más ricas y personalizadas, mejor desempeño y optimización del sitio.

WP GraphQL es un plugin que transforma WordPress en una API GraphQL, permitiendo que los datos de WordPress sean fácilmente accesibles y manipulables a través de consultas GraphQL, lo que facilita la integración con aplicaciones modernas de frontend.

Remix es un framework moderno de JavaScript que se utiliza para construir aplicaciones web. En el contexto de WordPress headless, Remix puede actuar como el entorno de ejecución frontend, interactuando con WordPress a través de APIs como WP GraphQL para gestionar y mostrar contenido dinámicamente.

Atlas Content Modeler es un plugin para WordPress que permite a los usuarios crear y gestionar tipos de contenido personalizados en un entorno headless. Facilita la creación de modelos de contenido complejos que son inmediatamente accesibles a través de GraphQL.

Para crear un modelo de contenido con Atlas Content Modeler, primero se instala el plugin, luego se accede al panel de administración de WordPress para crear nuevos tipos de contenido especificando detalles como nombre, visibilidad de API, icono y descripción. Estos modelos luego se integran automáticamente con WP GraphQL.

Apollo Client es una librería completa de gestión de datos que facilita la comunicación entre interfaces de usuario de React y APIs GraphQL como WP GraphQL. En proyectos de WordPress headless, Apollo Client permite realizar consultas y mutaciones a WordPress de manera eficiente y optimizada.

En un proyecto de WordPress headless utilizando Remix, Apollo Client se configura dentro del proyecto para manejar las consultas GraphQL a WordPress. Se crea un archivo en Remix que configura Apollo Client y luego se usa para hacer consultas que alimentan componentes con datos de WordPress.

Jeff Everhart
Jeff Everhart
21 min
21 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

En esta Charla, se discute el concepto de WordPress headless y sus beneficios para los desarrolladores. Se destaca el uso de frameworks front-end como Remix, Nuxt, Next o SvelteKit para interactuar con WordPress a través de las APIs REST o GraphQL. Se explica el proceso de creación de modelos de contenido, agregado de datos y consulta del esquema GraphQL. Se cubre la configuración de una aplicación básica de Remix con Apollo Client y la carga de datos en los componentes de ruta utilizando Remix. También se explora el manejo de enrutamiento dinámico con Remix y WordPress.

1. Introducción a Headless WordPress

Short description:

En esta parte, discutimos el concepto de Headless WordPress y sus beneficios para los desarrolladores. Comparamos WordPress tradicional con Headless WordPress, destacando la flexibilidad que ofrece. También mencionamos el uso de frameworks front-end como Remix, Nuxt, Next o SvelteKit para interactuar con WordPress a través de las APIs REST o GraphQL. El beneficio final es que la experiencia para los creadores de contenido sigue siendo la misma, mientras que los desarrolladores pueden aprovechar las ventajas de los modernos frameworks front-end. Luego pasamos a construir un sitio Headless utilizando herramientas de desarrollo local e instalando los plugins necesarios como WP GraphQL y Atlas Content Modeler.

¡Hola, React Summit! Mi nombre es Jeff Eberhardt, y soy un Senior Developer Advocate en WP Engine. El título de mi charla de hoy es Remixing WordPress, donde vamos a pasar unos 20 minutos construyendo un sitio headless con Remix, WP GraphQL, y algunos otros plugins open-source.

Pero antes de empezar, tal vez podríamos hablar en términos generales sobre qué es headless WordPress. Con el aumento de las arquitecturas JAMstack, vemos una gran cantidad de ofertas de SaaS en el espacio de los CMS headless. Pero si estás buscando una alternativa open-source, mucha gente no sabe que WordPress también puede convertirse en un CMS headless. Y con WordPress siendo el sistema de gestión de contenido más popular, que alimenta aproximadamente el 40% de la web en el momento de esta grabación, es probable que tus equipos de contenido ya estén familiarizados con la plataforma de WordPress. Así que puede haber muchas razones para considerar esto como una opción.

Entonces, tomemos un segundo y hablemos sobre lo que nos ofrece el WordPress tradicional. El WordPress tradicional es tu plataforma de software monolítica básica. El visitante interactúa tal vez con un CDN al escribir una URL en la barra de su navegador. En última instancia, todas esas solicitudes son atendidas por el núcleo de WordPress. Cualquier experiencia de desarrollo que necesite ocurrir, ya sea de temas o desarrollo de plugins, ocurre directamente con ese software del núcleo de WordPress, al igual que las interacciones de los editores. Cuando las personas están creando contenido, lo hacen como parte del monolito de WordPress.

Ahora, cuando comparamos el WordPress headless en comparación, eso le ofrece al desarrollador mucha flexibilidad. La experiencia para el visitante sigue siendo la misma. Escribe esta URL en la barra del navegador, pero en lugar de que su solicitud sea manejada por el núcleo de WordPress, en realidad es manejada por una aplicación que determinamos cómo se ve. En el ejemplo de hoy, vamos a usar Remix como este runtime de Node.js, pero eso podría ser cualquier framework front-end potencial, ya sea que te guste Nuxt o Next o quieras usar SvelteKit. Eso depende completamente de ti como desarrollador, y todo tu esfuerzo se centrará en desarrollar esa plataforma. Y todo eso interactúa con WordPress a través de las APIs REST o GraphQL que vamos a explorar hoy, que son parte del núcleo de WordPress o se agregan mediante plugins. Pero el beneficio final es que la experiencia para el editor o el creador de contenido no cambia, y pueden usar WordPress tal como está para crear contenido publicado, mientras nosotros, como desarrolladores, podemos aprovechar los beneficios que ocurren en el espacio de los frameworks front-end y llevar esos beneficios a nuestros usuarios.

Así que empecemos. No tenemos mucho tiempo, así que voy a empezar a construir nuestro sitio headless de inmediato. Lo primero que debemos hacer es crear un nuevo sitio de WordPress. Y voy a hacer eso usando las herramientas de desarrollo local. Hacer clic en crear nuevo sitio, darle un nombre a mi sitio, seleccionar la opción de personalización preferida, crear un nombre de usuario y contraseña de administrador, y luego permitir que local instale esos servicios en mi máquina local. Si ya tienes un sitio de WordPress, siéntete libre de usarlo también e instalar los plugins allí. Una vez que se haya completado la instalación, podemos abrir el panel de administración de WP, iniciar sesión y luego necesitaremos instalar algunos plugins. Primero, querremos instalar el plugin WP GraphQL, que básicamente convierte nuestro WordPress en una API WP GraphQL. Podemos instalar y activar ese plugin. Y también instalaremos un plugin llamado Atlas Content Modeler, que es un plugin de modelado de contenido enfocado en headless que nos permitirá crear tipos de contenido complejos y hacerlos disponibles inmediatamente a través de GraphQL.

2. Creación de modelos de contenido y agregado de datos

Short description:

Ahora, con nuestros plugins instalados, podemos crear nuestro primer modelo de contenido usando Atlas Content Modeler. Comenzamos especificando el nombre, visibilidad, icono y descripción del modelo. Luego, agregamos campos como nombre del proyecto, fecha de vencimiento, nombre del asignado y descripción del proyecto. Después de crear el modelo, podemos agregar datos completando los campos y publicando el contenido. Podemos explorar las características de WPGraphQL y el entorno de desarrollo gráfico para consultar nuestro esquema GraphQL y recuperar datos de nuestro sitio de WordPress. Por último, discutimos cómo integrar Remix en nuestra configuración de WordPress y GraphQL.

Ahora, con nuestros plugins instalados, podemos trabajar en la creación de nuestro primer modelo de contenido. Para hacer eso, utilizaremos Atlas Content Modeler para crear un modelo de contenido relacionado con proyectos. Hacemos esto especificando un nombre singular y plural, determinando la visibilidad de la API de nuestro modelo de contenido, ya sea pública o privada, eligiendo un icono para la pantalla de edición posterior y creando una descripción para que nuestros usuarios la vean. Cuando hacemos clic en el botón de crear, eso generará automáticamente el modelo y comenzará el proceso de agregarlo a nuestra API de GraphQL.

Con nuestro modelo creado, podemos comenzar el proceso de agregar campos a nuestro modelo. Comenzaremos con un campo de texto que almacena el nombre del proyecto. Lo utilizaremos como título de entrada, lo haremos obligatorio y lo agregaremos a nuestro modelo. Después de eso, podemos agregar un modelo de fecha que almacenará la fecha de vencimiento del proyecto, hacerlo también obligatorio y agregar una descripción para ese modelo que se mostrará a nuestros usuarios. A partir de ahí, agregaremos un campo de texto adicional para almacenar el nombre del asignado al proyecto, y este será el asociado de DevRal asignado a un contenido específico. También lo haremos obligatorio, y luego agregaremos un último campo de texto enriquecido que será la descripción del proyecto.

Ahora que hemos creado nuestro modelo de contenido de proyecto, agreguemos algunos data. Abrimos la pantalla de edición posterior y completamos todos los campos que especificamos al crear el modelo, y luego, cuando hayamos terminado, podemos publicar esa pieza de contenido para que esté disponible para su uso en nuestra aplicación. Ahora que hemos agregado algunos data a nuestro proyecto, exploremos las características de WPGraphQL y el entorno de desarrollo gráfico. La función de composición de consultas del entorno de desarrollo gráfico nos permite explorar visualmente nuestro esquema GraphQL y seleccionar tipos de contenido individuales y sus nodos y propiedades, todo mientras componemos una consulta GraphQL que podemos ejecutar dinámicamente y que devuelve datos reales de nuestro sitio de WordPress. Ahora que entendemos los recursos disponibles en WordPress para modelar data y servir ese data a través de GraphQL, hablemos de cómo vamos a integrar Remix en esa ecuación.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix es un nuevo marco de trabajo web de los creadores de React Router que te ayuda a construir mejores y más rápidos sitios web a través de una sólida comprensión de los fundamentos de la web. Remix se encarga de las tareas pesadas como la renderización del servidor, la división de código, la precarga y la navegación, y te deja con la parte divertida: ¡construir algo increíble!
No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Los humanos son solucionadores de problemas naturales y somos lo suficientemente buenos en eso que hemos sobrevivido a lo largo de los siglos y nos hemos convertido en la especie dominante del planeta. Debido a que somos tan buenos en eso, a veces también nos convertimos en buscadores de problemas, buscando problemas que podemos resolver. Aquellos que logran sus objetivos de la manera más exitosa son los eliminadores de problemas. Hablemos de la distinción entre resolver y eliminar problemas con ejemplos de dentro y fuera del mundo de la codificación.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
Remix Flat Routes – Una Evolución en el Enrutamiento
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – Una Evolución en el Enrutamiento
Top Content
Esta charla presenta la nueva convención Flat Routes que probablemente será la predeterminada en una futura versión de Remix. Simplifica la convención existente y también te brinda nuevas capacidades.
Cómo manejar correctamente los cambios de URL slug en Next.js
TypeScript Congress 2022TypeScript Congress 2022
10 min
Cómo manejar correctamente los cambios de URL slug en Next.js
Top Content
Si estás utilizando un CMS sin cabeza para almacenar contenido, también trabajas con URL slugs, las últimas partes de cualquier URL. El problema es que los editores de contenido pueden cambiar libremente los slugs, lo que puede causar errores 404, pérdida de rangos de página, enlaces rotos y, al final, visitantes confundidos en tu sitio. En esta charla, presentaré una solución para mantener un historial de URL slugs en el CMS y explicaré cómo implementar un mecanismo de redirección adecuado (¡usando TypeScript!) para páginas generadas dinámicamente en un sitio web de Next.js.

Añadir a las notas de la charla: https://github.com/ondrabus/kontent-boilerplate-next-js-ts-congress-2022 

Workshops on related topic

Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
Cómo Resolver Problemas del Mundo Real con Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
Cómo Resolver Problemas del Mundo Real con Remix
Featured Workshop
Michael Carter
Michael Carter
- ¿Errores? Cómo renderizar y registrar tus errores del servidor y del clientea - Cuándo devolver errores vs lanzar excepcionesb - Configurar servicios de registro como Sentry, LogRocket y Bugsnag- ¿Formularios? Cómo validar y manejar formularios de varias páginasa - Usar zod para validar los datos del formulario en tu acciónb - Pasar por formularios de varias páginas sin perder datos- ¿Atascado? Cómo solucionar errores o funciones faltantes en Remix para que puedas continuara - Usar patch-package para solucionar rápidamente tu instalación de Remixb - Mostrar herramienta para gestionar múltiples parches y seleccionar solicitudes de extracción abiertas- ¿Usuarios? Cómo manejar aplicaciones de varios inquilinos con Prismaa - Determinar el inquilino por el host o por el usuariob - Base de datos múltiples o base de datos única/múltiples esquemasc - Asegura que los datos del inquilino siempre estén separados de los demás
Construye y lanza un blog personal usando Remix y Vercel
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Construye y lanza un blog personal usando Remix y Vercel
Featured Workshop
Robert Pop
Robert Pop
En este masterclass aprenderemos cómo construir un blog personal desde cero usando Remix, TailwindCSS. El blog será alojado en Vercel y todo el contenido será servido dinámicamente desde un repositorio separado en GitHub. Utilizaremos HTTP Caching para las publicaciones del blog.
Lo que queremos lograr al final del masterclass es tener una lista de nuestras publicaciones de blog mostradas en la versión desplegada del sitio web, la capacidad de filtrarlas y leerlas individualmente.
Tabla de contenidos:- Configurar un proyecto de Remix con una pila predefinida- Instalar dependencias adicionales- Leer contenido desde GitHub- Mostrar contenido desde GitHub- Analizar el contenido y cargarlo en nuestra aplicación usando mdx-bundler- Crear una página separada para las publicaciones de blog para mostrarlas de forma independiente- Agregar filtros a la lista inicial de publicaciones de blog
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Fetch, useEffect, React Query, SWR, ¿qué más?
React Advanced Conference 2023React Advanced Conference 2023
102 min
Fetch, useEffect, React Query, SWR, ¿qué más?
Top Content
WorkshopFree
Ondrej Polesny
Ondrej Polesny
En esta masterclass, primero, repasaremos las diferentes formas en que puedes consumir APIs en React. Luego, probaremos cada una obteniendo contenido de un CMS sin cabeza (tanto con REST como con GraphQL) y verificando en detalle cómo funcionan.
Aunque no se requiere un conocimiento avanzado de React, esta será una sesión práctica, por lo que necesitarás clonar un repositorio de GitHub preconfigurado y utilizar tu editor de programación React preferido, como VS Code.
Aprenderás:- Qué diversas opciones de obtención de datos hay en React- Cuáles son las ventajas y desventajas de cada una- Cuáles son los casos de uso típicos y cuándo cada estrategia es más beneficiosa que otras