{"id":76407,"date":"2024-03-04T09:07:46","date_gmt":"2024-03-04T08:07:46","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=76407&#038;preview=true&#038;preview_id=76407"},"modified":"2024-03-05T15:21:37","modified_gmt":"2024-03-05T14:21:37","slug":"wordpress-headless-next-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/","title":{"rendered":"Comment utiliser WordPress comme un CMS headless pour Next.js"},"content":{"rendered":"<p>WordPress existe depuis plus de 20 ans et alimente 42,7 % de tous les sites web sur l&rsquo;internet, <a href=\"https:\/\/w3techs.com\/technologies\/details\/cm-wordpress\/all\/all\" target=\"_blank\" rel=\"noopener noreferrer\">selon W3Techs<\/a>. Il d\u00e9tient \u00e9galement une part de march\u00e9 de 62,5 % pour les syst\u00e8mes de gestion de contenu (CMS) derri\u00e8re les sites web.<\/p>\n<p>Aujourd&rsquo;hui, de nombreux langages de programmation et frameworks sont disponibles pour construire des sites web conviviaux et performants qui sont bien plus rapides que WordPress, quelle que soit l&rsquo;optimisation que vous fassiez dans votre tableau de bord WordPress. <a href=\"https:\/\/kinsta.com\/fr\/blog\/next-js\/\">Next.js<\/a>, un framework React tr\u00e8s populaire, en est un exemple.<\/p>\n<p>Ce guide montre comment utiliser WordPress comme un CMS headless, en fournissant des donn\u00e9es \u00e0 votre application Next.js. Il explique \u00e9galement comment d\u00e9ployer votre code Next.js en tant que <a href=\"https:\/\/kinsta.com\/fr\/blog\/site-statique\/\">site statique<\/a> sur le service gratuit d&rsquo;<a href=\"https:\/\/sevalla.com\/static-site-hosting\/\">h\u00e9bergement de sites statiques<\/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>Comprendre WordPress headless<\/h2>\n<p>WordPress headless se r\u00e9f\u00e8re \u00e0 l&rsquo;utilisation de WordPress uniquement pour ses capacit\u00e9s de backend &#8211; gestion et stockage de contenu &#8211; et \u00e0 l&rsquo;utilisation d&rsquo;un syst\u00e8me s\u00e9par\u00e9, comme Next.js, pour la pr\u00e9sentation frontend.<\/p>\n<p>Ce d\u00e9couplage permet aux d\u00e9veloppeurs d&rsquo;utiliser les outils de gestion de contenu robustes de WordPress tout en profitant pleinement des fonctionnalit\u00e9s modernes de d\u00e9veloppement du frontend, telles que le rendu c\u00f4t\u00e9 serveur et la g\u00e9n\u00e9ration de sites statiques dans Next.js.<\/p>\n<h3>Pr\u00e9parer votre site WordPress<\/h3>\n<p>Avant de plonger dans le d\u00e9veloppement de Next.js, votre site WordPress a besoin d&rsquo;un peu de pr\u00e9paration pour servir d&rsquo;un\u00a0<a href=\"https:\/\/kinsta.com\/fr\/sujets\/headless-cms\/\">CMS headless<\/a>.<\/p>\n<p>Si vous n&rsquo;avez pas encore de site WordPress, vous pouvez en cr\u00e9er un facilement avec Kinsta. Il existe trois m\u00e9thodes pour cr\u00e9er un site WordPress avec Kinsta :<\/p>\n<ol start=\"1\">\n<li>Cr\u00e9er un site <a href=\"https:\/\/kinsta.com\/fr\/blog\/installer-wordpress-localement\/\">sur votre machine locale<\/a> (\u00e9ventuellement en utilisant nos <a href=\"https:\/\/kinsta.com\/fr\/devkinsta\/\">outils DevKinsta<\/a>) avant de transf\u00e9rer le site sur nos serveurs<\/li>\n<li>Cr\u00e9er un site \u00e0 distance en utilisant le <a href=\"https:\/\/kinsta.com\/fr\/docs\/hebergement-wordpress\/premiers-pas-wordpress\/nouveau-site\/\">tableau de bord MyKinsta<\/a><\/li>\n<li>Cr\u00e9er un site \u00e0 distance en utilisant l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/blog\/api-wordpress\/\">API Kinsta<\/a><\/li>\n<\/ol>\n<p>Une fois que vous avez un site WordPress, il y a deux approches pour r\u00e9cup\u00e9rer les donn\u00e9es de votre CMS WordPress dans votre framework frontend : <a href=\"https:\/\/kinsta.com\/fr\/blog\/wpgraphql-et-wp-rest-api\/\">WPGraphQL et REST API<\/a>.<\/p>\n<p>L&rsquo;API REST facilite la r\u00e9cup\u00e9ration des donn\u00e9es au format JSON en utilisant des approches JavaScript comme l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/blog\/requetes-http-javascript\/#4-how-to-make-an-http-request-in-javascript-using-the-fetch-api\">API Fetch<\/a> ou la biblioth\u00e8que <a href=\"https:\/\/kinsta.com\/fr\/blog\/requetes-http-javascript\/#5-how-to-make-an-http-request-in-javascript-using-axios\">Axios<\/a>. L&rsquo;API REST est int\u00e9gr\u00e9e \u00e0 WordPress depuis la version 4.7, ce qui signifie qu&rsquo;elle ne n\u00e9cessite aucune extension pour fonctionner. Mais pour utiliser WPGraphQL, qui vous permet d&rsquo;interagir avec vos donn\u00e9es WordPress \u00e0 l&rsquo;aide de requ\u00eates GraphQL, vous devez installer l&rsquo;extension WPGraphQL.<\/p>\n<p>Utilisons l&rsquo;API REST pour ce guide. Pour obtenir vos donn\u00e9es WordPress au format JSON, ajoutez <code>\/wp-json\/wp\/v2<\/code> \u00e0 l&rsquo;URL de votre site WordPress :<\/p>\n<pre><code class=\"language-bash\">http:\/\/yoursite.com\/wp-json\/wp\/v2<\/code><\/pre>\n<p>Si l&rsquo;API JSON n&rsquo;est pas activ\u00e9e par d\u00e9faut lorsque vous visitez <code>http:\/\/yoursite.com\/wp-json<\/code>, vous pouvez l&rsquo;activer en ouvrant <strong>Permaliens<\/strong> sous <strong>R\u00e9glages<\/strong> dans le tableau de bord de WordPress et en s\u00e9lectionnant <strong>Nom de la publication<\/strong> ou tout autre nom de votre choix sauf <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=\"Configurez l'API REST de WordPress pour acc\u00e9der aux donn\u00e9es JSON.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Configurez l&rsquo;API REST de WordPress pour acc\u00e9der aux donn\u00e9es JSON.<\/figcaption><\/figure>\n<p>Cela fonctionne pour les sites WordPress locaux et publics, offrant des <a href=\"https:\/\/developer.wordpress.org\/rest-api\/key-concepts\/\" target=\"_blank\" rel=\"noopener noreferrer\">points de terminaison<\/a> pour le contenu qui comprend les <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/posts\/\" target=\"_blank\" rel=\"noopener noreferrer\">articles<\/a>, les <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/pages\/\" target=\"_blank\" rel=\"noopener noreferrer\">pages<\/a>, les <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/comments\/\" target=\"_blank\" rel=\"noopener noreferrer\">commentaires<\/a> et les <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/media\/\" target=\"_blank\" rel=\"noopener noreferrer\">m\u00e9dias<\/a>. Lisez notre <a href=\"https:\/\/kinsta.com\/fr\/blog\/api-rest-wordpress\/\">guide complet de l&rsquo;API REST<\/a> pour en savoir plus.<\/p>\n<h2>Configurer votre environnement Next.js<\/h2>\n<p>Next.js aide les d\u00e9veloppeurs \u00e0 cr\u00e9er des applications web facilement, en am\u00e9liorant les performances et en optimisant l&rsquo;exp\u00e9rience de d\u00e9veloppement. L&rsquo;une de ses principales fonctionnalit\u00e9s est le routage bas\u00e9 sur les fichiers, qui simplifie la cr\u00e9ation d&rsquo;itin\u00e9raires.<\/p>\n<p>Next.js met \u00e9galement l&rsquo;accent sur les performances, en offrant des fonctionnalit\u00e9s telles que le <a href=\"https:\/\/kinsta.com\/fr\/blog\/nextjs-vs-react\/#code-splitting\">fractionnement automatique du code<\/a>, qui ne charge que le JavaScript n\u00e9cessaire pour chaque page, r\u00e9duisant ainsi de mani\u00e8re significative le temps de chargement.<\/p>\n<p>Pour mettre en place un projet Next.js, vous pouvez ex\u00e9cuter la commande suivante et utiliser ses r\u00e9ponses par d\u00e9faut :<\/p>\n<pre><code class=\"language-bash\">npx create-next-app@latest nextjs-wp-demo<\/code><\/pre>\n<p>Pour ce guide, vous pouvez utiliser notre mod\u00e8le de d\u00e9marrage <a href=\"https:\/\/kinsta.com\/fr\/sujets\/git\/\">Git<\/a> en suivant les \u00e9tapes suivantes :<\/p>\n<ol start=\"1\">\n<li>Visitez le <a href=\"https:\/\/github.com\/olawanlejoel\/nextjs-headless-wp\" target=\"_blank\" rel=\"noopener noreferrer\">d\u00e9p\u00f4t GitHub<\/a> de ce projet.<\/li>\n<li>S\u00e9lectionnez <strong>Utiliser ce mod\u00e8le<\/strong> &gt; <strong>Cr\u00e9er un nouveau d\u00e9p\u00f4t<\/strong> pour copier le code de d\u00e9marrage dans un d\u00e9p\u00f4t de votre compte GitHub (cochez la case pour <strong>inclure toutes les branches<\/strong>).<\/li>\n<li>T\u00e9l\u00e9chargez le d\u00e9p\u00f4t sur votre ordinateur local et passez \u00e0 la branche <a href=\"https:\/\/github.com\/olawanlejoel\/nextjs-headless-wp\/tree\/starter-files\" target=\"_blank\" rel=\"noopener noreferrer\">starter-files<\/a> \u00e0 l&rsquo;aide de la commande : <code>git checkout starter-files<\/code>.<\/li>\n<\/ol>\n<ol start=\"4\">\n<li>Installez les d\u00e9pendances n\u00e9cessaires en ex\u00e9cutant la commande <code>npm install<\/code>.<\/li>\n<\/ol>\n<p>Une fois l&rsquo;installation termin\u00e9e, lancez le projet sur votre ordinateur local en ex\u00e9cutant la commande <code>npm run dev<\/code>. Le projet est alors disponible \u00e0 l&rsquo;adresse <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=\"Capture d'\u00e9cran d'un projet de d\u00e9marrage construit avec Next.js.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Capture d&rsquo;\u00e9cran d&rsquo;un projet de d\u00e9marrage construit avec Next.js.<\/figcaption><\/figure>\n<h3>Comprendre le projet<\/h3>\n<p>L&rsquo;App Router a \u00e9t\u00e9 introduit dans Next.js 13, rempla\u00e7ant le r\u00e9pertoire <strong>pages<\/strong> existant pour le routage. Le routage avec l&rsquo;App Router implique \u00e9galement la cr\u00e9ation de dossiers dans le r\u00e9pertoire <strong>app<\/strong>. Ensuite, vous imbriquez un fichier <strong>page.js<\/strong> dans le dossier appropri\u00e9 pour d\u00e9finir votre itin\u00e9raire.<\/p>\n<p>Dans ce projet, <strong>app<\/strong> est le r\u00e9pertoire principal avec lequel vous allez interagir, et vous trouverez la structure de fichiers suivante.<\/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>Trois pages sont cr\u00e9\u00e9es : la page d&rsquo;accueil pour afficher les informations de base, la page du blog pour afficher tous les articles de votre CMS WordPress, et la page dynamique (<strong>[postId]\/page.js<\/strong>) pour le rendu des articles individuels.<\/p>\n<p>Vous remarquerez \u00e9galement le composant <strong>navbar.js<\/strong>, qui est import\u00e9 dans le fichier <strong>layout.js<\/strong> afin de cr\u00e9er une mise en page pour le projet.<\/p>\n<h2>R\u00e9cup\u00e9rer des donn\u00e9es de WordPress vers Next.js<\/h2>\n<p>Avec l&rsquo;API REST de WordPress, vous pouvez r\u00e9cup\u00e9rer des articles, des pages et des types de publication personnalis\u00e9s en envoyant des requ\u00eates HTTP \u00e0 des points de terminaison sp\u00e9cifiques.<\/p>\n<p>Faisons une demande de r\u00e9cup\u00e9ration dans le fichier <strong>blog\/page.js<\/strong> pour r\u00e9cup\u00e9rer tous les articles de votre CMS WordPress, puis faisons une demande pour r\u00e9cup\u00e9rer chaque article dynamiquement dans le fichier <strong>blog\/[postId]\/page.js<\/strong> en fonction du param\u00e8tre <code>id<\/code> pass\u00e9.<\/p>\n<p>Avant d&rsquo;effectuer ces requ\u00eates, il est conseill\u00e9 d&rsquo;ajouter l&rsquo;adresse de votre API JSON \u00e0 une variable d&rsquo;environnement. Cette approche garantit que l&rsquo;URL de base de votre API est facilement configurable et qu&rsquo;elle n&rsquo;est pas cod\u00e9e en dur dans plusieurs fichiers.<\/p>\n<p>Cr\u00e9ez un fichier <strong>.<\/strong> env \u00e0 la racine de votre projet Next.js et ajoutez ce qui suit :<\/p>\n<pre><code class=\"language-bash\">NEXT_PUBLIC_WORDPRESS_API_URL=https:\/\/yoursite.kinsta.cloud\/wp-json\/wp\/v2<\/code><\/pre>\n<p>Assurez-vous de remplacer l&rsquo;URL par l&rsquo;API JSON de votre site. Ajoutez \u00e9galement <code>.env<\/code> \u00e0 votre fichier <strong><a href=\"https:\/\/kinsta.com\/fr\/blog\/gitignore-ne-fonctionne-pas\/\">.gitignore<\/a><\/strong> pour qu&rsquo;il ne pousse pas le fichier vers votre fournisseur Git.<\/p>\n<h3>R\u00e9cup\u00e9rer tous les articles de WordPress vers Next.js<\/h3>\n<p>Pour r\u00e9cup\u00e9rer tous les articles de votre site WordPress, cr\u00e9ez une fonction asynchrone nomm\u00e9e <code>getPosts<\/code> dans votre fichier <strong>blog\/page.j<\/strong> s. Cette fonction utilise l&rsquo;API Fetch pour faire une requ\u00eate GET au point de terminaison <code>\/posts<\/code> de votre API REST 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>Lorsqu&rsquo;elle re\u00e7oit la r\u00e9ponse, elle la convertit en JSON et construit un tableau d&rsquo;objets post. Ces <code>posts<\/code> peuvent \u00eatre rendus dans votre application Next.js, fournissant une liste dynamique d&rsquo;articles de blog r\u00e9cup\u00e9r\u00e9s directement 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>Dans le composant de page Next.js, appelez <code>getPosts<\/code> de mani\u00e8re asynchrone pour r\u00e9cup\u00e9rer les articles. Ensuite, <code>map<\/code> sur le tableau de <code>posts<\/code>, rendez les <code>title<\/code> et <code>excerpt<\/code> de chaque article dans un composant <code>&lt;Link&gt;<\/code>.<\/p>\n<p>Cela permet non seulement d&rsquo;afficher les articles, mais aussi d&rsquo;ins\u00e9rer dans chacun d&rsquo;eux un lien qui permet de naviguer vers une vue d\u00e9taill\u00e9e du message. Ceci est r\u00e9alis\u00e9 en utilisant le routage bas\u00e9 sur les fichiers de Next.js, o\u00f9 l&rsquo;ID de l&rsquo;article est utilis\u00e9 pour g\u00e9n\u00e9rer dynamiquement le chemin de l&rsquo;URL.<\/p>\n<h3>R\u00e9cup\u00e9rer les articles dynamiques de WordPress vers Next.js<\/h3>\n<p>Dans le code ci-dessus, chaque article est entour\u00e9 d&rsquo;un lien qui devrait aider les utilisateurs \u00e0 naviguer vers une vue d\u00e9taill\u00e9e de l&rsquo;article.<\/p>\n<p>Pour les pages d&rsquo;articles individuels, vous utilisez le routage dynamique dans Next.js pour cr\u00e9er une page qui r\u00e9cup\u00e8re et affiche un seul article en fonction de son ID. Une page dynamique <strong>[postID]\/page.js<\/strong> est d\u00e9j\u00e0 cr\u00e9\u00e9e dans le code stater-files.<\/p>\n<p>Cr\u00e9ez une fonction <code>getSinglePost<\/code>, similaire \u00e0 <code>getPosts<\/code>, pour r\u00e9cup\u00e9rer un seul message en utilisant l&rsquo;ID du message pass\u00e9 en param\u00e8tre.<\/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>Dans le composant de page dynamique, vous extrayez l&rsquo;ID du message \u00e0 partir des param\u00e8tres de l&rsquo;URL, vous appelez <code>getSinglePost<\/code> avec cet ID et vous rendez le contenu du message.<\/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>Vous pouvez ensuite remplir la page avec les donn\u00e9es extraites :<\/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>Vous pouvez acc\u00e9der au code complet sur notre <a href=\"https:\/\/github.com\/olawanlejoel\/nextjs-headless-wp\" target=\"_blank\" rel=\"noopener noreferrer\">d\u00e9p\u00f4t GitHub<\/a>.<\/p>\n<h2>D\u00e9ployer gratuitement votre application Next.js sur Kinsta<\/h2>\n<p>Le service d&rsquo;<a href=\"https:\/\/docs.sevalla.com\/static-sites\/overview\">h\u00e9bergement de sites statiques<\/a> de Kinsta permet d&rsquo;h\u00e9berger <strong>gratuitement<\/strong> jusqu&rsquo;\u00e0 100 sites statiques.<\/p>\n<p>Ce service n&rsquo;h\u00e9berge que des fichiers statiques. Si vous utilisez un <a href=\"https:\/\/kinsta.com\/fr\/blog\/generateurs-de-sites-statiques\/\">g\u00e9n\u00e9rateur de site statique<\/a> comme Next.js, vous pouvez configurer des options qui construisent votre projet \u00e0 partir de GitHub et d\u00e9ploient les fichiers statiques sur Kinsta.<\/p>\n<h3>Rendu statique dans Next.js<\/h3>\n<p>Pour activer une exportation statique dans Next.js version 13 ci-dessus, changez le mode <code>output<\/code> dans <strong>next.config.js<\/strong>:<\/p>\n<pre><code class=\"language-js\">const nextConfig = {\n    output: 'export',\n};<\/code><\/pre>\n<p>Maintenant, lorsque vous construisez votre projet, Next.js est cens\u00e9 produire un dossier <strong>out<\/strong> qui contient les ressources <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-le-html\/\">HTML<\/a>, <a href=\"https:\/\/kinsta.com\/fr\/blog\/meilleurs-pratiques-css\/\">CSS<\/a> et <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a> pour votre application.<\/p>\n<p>Depuis la version 13, Next.js a pris en charge le d\u00e9marrage en tant que site statique, puis plus tard la mise \u00e0 niveau optionnelle pour utiliser des fonctionnalit\u00e9s qui n\u00e9cessitent un serveur. Lorsque vous utilisez des fonctions serveur, la construction de vos pages ne g\u00e9n\u00e8re pas de pages statiques.<\/p>\n<p>Par exemple, dans la route dynamique, vous r\u00e9cup\u00e9rez ces donn\u00e9es dynamiquement. Vous devez \u00eatre en mesure de g\u00e9n\u00e9rer tous les articles de mani\u00e8re statique. Vous pouvez le faire en utilisant la fonction <code>generateStaticParams<\/code>.<\/p>\n<p>Cette fonction est utilis\u00e9e en combinaison avec les segments de route dynamique pour g\u00e9n\u00e9rer statiquement des routes au moment de la construction au lieu de les g\u00e9n\u00e9rer \u00e0 la demande au moment de la requ\u00eate. Lorsque vous construisez, <code>generateStaticParams<\/code> s&rsquo;ex\u00e9cute avant que les mises en page ou les pages correspondantes ne soient g\u00e9n\u00e9r\u00e9es.<\/p>\n<p>Dans <strong>[postID]\/page.js<\/strong>, utilisez la fonction <code>generateStaticParams<\/code> pour obtenir l&rsquo;itin\u00e9raire de tous les articles :<\/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>Lorsque vous ex\u00e9cutez la commande de construction, votre projet Next.js g\u00e9n\u00e8re maintenant un r\u00e9pertoire <strong>out<\/strong> avec les fichiers statiques.<\/p>\n<h3>D\u00e9ployer Next.js sur l&rsquo;h\u00e9bergement de site statique Kinsta<\/h3>\n<p>Poussez vos codes vers votre fournisseur Git pr\u00e9f\u00e9r\u00e9 (<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>, ou <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>). Ensuite, suivez ces \u00e9tapes pour d\u00e9ployer votre site statique Next.js sur Kinsta :<\/p>\n<ol start=\"1\">\n<li>Connectez-vous ou cr\u00e9ez un compte pour afficher votre tableau de bord <a href=\"https:\/\/my.kinsta.com\/?lang=fr\" target=\"_blank\" rel=\"noopener noreferrer\">MyKinsta<\/a>.<\/li>\n<li>Autorisez Kinsta avec votre fournisseur Git.<\/li>\n<li>Cliquez sur <strong>Sites statiques<\/strong> dans la colonne lat\u00e9rale de gauche, puis sur <strong>Ajouter un site<\/strong>.<\/li>\n<li>S\u00e9lectionnez le d\u00e9p\u00f4t et la branche \u00e0 partir desquels vous souhaitez d\u00e9ployer.<\/li>\n<li>Attribuez un nom unique \u00e0 votre site.<\/li>\n<li>Ajoutez les param\u00e8tres de construction dans le format suivant :\n<ul>\n<li><strong>Commande de construction :<\/strong> <code>npm run build<\/code><\/li>\n<li><strong>Version du n\u0153ud :<\/strong> <code>18.16.0<\/code><\/li>\n<li><strong>R\u00e9pertoire de publication :<\/strong> <code>out<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ol start=\"7\">\n<li>Enfin, cliquez sur <strong>Cr\u00e9er un site<\/strong>.<\/li>\n<\/ol>\n<p>Et le tour est jou\u00e9 ! En quelques secondes, vous disposez d&rsquo;un site d\u00e9ploy\u00e9. Un lien est fourni pour acc\u00e9der \u00e0 la version d\u00e9ploy\u00e9e de votre site. Vous pourrez par la suite ajouter votre <a href=\"https:\/\/docs.sevalla.com\/applications\/domains\">domaine personnalis\u00e9<\/a> et votre <a href=\"https:\/\/docs.sevalla.com\/applications\/domains#install-a-custom-ssl-certificate\">certificat SSL<\/a> si vous le souhaitez.<\/p>\n<p>Comme alternative \u00e0 l&rsquo;h\u00e9bergement de sites statiques, vous pouvez opter pour le d\u00e9ploiement de votre site statique avec le service d&rsquo;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9bergement d&rsquo;applications<\/a> de Kinsta, qui offre une plus grande flexibilit\u00e9 d&rsquo;h\u00e9bergement, un plus large \u00e9ventail d&rsquo;avantages et l&rsquo;acc\u00e8s \u00e0 des fonctionnalit\u00e9s plus robustes &#8211; comme l&rsquo;\u00e9volutivit\u00e9, le d\u00e9ploiement personnalis\u00e9 \u00e0 l&rsquo;aide d&rsquo;un fichier Docker, et des <a href=\"https:\/\/docs.sevalla.com\/applications\/analytics\">analyses compl\u00e8tes<\/a> englobant des donn\u00e9es en temps r\u00e9el et historiques. Vous n&rsquo;avez pas non plus besoin de configurer votre projet Next.js pour un rendu statique.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Dans cet article, vous avez appris comment tirer parti de WordPress headless dans un projet Next.js pour r\u00e9cup\u00e9rer et afficher les articles de mani\u00e8re dynamique. Cette approche permet l&rsquo;int\u00e9gration transparente du contenu de WordPress dans les applications Next.js, offrant une exp\u00e9rience web moderne et dynamique.<\/p>\n<p>Le potentiel de l&rsquo;API headless CMS s&rsquo;\u00e9tend au-del\u00e0 des simples articles ; elle permet de r\u00e9cup\u00e9rer et de g\u00e9rer les pages, les commentaires, les m\u00e9dias, et bien plus encore.<\/p>\n<p>De plus, l&rsquo;h\u00e9bergement de votre CMS WordPress avec vos frameworks frontend ne doit pas \u00eatre un probl\u00e8me. Avec le tableau de bord <a href=\"https:\/\/my.kinsta.com\/?lang=fr\" target=\"_blank\" rel=\"noopener noreferrer\">MyKinsta<\/a> de Kinsta, vous disposez d&rsquo;une plateforme unifi\u00e9e pour g\u00e9rer facilement vos <a href=\"https:\/\/kinsta.com\/fr\/hebergement-wordpress\/\">sites web<\/a>, <a href=\"https:\/\/sevalla.com\/application-hosting\/\">applications<\/a>, <a href=\"https:\/\/sevalla.com\/database-hosting\/\">bases de donn\u00e9es<\/a> et sites statiques <a href=\"https:\/\/kinsta.com\/fr\/hebergement-wordpress\/\">WordPress<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress existe depuis plus de 20 ans et alimente 42,7 % de tous les sites web sur l&rsquo;internet, selon W3Techs. Il d\u00e9tient \u00e9galement une part de &#8230;<\/p>\n","protected":false},"author":287,"featured_media":76408,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[973,1028,979],"class_list":["post-76407","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-headless-cms","topic-developpement-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>Comment utiliser WordPress comme un CMS headless pour Next.js - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.\" \/>\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\/fr\/blog\/wordpress-headless-next-js\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment utiliser WordPress comme un CMS headless pour Next.js\" \/>\n<meta property=\"og:description\" content=\"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-04T08:07:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-05T14:21:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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=\"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Comment utiliser WordPress comme un CMS headless pour Next.js\",\"datePublished\":\"2024-03-04T08:07:46+00:00\",\"dateModified\":\"2024-03-05T14:21:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/\"},\"wordCount\":2267,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/\",\"name\":\"Comment utiliser WordPress comme un CMS headless pour Next.js - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\",\"datePublished\":\"2024-03-04T08:07:46+00:00\",\"dateModified\":\"2024-03-05T14:21:37+00:00\",\"description\":\"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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\/fr\/blog\/wordpress-headless-next-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CMS Headless\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/headless-cms\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment utiliser WordPress comme un CMS headless pour Next.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"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\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment utiliser WordPress comme un CMS headless pour Next.js - Kinsta\u00ae","description":"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.","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\/fr\/blog\/wordpress-headless-next-js\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment utiliser WordPress comme un CMS headless pour Next.js","og_description":"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.","og_url":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2024-03-04T08:07:46+00:00","article_modified_time":"2024-03-05T14:21:37+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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":"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Joel Olawanle","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Comment utiliser WordPress comme un CMS headless pour Next.js","datePublished":"2024-03-04T08:07:46+00:00","dateModified":"2024-03-05T14:21:37+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/"},"wordCount":2267,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/","url":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/","name":"Comment utiliser WordPress comme un CMS headless pour Next.js - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","datePublished":"2024-03-04T08:07:46+00:00","dateModified":"2024-03-05T14:21:37+00:00","description":"Apprenez dans ce guide \u00e0 am\u00e9liorer les performances de votre site web en int\u00e9grant WordPress \u00e0 Next.js, un framework React de premier plan.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/wordpress-headless-next-js\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/03\/all-how-to-use-wordpress-as-a-headless-cms-for-next-js.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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\/fr\/blog\/wordpress-headless-next-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"CMS Headless","item":"https:\/\/kinsta.com\/fr\/sujets\/headless-cms\/"},{"@type":"ListItem","position":3,"name":"Comment utiliser WordPress comme un CMS headless pour Next.js"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","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\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/76407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=76407"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/76407\/revisions"}],"predecessor-version":[{"id":76431,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/76407\/revisions\/76431"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/translations\/es"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/76407\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/76408"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=76407"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=76407"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=76407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}