{"id":74007,"date":"2024-03-04T09:07:30","date_gmt":"2024-03-04T08:07:30","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=74007&#038;preview=true&#038;preview_id=74007"},"modified":"2024-03-06T13:47:13","modified_gmt":"2024-03-06T12:47:13","slug":"wordpress-headless-next-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/","title":{"rendered":"C\u00f3mo utilizar WordPress como un CMS headless para Next.js"},"content":{"rendered":"<p>WordPress existe desde hace m\u00e1s de 20 a\u00f1os, y alimenta el 42,7% de todos los sitios web de Internet, <a href=\"https:\/\/w3techs.com\/technologies\/details\/cm-wordpress\/all\/all\" target=\"_blank\" rel=\"noopener noreferrer\">seg\u00fan W3Techs<\/a>. Tambi\u00e9n tiene una cuota de mercado del 62,5% en sistemas de gesti\u00f3n de contenidos (CMS, content management systems) para sitios web.<\/p>\n<p>Hoy en d\u00eda, hay muchos lenguajes de programaci\u00f3n y frameworks disponibles para construir sitios web f\u00e1ciles de usar y de alto rendimiento que son mucho m\u00e1s r\u00e1pidos que WordPress, independientemente de la optimizaci\u00f3n que hagas en tu panel de WordPress. Un ejemplo es <a href=\"https:\/\/kinsta.com\/es\/blog\/next-js\/\">Next.js<\/a>, un popular framework React.<\/p>\n<p>Esta gu\u00eda muestra c\u00f3mo utilizar WordPress como un CMS headless, proporcionando datos para tu aplicaci\u00f3n Next.js. Tambi\u00e9n explica c\u00f3mo desplegar tu c\u00f3digo Next.js como un <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-un-sitio-web-estatico\/\">sitio est\u00e1tico<\/a> en el servicio gratuito de <a href=\"https:\/\/sevalla.com\/static-site-hosting\/\">Alojamiento de Sitios Est\u00e1ticos<\/a> de Kinsta.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Entendiendo WordPress headless<\/h2>\n<p>WordPress headless se refiere al uso de WordPress \u00fanicamente para sus capacidades de backend\u00a0 \u2014 gesti\u00f3n y almacenamiento de contenidos \u2014 y al uso de un sistema independiente, como Next.js, para la presentaci\u00f3n del frontend.<\/p>\n<p>Este desacoplamiento permite a los desarrolladores utilizar las s\u00f3lidas herramientas de gesti\u00f3n de contenidos de WordPress y, al mismo tiempo, aprovechar al m\u00e1ximo las modernas funciones de desarrollo del frontend, como la renderizaci\u00f3n del lado del servidor y la generaci\u00f3n de sitios est\u00e1ticos en Next.js.<\/p>\n<h3>Preparando tu sitio de WordPress<\/h3>\n<p>Antes de sumergirte en el desarrollo de Next.js, tu sitio de WordPress necesita un poco de preparaci\u00f3n para servir como un <a href=\"https:\/\/kinsta.com\/es\/secciones\/headless-cms\/\">CMS headless<\/a>.<\/p>\n<p>Si a\u00fan no tienes un sitio de WordPress, puedes crear uno f\u00e1cilmente con Kinsta. Existen tres m\u00e9todos para crear un sitio WordPress utilizando Kinsta:<\/p>\n<ol start=\"1\">\n<li>Crear un sitio <a href=\"https:\/\/kinsta.com\/es\/blog\/instalar-wordpress-localmente\/\">en tu m\u00e1quina local<\/a> (quiz\u00e1s utilizando nuestras <a href=\"https:\/\/kinsta.com\/es\/devkinsta\/\">herramientas DevKinsta<\/a>) antes de trasladar el sitio a nuestros servidores<\/li>\n<li>Crear un sitio en remoto utilizando el <a href=\"https:\/\/kinsta.com\/es\/docs\/alojamiento-wordpress\/como-empezar-con-wordpress\/sitio-nuevo\/\">panel MyKinsta<\/a><\/li>\n<li>Crear un sitio en remoto utilizando la <a href=\"https:\/\/kinsta.com\/es\/blog\/api-wordpress\/\">API de Kinsta<\/a><\/li>\n<\/ol>\n<p>Una vez que tengas un sitio de WordPress, hay dos enfoques para obtener datos de tu CMS de WordPress en tu framework frontend: <a href=\"https:\/\/kinsta.com\/es\/blog\/wpgraphql-y-wp-rest-api\/\">WPGraphQL y API REST<\/a>.<\/p>\n<p>La API REST facilita la recuperaci\u00f3n de datos en formato JSON utilizando enfoques JavaScript como la <a href=\"https:\/\/kinsta.com\/es\/blog\/javascript-peticion-http\/#4-how-to-make-an-http-request-in-javascript-using-the-fetch-api\">API Fetch<\/a> o la biblioteca <a href=\"https:\/\/kinsta.com\/es\/blog\/javascript-peticion-http\/#5-how-to-make-an-http-request-in-javascript-using-axios\">Axios<\/a>. La API REST est\u00e1 integrada en WordPress desde la versi\u00f3n 4.7, lo que significa que no requiere ning\u00fan plugin para funcionar. Pero para utilizar WPGraphQL, que te permite interactuar con los datos de WordPress mediante consultas GraphQL, debes instalar el plugin WPGraphQL.<\/p>\n<p>Vamos a utilizar la API REST para esta gu\u00eda. Para obtener los datos de tu WordPress en formato JSON, a\u00f1ade <code>\/wp-json\/wp\/v2<\/code> a la URL de tu sitio WordPress:<\/p>\n<pre><code class=\"language-bash\">http:\/\/yoursite.com\/wp-json\/wp\/v2<\/code><\/pre>\n<p>Si la API JSON no est\u00e1 activada cuando visitas <code>http:\/\/yoursite.com\/wp-json<\/code> por defecto, puedes activarla abriendo <strong>Permalinks<\/strong> en <strong>Ajustes<\/strong> en el panel de control de WordPress y seleccionando <strong>Nombre de la Entrada<\/strong> o cualquier otro de tu elecci\u00f3n excepto <strong>Simple<\/strong>:<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/02\/configure-rest-api.png\" alt=\"Configura la API REST de WordPress para acceder a los datos JSON.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Configura la API REST de WordPress para acceder a los datos JSON.<\/figcaption><\/figure>\n<p>Esto funciona para sitios de WordPress locales y p\u00fablicos, ofreciendo <a href=\"https:\/\/developer.wordpress.org\/rest-api\/key-concepts\/\" target=\"_blank\" rel=\"noopener noreferrer\">endpoints<\/a>\u00a0para contenido que incluye <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/posts\/\" target=\"_blank\" rel=\"noopener noreferrer\">entradas<\/a>, <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/pages\/\" target=\"_blank\" rel=\"noopener noreferrer\">p\u00e1ginas<\/a>, <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/comments\/\" target=\"_blank\" rel=\"noopener noreferrer\">comentarios<\/a> y <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/media\/\" target=\"_blank\" rel=\"noopener noreferrer\">medios<\/a>. Lee nuestra <a href=\"https:\/\/kinsta.com\/es\/blog\/rest-api-de-wordpress\/\">gu\u00eda completa sobre la API REST<\/a> para obtener m\u00e1s informaci\u00f3n.<\/p>\n<h2>Configurar tu entorno Next.js<\/h2>\n<p>Next.js ayuda a los desarrolladores a crear aplicaciones web con facilidad, mejorando el rendimiento y optimizando la experiencia de desarrollo. Una de sus caracter\u00edsticas clave es el enrutamiento basado en archivos, que simplifica la creaci\u00f3n de rutas.<\/p>\n<p>Next.js tambi\u00e9n se centra mucho en el rendimiento, ofreciendo funciones como la <a href=\"https:\/\/kinsta.com\/es\/blog\/nextjs-vs-react\/#code-splitting\">divisi\u00f3n de c\u00f3digo<\/a> autom\u00e1tica, que carga s\u00f3lo el JavaScript necesario para cada p\u00e1gina, reduciendo significativamente el tiempo de carga.<\/p>\n<p>Para configurar un proyecto Next.js, puedes ejecutar el siguiente comando y utilizar sus respuestas predeterminadas:<\/p>\n<pre><code class=\"language-bash\">npx create-next-app@latest nextjs-wp-demo<\/code><\/pre>\n<p>Para esta gu\u00eda, puedes coger nuestra plantilla de inicio <a href=\"https:\/\/kinsta.com\/es\/secciones\/git\/\">Git<\/a> siguiendo estos pasos:<\/p>\n<ol start=\"1\">\n<li>Visita el <a href=\"https:\/\/github.com\/olawanlejoel\/nextjs-headless-wp\" target=\"_blank\" rel=\"noopener noreferrer\">repositorio GitHub<\/a> de este proyecto.<\/li>\n<li>Selecciona <strong>Usar esta plantilla<\/strong> &gt; <strong>Crear un nuevo repositorio<\/strong> para copiar el c\u00f3digo de inicio en un repositorio dentro de tu cuenta de GitHub (marca la casilla para <strong>incluir todas las ramas<\/strong>).<\/li>\n<li>Extrae el repositorio a tu ordenador local y cambia a la rama <a href=\"https:\/\/github.com\/olawanlejoel\/nextjs-headless-wp\/tree\/starter-files\" target=\"_blank\" rel=\"noopener noreferrer\">starter-files<\/a> utilizando el comando : <code>git checkout starter-files<\/code>.<\/li>\n<\/ol>\n<ol start=\"4\">\n<li>Instala las dependencias necesarias ejecutando el comando <code>npm install<\/code>.<\/li>\n<\/ol>\n<p>Una vez completada la instalaci\u00f3n, inicia el proyecto en tu ordenador local con <code>npm run dev<\/code>. Esto hace que el proyecto est\u00e9 disponible en <a href=\"http:\/\/localhost:3000\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/localhost:3000\/<\/a>.<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/02\/starter-project.png\" alt=\"Captura de pantalla de un proyecto inicial creado con Next.js.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Captura de pantalla de un proyecto inicial creado con Next.js.<\/figcaption><\/figure>\n<h3>Comprender el proyecto<\/h3>\n<p>El App Router se introdujo en Next.js 13, sustituyendo al directorio <strong>pages<\/strong> existente para el enrutamiento. Enrutar con el App Router tambi\u00e9n implica crear carpetas dentro del directorio <strong>app<\/strong>. Entonces, anidas un archivo <strong>page.js<\/strong> dentro de la carpeta apropiada para definir tu ruta.<\/p>\n<p>En este proyecto, <strong>app<\/strong> es el directorio principal con el que interactuar\u00edas, y encontrar\u00e1s la siguiente estructura de archivos.<\/p>\n<pre><code class=\"language-bash\">\/\n|-- \/app\n    |-- \/blog\n        |-- \/[postId]\n        \t|-- page.js\n        |-- page.js\n    |-- globals.css\n    |-- layout.js\n    |-- navbar.js\n    |-- page.js<\/code><\/pre>\n<p>Se crean tres p\u00e1ginas: la p\u00e1gina de inicio para mostrar informaci\u00f3n b\u00e1sica, la p\u00e1gina del blog para mostrar todas las entradas de tu CMS WordPress, y la p\u00e1gina din\u00e1mica (<strong>[postId]\/page.js<\/strong>) para mostrar entradas individuales.<\/p>\n<p>Tambi\u00e9n ver\u00e1s el componente <strong>navbar.js<\/strong>, que se importa en el archivo <strong>layout.js<\/strong> para crear un dise\u00f1o para el proyecto.<\/p>\n<h2>Obtenci\u00f3n de datos de WordPress para Next.js<\/h2>\n<p>Con la API REST de WordPress, puedes obtener entradas, p\u00e1ginas y tipos de entradas personalizados enviando peticiones HTTP a endpoints espec\u00edficos.<\/p>\n<p>Vamos a realizar una solicitud de obtenci\u00f3n en el archivo <strong>blog\/page.js<\/strong> para obtener todas las entradas de tu CMS WordPress y, finalmente, hacemos una solicitud para obtener cada entrada din\u00e1micamente en <strong>blog\/[postId]\/page.js<\/strong> bas\u00e1ndonos en el par\u00e1metro <code>id<\/code> pasado.<\/p>\n<p>Antes de realizar estas peticiones, es una buena pr\u00e1ctica a\u00f1adir tu direcci\u00f3n API JSON a una variable de entorno. Este enfoque garantiza que la URL base de tu API sea f\u00e1cilmente configurable y no est\u00e9 codificada en varios archivos.<\/p>\n<p>Crea un archivo <strong>.env<\/strong> en la ra\u00edz de tu proyecto Next.js y a\u00f1ade lo siguiente:<\/p>\n<pre><code class=\"language-bash\">NEXT_PUBLIC_WORDPRESS_API_URL=https:\/\/yoursite.kinsta.cloud\/wp-json\/wp\/v2<\/code><\/pre>\n<p>Aseg\u00farate de sustituir la URL por la API JSON de tu sitio. Adem\u00e1s, a\u00f1ade <code>.env<\/code> a tu archivo <strong><a href=\"https:\/\/kinsta.com\/es\/blog\/gitignore-no-funciona\/\">.gitignore<\/a><\/strong> para que no env\u00ede el archivo a tu proveedor Git.<\/p>\n<h3>Obtener todas las entradas de WordPress en Next.js<\/h3>\n<p>Para obtener todas las entradas de tu sitio de WordPress, crea una funci\u00f3n as\u00edncrona llamada <code>getPosts<\/code> en tu archivo <strong>blog\/page.js<\/strong>. Esta funci\u00f3n utiliza la API Fetch para realizar una solicitud GET al endpoint <code>\/posts<\/code> de tu API REST de WordPress.<\/p>\n<pre><code class=\"language-js\">async function getPosts() {\n    const response = await fetch(\n        `${process.env.NEXT_PUBLIC_WORDPRESS_API_URL}\/posts`\n    );\n    const posts = await response.json();\n    return posts;\n}<\/code><\/pre>\n<p>Al recibir la respuesta, la convierte a JSON y crea un array de objetos de entrada. Estos <code>posts<\/code> se pueden mostrar en tu aplicaci\u00f3n Next.js, proporcionando una lista din\u00e1mica de entradas de blog obtenidas directamente de WordPress.<\/p>\n<pre><code class=\"language-js\">const BlogPage = async () =&gt; {\n    const posts = await getPosts();\n    return (\n        &lt;div className=\"blog-page\"&gt;\n            &lt;h2&gt;All Blog Posts&lt;\/h2&gt;\n            &lt;p&gt;All blog posts are fetched from WordPress via the WP REST API.&lt;\/p&gt;\n            &lt;div className=\"posts\"&gt;\n                {posts.map((post) =&gt; {\n                    return (\n                        &lt;Link href={`\/blog\/${post.id}`} className=\"post\" key={post.id}&gt;\n                            &lt;h3&gt;{post.title.rendered}&lt;\/h3&gt;\n                            &lt;p\n                                dangerouslySetInnerHTML={{ __html: post.excerpt.rendered }}\n                            &gt;&lt;\/p&gt;\n                        &lt;\/Link&gt;\n                    );\n                })}\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    );\n};<\/code><\/pre>\n<p>Dentro del componente de p\u00e1gina Next.js, llama a <code>getPosts<\/code> de forma as\u00edncrona para obtener las entradas. A continuaci\u00f3n, <code>map<\/code> sobre el array de <code>posts<\/code>, mostrando <code>title<\/code> y <code>excerpt<\/code> de cada entrada dentro de un componente <code>&lt;Link&gt;<\/code>.<\/p>\n<p>Esto no s\u00f3lo muestra las entradas, sino que tambi\u00e9n las envuelve en un enlace que lleva a una vista detallada de la entrada. Esto se consigue utilizando el enrutamiento basado en archivos de Next.js, en el que el ID de la entrada se utiliza para generar la ruta URL din\u00e1micamente.<\/p>\n<h3>Obtener entradas din\u00e1micas de WordPress a Next.js<\/h3>\n<p>En el c\u00f3digo anterior, cada entrada est\u00e1 envuelta en un enlace que se espera que ayude a los usuarios a navegar a una vista detallada de la entrada.<\/p>\n<p>Para las p\u00e1ginas de entradas individuales, utiliza el enrutamiento din\u00e1mico en Next.js para crear una p\u00e1gina que obtenga y muestre una \u00fanica entrada bas\u00e1ndose en su ID. Ya se ha creado una p\u00e1gina din\u00e1mica <strong>[postID]\/page.js<\/strong> en el c\u00f3digo de stater-files.<\/p>\n<p>Crea una funci\u00f3n <code>getSinglePost<\/code>, similar a <code>getPosts<\/code>, para obtener una \u00fanica entrada utilizando el ID de la entrada introducido como par\u00e1metro.<\/p>\n<pre><code class=\"language-js\">async function getSinglePost(postId) {\n    const response = await fetch(\n        `${process.env.NEXT_PUBLIC_WORDPRESS_API_URL}\/posts\/${postId}`\n    );\n    const post = await response.json();\n    return post;\n}<\/code><\/pre>\n<p>En el componente de p\u00e1gina din\u00e1mica, extrae el ID de la entrada de los par\u00e1metros de la URL, llama a <code>getSinglePost<\/code> con este ID y muestra el contenido de la entrada.<\/p>\n<pre><code class=\"language-js\">const page = async ({ params }) =&gt; {\n    const post = await getSinglePost(params.postId);\n    \/\/ ... the rest of the page code\n};<\/code><\/pre>\n<p>A continuaci\u00f3n, puedes rellenar la p\u00e1gina con los datos obtenidos:<\/p>\n<pre><code class=\"language-js\">const page = async ({ params }) =&gt; {\n    const post = await getSinglePost(params.postId);\n    if (!post) {\n        return &lt;div&gt;Loading...&lt;\/div&gt;;\n    }\n    return (\n        &lt;div className=\"single-blog-page\"&gt;\n            &lt;h2&gt;{post.title.rendered}&lt;\/h2&gt;\n            &lt;div className=\"blog-post\"&gt;\n                &lt;p&gt; dangerouslySetInnerHTML={{ __html: post.content.rendered }}&gt;&lt;\/p&gt;\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    );\n};<\/code><\/pre>\n<p>Puedes acceder al c\u00f3digo completo en nuestro <a href=\"https:\/\/github.com\/olawanlejoel\/nextjs-headless-wp\" target=\"_blank\" rel=\"noopener noreferrer\">repositorio de GitHub<\/a>.<\/p>\n<h2>Despliega gratis tu aplicaci\u00f3n Next.js en Kinsta<\/h2>\n<p>El servicio de <a href=\"https:\/\/docs.sevalla.com\/static-sites\/overview\">Alojamiento de Sitios Est\u00e1ticos<\/a> de Kinsta ofrece la posibilidad de alojar hasta 100 sitios est\u00e1ticos de <strong>forma gratuita<\/strong>.<\/p>\n<p>Este servicio s\u00f3lo aloja archivos est\u00e1ticos. Si utilizas un <a href=\"https:\/\/kinsta.com\/es\/blog\/generadores-de-sitios-estaticos\/\">generador de sitios est\u00e1ticos<\/a> como Next.js, puedes configurar opciones que construyan tu proyecto desde GitHub y desplieguen los archivos est\u00e1ticos en Kinsta.<\/p>\n<h3>Exportaci\u00f3n est\u00e1tica en Next.js<\/h3>\n<p>Para habilitar una exportaci\u00f3n est\u00e1tica en Next.js versi\u00f3n 13 o superior, cambia el modo <code>output<\/code> dentro de <strong>next.config.js<\/strong>:<\/p>\n<pre><code class=\"language-js\">const nextConfig = {\n    output: 'export',\n};<\/code><\/pre>\n<p>Ahora, cuando construyas tu proyecto, se espera que Next.js produzca una carpeta <strong>out<\/strong> que contenga los activos <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-el-html\/\">HTML<\/a>, <a href=\"https:\/\/kinsta.com\/es\/blog\/buenas-practicas-css\/\">CSS<\/a> y <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a> de tu aplicaci\u00f3n.<\/p>\n<p>Desde la versi\u00f3n 13, Next.js soporta comenzar como un sitio est\u00e1tico y, posteriormente, actualizarlo de forma opcional para utilizar funciones que requieren un servidor. Cuando utilices funciones de servidor, la construcci\u00f3n de tus p\u00e1ginas no generar\u00e1 p\u00e1ginas est\u00e1ticas.<\/p>\n<p>Por ejemplo, en la ruta din\u00e1mica, est\u00e1s obteniendo estos datos din\u00e1micamente. Necesitas poder generar todas las entradas est\u00e1ticamente. Esto se puede hacer utilizando la funci\u00f3n <code>generateStaticParams<\/code>.<\/p>\n<p>La funci\u00f3n se utiliza en combinaci\u00f3n con segmentos de rutas din\u00e1micas para generar rutas est\u00e1ticamente en el momento de la construcci\u00f3n, en lugar de hacerlo bajo demanda en el momento de la solicitud. Cuando construyes, <code>generateStaticParams<\/code> se ejecuta antes de que se generen los dise\u00f1os o p\u00e1ginas correspondientes.<\/p>\n<p>En <strong>[postID]\/page.js<\/strong>, utiliza la funci\u00f3n <code>generateStaticParams<\/code> para obtener la ruta de todos los posts:<\/p>\n<pre><code class=\"language-js\">export async function generateStaticParams() {\n    const response = await fetch(\n        `${process.env.NEXT_PUBLIC_WORDPRESS_API_URL}\/posts`\n    );\n    const posts = await response.json();\n\n    return posts.map((post) =&gt; ({\n        postId: post.id.toString(),\n    }));\n}<\/code><\/pre>\n<p>Cuando ejecutes el comando de construcci\u00f3n, tu proyecto Next.js generar\u00e1 ahora un directorio <strong>out<\/strong>\u00a0con los archivos est\u00e1ticos.<\/p>\n<h3>Despliega Next.js en el alojamiento de sitios est\u00e1ticos de Kinsta<\/h3>\n<p>Env\u00eda tu c\u00f3digo a tu proveedor Git preferido <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">(Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> o <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>). A continuaci\u00f3n, sigue estos pasos para desplegar tu sitio est\u00e1tico Next.js en Kinsta:<\/p>\n<ol start=\"1\">\n<li>Inicia sesi\u00f3n o crea una cuenta para ver tu panel <a href=\"https:\/\/my.kinsta.com\/?lang=es\" target=\"_blank\" rel=\"noopener noreferrer\">MyKinsta<\/a>.<\/li>\n<li>Autoriza a Kinsta con tu proveedor de Git.<\/li>\n<li>Haz clic en <strong>Sitios Est\u00e1ticos<\/strong> en la barra lateral izquierda y, a continuaci\u00f3n, en <strong>A\u00f1adir sitio<\/strong>.<\/li>\n<li>Selecciona el repositorio y la rama desde la que deseas desplegar.<\/li>\n<li>Asigna un nombre \u00fanico a tu sitio.<\/li>\n<li>A\u00f1ade la configuraci\u00f3n de construcci\u00f3n en el siguiente formato:\n<ul>\n<li><strong>Comando de construcci\u00f3n:<\/strong> <code>npm run build<\/code><\/li>\n<li><strong>Versi\u00f3n de Node:<\/strong> <code>18.16.0<\/code><\/li>\n<li><strong>Directorio de publicaci\u00f3n:<\/strong> <code>out<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ol start=\"7\">\n<li>Por \u00faltimo, haz clic en <strong>Crear sitio<\/strong>.<\/li>\n<\/ol>\n<p>\u00a1Y ya est\u00e1! En pocos segundos tendr\u00e1s un sitio desplegado. Se proporciona un enlace para acceder a la versi\u00f3n desplegada de tu sitio. Si lo deseas, puedes a\u00f1adir m\u00e1s adelante tu <a href=\"https:\/\/docs.sevalla.com\/applications\/domains\">dominio personalizado<\/a> y tu <a href=\"https:\/\/docs.sevalla.com\/applications\/domains#install-a-custom-ssl-certificate\">certificado SSL<\/a>.<\/p>\n<p>Como alternativa al alojamiento de sitios est\u00e1ticos, puedes optar por desplegar tu sitio est\u00e1tico con el servicio de <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Alojamiento de Aplicaciones<\/a> de Kinsta, que proporciona una mayor flexibilidad de alojamiento, una gama m\u00e1s amplia de ventajas y acceso a funciones m\u00e1s robustas, como escalabilidad, despliegue personalizado mediante un Dockerfile y <a href=\"https:\/\/docs.sevalla.com\/applications\/analytics\">anal\u00edticas exhaustivas<\/a> que abarcan datos hist\u00f3ricos y en tiempo real. Tampoco necesitas configurar tu proyecto Next.js para la renderizaci\u00f3n est\u00e1tica.<\/p>\n<h2>Resumen<\/h2>\n<p>En este art\u00edculo, has aprendido c\u00f3mo aprovechar WordPress headless en un proyecto Next.js para obtener y mostrar entradas din\u00e1micamente. Este enfoque permite la integraci\u00f3n perfecta del contenido de WordPress en las aplicaciones Next.js, ofreciendo una experiencia web moderna y din\u00e1mica.<\/p>\n<p>El potencial de la API CMS headless va m\u00e1s all\u00e1 de las entradas; permite recuperar y gestionar p\u00e1ginas, comentarios, medios y mucho m\u00e1s.<\/p>\n<p>Adem\u00e1s, alojar tu CMS de WordPress junto a tus frameworks frontend no tiene por qu\u00e9 ser una molestia. Con el panel de control <a href=\"https:\/\/my.kinsta.com\/?lang=es\">MyKinsta<\/a> de Kinsta, se te ofrece una plataforma unificada para gestionar tus <a href=\"https:\/\/kinsta.com\/es\/wordpress-hosting\/\">sitios de WordPress<\/a>, <a href=\"https:\/\/sevalla.com\/application-hosting\/\">aplicaciones<\/a>, <a href=\"https:\/\/sevalla.com\/database-hosting\/\">bases de datos<\/a> y sitios est\u00e1ticos con facilidad.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress existe desde hace m\u00e1s de 20 a\u00f1os, y alimenta el 42,7% de todos los sitios web de Internet, seg\u00fan W3Techs. Tambi\u00e9n tiene una cuota de &#8230;<\/p>\n","protected":false},"author":287,"featured_media":74008,"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,1290],"class_list":["post-74007","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-desarrollo-wordpress","topic-frameworks-javascript","topic-headless-cms"],"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>C\u00f3mo utilizar WordPress como un CMS headless para Next.js - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.\" \/>\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-headless-next-js\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo utilizar WordPress como un CMS headless para Next.js\" \/>\n<meta property=\"og:description\" content=\"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/\" \/>\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-03-04T08:07:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-06T12:47:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.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=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 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-headless-next-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"C\u00f3mo utilizar WordPress como un CMS headless para Next.js\",\"datePublished\":\"2024-03-04T08:07:30+00:00\",\"dateModified\":\"2024-03-06T12:47:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/\"},\"wordCount\":2095,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/\",\"name\":\"C\u00f3mo utilizar WordPress como un CMS headless para Next.js - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\",\"datePublished\":\"2024-03-04T08:07:30+00:00\",\"dateModified\":\"2024-03-06T12:47:13+00:00\",\"description\":\"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Headless CMS\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/headless-cms\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo utilizar WordPress como un CMS headless para Next.js\"}]},{\"@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\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo utilizar WordPress como un CMS headless para Next.js - Kinsta\u00ae","description":"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.","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-headless-next-js\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo utilizar WordPress como un CMS headless para Next.js","og_description":"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.","og_url":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2024-03-04T08:07:30+00:00","article_modified_time":"2024-03-06T12:47:13+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Joel Olawanle","Tiempo de lectura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"C\u00f3mo utilizar WordPress como un CMS headless para Next.js","datePublished":"2024-03-04T08:07:30+00:00","dateModified":"2024-03-06T12:47:13+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/"},"wordCount":2095,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/","url":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/","name":"C\u00f3mo utilizar WordPress como un CMS headless para Next.js - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","datePublished":"2024-03-04T08:07:30+00:00","dateModified":"2024-03-06T12:47:13+00:00","description":"Aprende en esta gu\u00eda c\u00f3mo mejorar el rendimiento de tu sitio web integrando WordPress con Next.js, un framework React de primer nivel.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/wordpress-headless-next-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Headless CMS","item":"https:\/\/kinsta.com\/es\/secciones\/headless-cms\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo utilizar WordPress como un CMS headless para Next.js"}]},{"@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\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/es\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/74007","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\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=74007"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/74007\/revisions"}],"predecessor-version":[{"id":74072,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/74007\/revisions\/74072"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/translations\/es"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/74007\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/74008"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=74007"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=74007"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=74007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}