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.

This talk has been presented at React Summit 2022, check out the latest edition of this React Conference.

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 is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
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
Remix Flat Routes is a new convention that aims to make it easier to see and organize the routes in your app. It allows for the co-location of support files with routes, decreases refactor and redesign friction, and helps apps migrate to Remix. Flat Folders convention supports co-location and allows importing assets as relative imports. To migrate existing apps to Flat Routes, use the Remix Flat Routes package's migration tool.
Cómo React Router se convirtió en un Framework
React Advanced 2024React Advanced 2024
31 min
Cómo React Router se convirtió en un Framework
My name is Mark Dalglish and I'm here to discuss how ReactRouter became a framework. Remix is built on ReactRouter and heavily relies on it. Remix feels like a framework because it has a CLI, manages the dev and build lifecycle, and has strong opinions about the file system structure. Remix embraced Vite as a plugin, allowing developers to integrate it seamlessly into their existing Vite setup. The shift to Vite led to a change in the philosophy of Remix Vite, enabling frameworks to orchestrate all the environment builds and make the framework as a plugin pattern first class. React Router is merging with Remix to make all the build time framework features available to React Router consumers. React Router is now officially a framework as well as a library. The move to integrate Remix into React Router is driven by the exploration of the next generation of Remix. React Router V7 simplifies by dropping the React Native layer and allows flexibility for consumers to use it as a library or as a framework with additional architectural features provided by plugins. The focus is on betting on Vite in the long term, and React Router plans to support React Server components. Thank you to Mark for answering the questions.

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 2023React Advanced 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