{"id":26639,"date":"2023-09-21T20:21:58","date_gmt":"2023-09-21T20:21:58","guid":{"rendered":"\/tutoriels\/?p=26639"},"modified":"2025-03-28T23:17:27","modified_gmt":"2025-03-28T23:17:27","slug":"react-wordpress","status":"publish","type":"post","link":"\/fr\/tutoriels\/react-wordpress","title":{"rendered":"D\u00e9velopper un site WordPress avec React.js : guide du d\u00e9butant"},"content":{"rendered":"<p>WordPress est un puissant <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/quest-ce-quun-cms\"><strong>syst&egrave;me de gestion de contenu (CMS)<\/strong><\/a> qui vous permet de cr&eacute;er des sites simples ou des boutiques de commerce &eacute;lectronique sophistiqu&eacute;es et complexes. Pour int&eacute;grer le code PHP de la plateforme avec JavaScript, vous pouvez utiliser l&rsquo;<a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener\"><strong>API REST WP<\/strong><\/a> et WordPress <a href=\"https:\/\/reactjs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>React<\/strong><\/a>.<\/p><p>D&eacute;velopp&eacute;e par Facebook, React est une biblioth&egrave;que <strong>d&rsquo;interface utilisateur (UI)<\/strong> qui utilise une approche simple, bas&eacute;e sur des composants, pour construire des applications &eacute;volutives, multiplateformes et faciles &agrave; comprendre. Cependant, il est important d&rsquo;apprendre &agrave; l&rsquo;utiliser correctement pour tirer le meilleur parti de ses caract&eacute;ristiques et de ses fonctions.<\/p><p>Dans ce guide, nous allons vous expliquer comment utiliser React avec WordPress. Nous discuterons de ce qu&rsquo;est le framework, soulignerons ses avantages et vous montrerons comment l&rsquo;utiliser. Plongeons dans le vif du sujet !<\/p><figure class=\"wp-block-image size-full\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Mega-WordPress-Cheat-FR.pdf\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR_Intext-banners_Mega-WordPress-Cheat-Sheet-1024x283-1.png\/public\" alt=\"\" class=\"wp-image-41459\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR_Intext-banners_Mega-WordPress-Cheat-Sheet-1024x283-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR_Intext-banners_Mega-WordPress-Cheat-Sheet-1024x283-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR_Intext-banners_Mega-WordPress-Cheat-Sheet-1024x283-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR_Intext-banners_Mega-WordPress-Cheat-Sheet-1024x283-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-introduction-a-react\">Introduction &agrave; React<\/h2><p>Avant de commencer, nous souhaiterions d&rsquo;abord poser la question, <strong>&laquo; qu&rsquo;est-ce que React ? &raquo;<\/strong>. &Eacute;galement connu sous le nom de ReactJS, il s&rsquo;agit de l&rsquo;une des biblioth&egrave;ques JavaScript les plus populaires que vous pouvez utiliser pour le d&eacute;veloppement web.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"326\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/react.jpg\/public\" alt=\"react\" class=\"wp-image-26640\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/react.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/react.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/react.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/react.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Cr&eacute;&eacute;e et maintenue par Facebook, elle comprend un large &eacute;ventail d&rsquo;extraits de code JavaScript qui peuvent &ecirc;tre utilis&eacute;s pour construire des composants d&rsquo;interface utilisateur.<\/p><p>Contrairement &agrave; la croyance populaire, ReactJS n&rsquo;est pas un framework JavaScript puisqu&rsquo;il ne rend que les composants de la couche de visualisation d&rsquo;une application. Vous pouvez donc l&rsquo;associer &agrave; un v&eacute;ritable framework comme <a href=\"https:\/\/vuejs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Vue.js<\/strong><\/a> si vous recherchez des fonctions plus sophistiqu&eacute;es.<\/p><p>Il est &eacute;galement important de noter qu&rsquo;il existe ReactJS et <a href=\"https:\/\/reactnative.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>React Native<\/strong><\/a>. Ce dernier est un framework JavaScript open-source construit sur la biblioth&egrave;que React. Vous pouvez l&rsquo;utiliser pour cr&eacute;er des applications multiplateformes et des composants sp&eacute;cifiques &agrave; une plateforme pour iOS et Android.<\/p><h2 class=\"wp-block-heading\" id=\"h-les-caracteristiques-et-les-fonctions-de-react\">Les caract&eacute;ristiques et les fonctions de React<\/h2><p>Pour comprendre les avantages de React, il est utile de savoir comment elle fonctionne. Voici quelques-unes de ses caract&eacute;ristiques et fonctions les plus importantes :<\/p><h3 class=\"wp-block-heading\">JSX<\/h3><p>La principale extension de la syntaxe JavaScript utilis&eacute;e dans React est <a href=\"https:\/\/reactjs.org\/docs\/introducing-jsx.html\" target=\"_blank\" rel=\"noopener\"><strong>JSX<\/strong><\/a>. Vous pouvez l&rsquo;utiliser pour int&eacute;grer du code HTML dans des objets JavaScript et simplifier des structures de code complexes.<\/p><p>JSX aide &eacute;galement &agrave; pr&eacute;venir les attaques de type <a href=\"https:\/\/owasp.org\/www-community\/attacks\/xss\/\" target=\"_blank\" rel=\"noopener\"><strong>&laquo; cross-site scripting &raquo; (XSS)<\/strong><\/a> en rendant difficile pour des tiers l&rsquo;injection de code suppl&eacute;mentaire par le biais d&rsquo;une entr&eacute;e utilisateur qui n&rsquo;est pas explicitement &eacute;crite dans l&rsquo;application.<\/p><p>Les balises JSX comprennent un nom, des enfants et des attributs. Une balise d&rsquo;image HTML typique ressemblerait &agrave; ceci :<\/p><pre class=\"wp-block-preformatted\">&lt;img class=\"\" src=\"\" alt=\"\" &gt;\n<\/pre><p>Cependant, une balise JSX ressemblerait &agrave; ce qui suit :<\/p><pre class=\"wp-block-preformatted\">&lt;img className=\"\" src=\"\" alt=\"\" \/&gt;\n<\/pre><p>De m&ecirc;me, les valeurs num&eacute;riques sont &eacute;crites entre crochets. Comme en JavaScript, les guillemets repr&eacute;sentent des cha&icirc;nes de caract&egrave;res <\/p><pre class=\"wp-block-preformatted\">const name = 'John Doe&rsquo;;\nconst element = &lt;h1&gt;Hello, {name}&lt;\/h1&gt;;\nReactDOM.render(\nelement,\ndocument.getElementById('root')\n);<\/pre><p>Vous pouvez placer n&rsquo;importe quelle <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Expressions_and_Operators#Expressions\" target=\"_blank\" rel=\"noopener\"><strong>expression JavaScript<\/strong><\/a> valide &agrave; l&rsquo;int&eacute;rieur des crochets. Par exemple &laquo; user.firstName &raquo; ou &laquo; formatName(user) &raquo;.<\/p><h3 class=\"wp-block-heading\">DOM virtuel<\/h3><p>Le <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document_Object_Model\/Introduction\" target=\"_blank\" rel=\"noopener\"><strong>Document Object Model (DOM)<\/strong><\/a> pr&eacute;sente une page web sous la forme d&rsquo;une structure arborescente de donn&eacute;es, que React stocke dans sa m&eacute;moire. React peut ensuite mettre en &oelig;uvre des mises &agrave; jour de certaines parties de l&rsquo;arbre plut&ocirc;t que de le rendre enti&egrave;rement.<\/p><p>Le <a href=\"https:\/\/reactjs.org\/docs\/dom-elements.html\" target=\"_blank\" rel=\"noopener\"><strong>DOM virtuel<\/strong><\/a> offre une liaison de donn&eacute;es &agrave; sens unique. Cela permet de le manipuler et de le mettre &agrave; jour plus rapidement que le DOM original.<\/p><p>Il utilise un processus connu sous le nom de &laquo; diffing &raquo;. React g&eacute;n&egrave;re un nouvel arbre du DOM virtuel, le compare &agrave; l&rsquo;ancien, puis trouve le moyen le plus efficace d&rsquo;appliquer les changements au DOM r&eacute;el. Cela prend moins de temps et n&eacute;cessite moins de ressources, ce qui est b&eacute;n&eacute;fique pour les grands projets qui impliquent beaucoup d&rsquo;interactions avec les utilisateurs.<\/p><p>Le DOM prend &eacute;galement en charge l&rsquo;API d&eacute;clarative. Cela signifie que vous pouvez indiquer &agrave; React l&rsquo;&eacute;tat dans lequel vous souhaitez que l&rsquo;interface utilisateur se trouve pour vous assurer que le DOM correspondra &agrave; cet &eacute;tat.<\/p><h3 class=\"wp-block-heading\">Composants<\/h3><p>Comme nous l&rsquo;avons mentionn&eacute;, les <a href=\"https:\/\/reactjs.org\/docs\/components-and-props.html\" target=\"_blank\" rel=\"noopener\"><strong>composants React<\/strong><\/a> sont des &eacute;l&eacute;ments de code autonomes et r&eacute;utilisables qui composent l&rsquo;interface utilisateur. Ces composants fonctionnent de la m&ecirc;me mani&egrave;re que les fonctions JavaScript. Ils acceptent des props, qui sont des entr&eacute;es arbitraires. Lorsqu&rsquo;un composant fonctionnel renvoie un &eacute;l&eacute;ment, il influence l&rsquo;apparence de l&rsquo;interface utilisateur.<\/p><p>Les props sont en lecture seule. Voici un exemple :<\/p><pre class=\"wp-block-preformatted\">import React, { useState } from 'react'\nimport ReactDOM from 'react-dom'\nconst ParentComponent = () =&gt; {\nconst [stateVariable, setStateVariable] = useState('this is the starting value for the variable');\nreturn (\n&lt;div&gt;\n&lt;h1&gt;This is a function component view&lt;\/h1&gt;\n&lt;ChildComponent exampleProp={stateVariable} \/&gt;\n&lt;\/div&gt;\n)\n}\nconst ChildComponent = (props) =&gt; {\nreturn (\n&lt;div&gt;\n&lt;h2&gt;{props.exampleProp}&lt;\/h2&gt;\n&lt;\/div&gt;\n)\n}\nReactDOM.render( &lt;ParentComponent \/&gt;, document.getElementById('app') );\n<\/pre><p>Il existe deux types principaux de composants : les <strong>composants de class<\/strong>e et les <strong>composants fonctionnels<\/strong>. Les composants de classe utilisent les <strong>hooks WordPress<\/strong> du cycle de vie et les appels d&rsquo;API :<\/p><pre class=\"wp-block-preformatted\">class ExampleComponent extends React.Component {\nconstructor(props) {\nsuper(props);\nthis.state = { };\n}\nrender() {\nreturn (\n&lt;div&gt;\n&lt;h1&gt;This is a view created by a class component&lt;\/h1&gt;\n&lt;\/div&gt;\n);\n}\n}\n<\/pre><p>Alors qu&rsquo;un composant fonctionnel ressemble &agrave; l&rsquo;exemple ci-dessous :<\/p><pre class=\"wp-block-preformatted\">const ExampleComponent = (props) =&gt; {\nconst [stateVariable, setStateVariable] = useState('');\nreturn (\n&lt;div&gt;\n&lt;h1&gt;This is a function component view&lt;\/h1&gt;\n&lt;\/div&gt;\n)\n}\n<\/pre><p>Les composants fonctionnels servent &agrave; restituer des vues sans requ&ecirc;tes de donn&eacute;es ni gestion d&rsquo;&eacute;tat.<\/p><h3 class=\"wp-block-heading\">&Eacute;tat<\/h3><p><a href=\"https:\/\/reactjs.org\/docs\/state-and-lifecycle.html\" target=\"_blank\" rel=\"noopener\"><strong>L&rsquo;&eacute;tat<\/strong><\/a> fait r&eacute;f&eacute;rence &agrave; l&rsquo;objet int&eacute;gr&eacute; des composants React. C&rsquo;est l&agrave; que vous stockez les valeurs des propri&eacute;t&eacute;s des &eacute;l&eacute;ments. Si l&rsquo;&eacute;tat change, le composant effectue un nouveau rendu.<\/p><p>La gestion d&rsquo;&eacute;tat est le processus de gestion de ces &eacute;tats d&rsquo;application et de stockage des donn&eacute;es dans des biblioth&egrave;ques de gestion d&rsquo;&eacute;tat. Vous pouvez utiliser une poign&eacute;e de biblioth&egrave;ques de gestion d&rsquo;&eacute;tat, notamment <a href=\"https:\/\/redux.js.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Redux<\/strong><\/a> et <a href=\"https:\/\/recoiljs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Recoil<\/strong><\/a>, la derni&egrave;re &eacute;tant plus conviviale pour les d&eacute;butants.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.hostinger.com\/fr\/hebergement-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-41453\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-pourquoi-utiliser-react\">Pourquoi utiliser React ?<\/h2><p>Il y a de nombreux avantages &agrave; utiliser React pour le d&eacute;veloppement de WordPress. Tout d&rsquo;abord, il est facile &agrave; utiliser pour les d&eacute;butants et tous les <a href=\"https:\/\/www.hostinger.com\/fr\/hebergement-web\"><strong>meilleurs fournisseurs d&rsquo;h&eacute;bergement Web<\/strong><\/a> supportent son utilisation.<\/p><p>Comme il repose sur du JavaScript et des composants simples, vous pouvez l&rsquo;utiliser pour cr&eacute;er des applications web apr&egrave;s seulement quelques jours d&rsquo;apprentissage. Il existe &eacute;galement de nombreux sites web pour <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/apprendre-a-coder-gratuitement\/\"><strong>apprendre &agrave; coder gratuitement en ligne<\/strong><\/a>. Une solide compr&eacute;hension des bases de JavaScript peut simplifier le processus.<\/p><p>Un autre avantage de React est qu&rsquo;il vous permet de r&eacute;utiliser des composants dans d&rsquo;autres applications. Comme il s&rsquo;agit d&rsquo;un logiciel libre, vous pouvez pr&eacute;construire vos composants et les imbriquer les uns dans les autres sans alourdir votre code.<\/p><p>Les composants React sont &eacute;galement relativement simples &agrave; &eacute;crire, gr&acirc;ce &agrave; l&rsquo;int&eacute;gration JSX, dont nous parlerons dans un instant. Vous pouvez incorporer la typographie HTML, les balises et exploiter le rendu de fonctions multiples pour le d&eacute;veloppement d&rsquo;applications dynamiques.<\/p><p>Avec React, vous pouvez &eacute;galement utiliser l&rsquo;interface de ligne de commande (CLI) officielle &ndash; <strong>Create React App<\/strong> &ndash; pour acc&eacute;l&eacute;rer le d&eacute;veloppement d&rsquo;applications &agrave; page unique. Il est livr&eacute; avec des outils pr&eacute;configur&eacute;s qui peuvent vous aider &agrave; rationaliser le processus d&rsquo;installation et d&rsquo;apprentissage.<\/p><p>Enfin, React est &eacute;galement adapt&eacute; au r&eacute;f&eacute;rencement. L&rsquo;impl&eacute;mentation du DOM virtuel permet d&rsquo;augmenter la vitesse des pages, en am&eacute;liorant les performances et le rendu c&ocirc;t&eacute; serveur, ce qui facilite l&rsquo;exploration de votre site par les robots.<\/p><h2 class=\"wp-block-heading\" id=\"h-apercu-de-lapi-rest-de-wp\">Aper&ccedil;u de l&rsquo;API REST de WP<\/h2><p><a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/api-rest-wordpress\/\"><strong>L&rsquo;interface de programme d&rsquo;application (API) WordPress REST<\/strong><\/a> permet aux d&eacute;veloppeurs d&rsquo;int&eacute;grer des frameworks JavaScript tels que React &agrave; WordPress. Vous pouvez acc&eacute;der &agrave; l&rsquo;API WP REST depuis le front-end de votre site, ajouter des types de posts personnalis&eacute;s, et construire une application React soutenue par cette API.<\/p><p>L&rsquo;API REST WP est un ensemble de protocoles utilis&eacute;s pour construire des applications logicielles. Ils d&eacute;finissent comment les informations et les donn&eacute;es sont partag&eacute;es entre les programmes et comment leurs composants interagissent. REST, abr&eacute;viation de &laquo; Representational State Transfer &raquo;, fait r&eacute;f&eacute;rence aux contraintes architecturales des programmes qui d&eacute;finissent le style.<\/p><p>Le format de structuration des donn&eacute;es &agrave; lire par les applications s&rsquo;appelle <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/quest-ce-que-json\"><strong>JavaScript Object Notation (JSON)<\/strong><\/a>. Il permet de rationaliser la communication entre WordPress et d&rsquo;autres applications et programmes.<\/p><p>L&rsquo;API REST de WordPress cr&eacute;e un environnement de d&eacute;couplage qui permet aux utilisateurs de traiter <strong>WordPress comme un CMS sans t&ecirc;te<\/strong>. Cela signifie qu&rsquo;une vari&eacute;t&eacute; de frameworks frontaux peut &ecirc;tre utilis&eacute;e pour accrocher le back-end de WordPress. C&rsquo;est un avantage pour les d&eacute;veloppeurs qui ne sont pas trop enthousiastes &agrave; propos de PHP.<\/p><h2 class=\"wp-block-heading\" id=\"h-react-avant-de-commencer\">React &ndash; Avant de commencer<\/h2><p>Des connaissances de base en <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/qu-est-ce-que-javascript\"><strong>JavaScript<\/strong><\/a>, <strong>CSS<\/strong>, et <strong>HTML <\/strong>vous aideront &agrave; apprendre comment utiliser React. En outre, le processus d&rsquo;apprentissage peut &ecirc;tre plus efficace si vous &ecirc;tes familier avec <a href=\"http:\/\/es6-features.org\/\" target=\"_blank\" rel=\"noopener\"><strong>ECMAScript 6<\/strong><\/a> (&eacute;galement connu sous le nom d&rsquo;ES6), la programmation fonctionnelle et la programmation orient&eacute;e objet.<\/p><p>En termes de programme, vous aurez &eacute;galement besoin de quelques d&eacute;pendances install&eacute;es sur votre ordinateur.Tel que <strong>NodeJS<\/strong> et <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/quest-ce-que-npm-une-introduction-de-base-pour-les-debutants\"><strong>npm<\/strong><\/a> ainsi qu&rsquo;un &eacute;diteur de texte. Si vous le souhaitez, vous pouvez &eacute;galement utiliser <a href=\"https:\/\/git-scm.com\/downloads\" target=\"_blank\" rel=\"noopener\"><strong>Git<\/strong><\/a> pour le contr&ocirc;le des versions.<\/p><p>La mani&egrave;re la plus populaire de d&eacute;velopper des projets React pour WordPress est d&rsquo;utiliser <a href=\"https:\/\/create-react-app.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>Create React App<\/strong><\/a>:<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"359\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/creer-application-react.png\/public\" alt=\"creer application react\" class=\"wp-image-26641\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/creer-application-react.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/creer-application-react.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/creer-application-react.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/creer-application-react.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>CRA fournit un environnement simple pour apprendre React et l&rsquo;utiliser pour construire des applications &agrave; page unique. Notez que pour l&rsquo;utiliser, vous aurez d&rsquo;abord besoin de Node et de npm sur votre appareil.<\/p><p>Pour cr&eacute;er un nouveau projet, vous pouvez ex&eacute;cuter la commande suivante dans votre terminal :<\/p><pre class=\"wp-block-preformatted\">npx create-react-app wp-react-demo<\/pre><p>Si vous ne l&rsquo;avez pas encore fait, la commande vous confirmera que vous souhaitez installer Create React App avant de cr&eacute;er la d&eacute;mo. Cela cr&eacute;e un mod&egrave;le standard. Vous pouvez &eacute;galement remplacer &laquo; wp-react-demo &raquo; par votre propre nom.<\/p><p>Ensuite, ex&eacute;cutez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">cd wp-react-demo\nnpm start\n<\/pre><p>La structure du r&eacute;pertoire ressemblera &agrave; ceci :<\/p><pre class=\"wp-block-preformatted\">&#9500;&#9472;&#9472; README.md\n&#9500;&#9472;&#9472; package.json\n&#9500;&#9472;&#9472; public\n&#9474; &#9500;&#9472;&#9472; favicon.ico\n&#9474; &#9500;&#9472;&#9472; index.html\n&#9474; &#9492;&#9472;&#9472; manifest.json\n&#9500;&#9472;&#9472; src\n&#9474; &#9500;&#9472;&#9472; App.css\n&#9474; &#9500;&#9472;&#9472; App.js\n&#9474; &#9500;&#9472;&#9472; App.test.js\n&#9474; &#9500;&#9472;&#9472; index.css\n&#9474; &#9500;&#9472;&#9472; index.js\n&#9474; &#9500;&#9472;&#9472; logo.svg\n&#9474; &#9492;&#9472;&#9472; registerServiceWorker.js\n<\/pre><p>Vous trouverez tous les fichiers JavaScript sur lesquels vous allez travailler dans le r&eacute;pertoire src. Maintenant, vous pouvez visiter <strong>localhost:3000<\/strong> pour charger le fichier <strong>index.html<\/strong>.<\/p><p>Le fichier <strong>public\/index.html<\/strong> ne contient pas grand-chose. Cependant, vous pouvez trouver la ligne suivante, qui sera le point de d&eacute;part de votre projet :<\/p><pre class=\"wp-block-preformatted\">&lt;div id=\"root\"&gt;&lt;\/div&gt;<\/pre><p>Sous le fichier<strong> index.js<\/strong> du r&eacute;pertoire src, vous trouverez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from '.\/App';\nReactDOM.render(&lt;App \/&gt;, document.getElementById('root'));\n<\/pre><p>Cela signifie qu&rsquo;il rend le composant <strong>App<\/strong>, que vous pouvez trouver sous<strong> src.\/App.js<\/strong>. Vous pouvez le remplacer par votre propre contenu HTML. Nous pouvons utiliser l&rsquo;insider HTML render()gr&acirc;ce &agrave; l&rsquo;extension de la syntaxe JSX.<\/p><h2 class=\"wp-block-heading\" id=\"h-comment-interroger-lapi-rest-de-wp-depuis-react\">Comment interroger l&rsquo;API REST de WP depuis React<\/h2><p>Par d&eacute;faut, vous pouvez faire une une requ&ecirc;te GET pour utiliser l&rsquo;API REST de WP sur le front-end de votre site. Par exemple, vous pouvez utiliser \/wp-json\/wp\/v2\/posts pour obtenir tous vos posts. Pour rester dans l&rsquo;exemple pr&eacute;c&eacute;dent, les donn&eacute;es de ces posts se trouvent &agrave; l&rsquo;adresse <strong>http:\/\/localhost\/wp-json\/wp\/v2\/posts\/<\/strong>.<\/p><p>Pour commencer avec React, vous pouvez lancer cette commande dans votre terminal :<\/p><pre class=\"wp-block-preformatted\">npx create-react-app react-app<\/pre><p>Ensuite, ex&eacute;cutez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">cd react-app\nnpm install @material-ui\/core\n<\/pre><p>Vous pouvez ensuite entrer l&rsquo;exemple ci-dessous :<\/p><pre class=\"wp-block-preformatted\">import React, { useEffect, useState } from 'react';\nimport Card from '@material-ui\/core\/Card';\nimport CardContent from '@material-ui\/core\/CardContent';\nimport Typography from '@material-ui\/core\/Typography';\nimport Grid from '@material-ui\/core\/Grid';\nexport default function Posts() {\nconst [posts, setPosts] = useState([]);\nuseEffect(() =&gt; {\nasync function loadPosts() {\nconst response = await fetch('\/wp-json\/wp\/v2\/posts');\nif(!response.ok) {\n\/\/ oups! something went wrong\nreturn;\n}\nconst posts = await response.json();\nsetPosts(posts);\n}\nloadPosts();\n}, [])\nreturn (\n&lt;Grid container spacing={2}&gt;\n{posts.map((post, index) =&gt; (\n&lt;Grid item xs={4} key={index}&gt;\n&lt;Card&gt;\n&lt;CardContent&gt;\n&lt;Typography\ncolor=\"textSecondary\"\ngutterBottom\ndangerouslySetInnerHTML={{__html: post.title.rendered}} \/&gt;\n&lt;Typography\nvariant=\"body2\"\ncomponent=\"p\"\ndangerouslySetInnerHTML={{__html: post.content.rendered}} \/&gt;\n&lt;\/CardContent&gt;\n&lt;\/Card&gt;\n&lt;\/Grid&gt;\n))}\n&lt;\/Grid&gt;\n);\n}\n<\/pre><p>L&rsquo;exemple ci-dessus utilise les <a href=\"https:\/\/reactjs.org\/docs\/hooks-overview.html\" target=\"_blank\" rel=\"noopener\"><strong>Hooks React<\/strong><\/a> useEffect et useState. Le premier d&eacute;clare le tableau de posts et appelle &agrave; le mettre &agrave; jour, tandis que le second r&eacute;cup&egrave;re le code.<\/p><p>\n\n\n    <p class=\"warning\">\n        Attention ! Lorsque vous utilisez dangerouslySetInnerHTML dans votre code, soyez conscient des risques suivants :<br>\n1. Vuln&eacute;rabilit&eacute; : Une mauvaise utilisation peut exposer votre application &agrave; des attaques de type cross-site scripting (XSS).<br>\n2. Maintenabilit&eacute; du code : Il devient plus difficile de maintenir et de d&eacute;boguer le code lorsque le HTML est directement inject&eacute;.<br>\n    <\/p>\n    \n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-comment-creer-un-type-darticle-personnalise-avec-react\">Comment cr&eacute;er un type d&rsquo;article personnalis&eacute; avec React<\/h2><p>Vous pouvez &eacute;galement utiliser React pour cr&eacute;er un <strong><a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/comment-creer-custom-post-type-wordpress\">type d&rsquo;article personnalis&eacute; sur WordPress<\/a><\/strong>. Cependant, il y a quelques outils que vous devrez installer &agrave; l&rsquo;avance. Cela vous aidera &agrave; rendre le processus aussi simple et fluide que possible.Tout d&rsquo;abord, vous devrez ajouter le plugin WordPress <a href=\"https:\/\/wordpress.org\/plugins\/custom-post-type-ui\/\" target=\"_blank\" rel=\"noopener\"><strong>Custom Post Type UI<\/strong><\/a>.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"922\" height=\"293\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/custom-post-type-plugin.png\/public\" alt=\"plugin de type de publication personnalis&eacute;\n\" class=\"wp-image-26643\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/custom-post-type-plugin.png\/w=922,fit=scale-down 922w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/custom-post-type-plugin.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/custom-post-type-plugin.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/custom-post-type-plugin.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 922px) 100vw, 922px\" \/><\/figure><p>Ce plugin simplifie le processus de cr&eacute;ation de types d&rsquo;articles personnalis&eacute;s dans WordPress.<\/p><p>Nous vous recommandons &eacute;galement d&rsquo;installer <a href=\"https:\/\/wordpress.org\/plugins\/advanced-custom-fields\/\" target=\"_blank\" rel=\"noopener\"><strong>Advanced Custom Fields (ACF)<\/strong><\/a>.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"332\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/advanced-custom-field.jpg\/public\" alt=\"advanced custom field\" class=\"wp-image-26644\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/advanced-custom-field.jpg\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/advanced-custom-field.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/advanced-custom-field.jpg\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/advanced-custom-field.jpg\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Il s&rsquo;agit &eacute;galement d&rsquo;un outil gratuit. Ce plugin peut &ecirc;tre utilis&eacute; pour cr&eacute;er et ajouter des champs personnalis&eacute;s &agrave; vos types d&rsquo;articles personnalis&eacute;s. Nous vous conseillons &eacute;galement d&rsquo;installer <a href=\"https:\/\/wordpress.org\/plugins\/acf-to-rest-api\/\" target=\"_blank\" rel=\"noopener\"><strong>L&rsquo;API ACF to REST<\/strong><\/a> pour rendre vos champs personnalis&eacute;s accessibles dans vos types d&rsquo;articles.<\/p><p>Pour commencer, naviguez vers<em> <\/em><strong>CPT UI &gt; Add\/Edit Post Types<\/strong><em> <\/em>depuis votre zone d&rsquo;administration. Dans notre exemple, nous utiliserons le nom &laquo; Books&raquo;. Nous s&eacute;lectionnerons &eacute;galement l&rsquo;option de remplissage automatique des autres champs.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"550\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-edit-post-types.png\/public\" alt=\"wordpress edit post types\" class=\"wp-image-26645\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-edit-post-types.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-edit-post-types.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-edit-post-types.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-edit-post-types.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Dans la section <strong>Show in REST API<\/strong>, r&eacute;glez-la sur <strong>True<\/strong> et entrez &laquo; Books &raquo;comme nom de base de l&rsquo;API REST. Sous <strong>Supports<\/strong>, cochez les cases <strong>Author<\/strong><em> <\/em>et <strong>Custom fields<\/strong>. Cliquez sur <strong>Save Post Type<\/strong> lorsque vous avez fini.<\/p><p>Ensuite, nous pouvons cr&eacute;er des champs personnalis&eacute;s pour le type d&rsquo;article personnalis&eacute;. Naviguez vers <strong>Custom Fields &gt; Add New<\/strong>, et entrez un titre appropri&eacute;, tel que &laquo; Book Info &raquo;. Vous pouvez cliquer sur <strong>Add Field,<\/strong><em> <\/em>puis compl&eacute;ter l&rsquo;&eacute;tiquette, le nom et le type du champ.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-add-field.png\/public\" alt=\"wordpress ajouter un champ\" class=\"wp-image-26646\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-add-field.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-add-field.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-add-field.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/09\/wordpress-add-field.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Sous <strong>Location<\/strong>, vous pouvez d&eacute;finir le type d&rsquo;article pour qu&rsquo;il corresponde au type d&rsquo;article personnalis&eacute;<em> <\/em><strong>Book<\/strong>. Lorsque vous avez termin&eacute;, s&eacute;lectionnez <strong>Publish<\/strong> pour activer le champ personnalis&eacute;.<\/p><p>Ensuite, allez dans <strong>My Books &gt; Add New<\/strong><em> <\/em>et entrez son titre, son r&eacute;sum&eacute; et son image vedette. Vous pouvez r&eacute;p&eacute;ter ce processus pour en cr&eacute;er autant que vous le souhaitez.<\/p><p>Maintenant, depuis votre terminal, entrez les commandes suivantes, en ex&eacute;cutant chacune d&rsquo;entre elles avant de passer &agrave; la suivante :<\/p><pre class=\"wp-block-preformatted\">npx create-react-app frontend\ncd frontend\nnpm i axios\nnpm start\n<\/pre><p>Ensuite, dans le r&eacute;pertoire Src, vous pouvez cr&eacute;er un dossier appel&eacute; <em>components<\/em>, suivi d&rsquo;un fichier appel&eacute;<strong> books.js. <\/strong>Lorsque vous avez termin&eacute;, entrez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">import React, { Component } from 'react';\nimport axios from 'axios';\nexport class Books extends Component {\nstate = {\nbooks: [],\nisLoaded: false\n}\ncomponentDidMount () {\naxios.get('http:\/\/localhost:3000\/wp-json\/wp\/v2\/books')\n.then(res =&gt; this.setState({\nbooks: res.data,\nisLoaded: true\n}))\n.catch(err =&gt; console.log(err))\n}\nrender() {\nconsole.log(this.state);\nreturn (\n&lt;div&gt;\n&lt;\/div&gt;\n)\n}\n}\nexport default Books;<\/pre><p>Dans le fichier <strong>App.js<\/strong>, entrez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">import React from 'react';\nimport '.\/App.css';\nimport Books from '.\/components\/Books';\nfunction App() {\nreturn (\n&lt;div className=\"App\"&gt;\n&lt;Books&gt;\n&lt;\/div&gt;\n);\n}\nexport default App;\n<\/pre><p>l&rsquo;application React. Vous pouvez voir la console de donn&eacute;es &laquo; Book &raquo; lorsque vous l&rsquo;ouvrez dans un navigateur. Vous pouvez afficher chaque titre en parcourant chaque livre.Entrez ce qui suit dans <strong>Book.js<\/strong>:<\/p><pre class=\"wp-block-preformatted\">render() {\nconst {books, isLoaded} = this.state;\nreturn (\n&lt;div&gt;\n{books.map(book =&gt; &lt;h4&gt;{book.title.rendered}&lt;\/h4&gt;)}\n&lt;\/div&gt;\n)\n}<\/pre><p>Notez que vous pouvez &eacute;galement s&eacute;parer la collection de livres en un seul composant &laquo; livre &raquo;. Pour ce faire, cr&eacute;ez un fichier dans src\/components. Vous pouvez &eacute;galement ajouter un CSS personnalis&eacute; pour styliser le type d&rsquo;article personnalis&eacute; (app.css).<\/p><h2 class=\"wp-block-heading\" id=\"h-comment-creer-un-theme-wordpress-react-2-methodes\">Comment cr&eacute;er un th&egrave;me WordPress React (2 m&eacute;thodes)<\/h2><p>Vous vous demandez peut-&ecirc;tre <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/creer-un-theme-wordpress\/\"><strong>comment cr&eacute;er un th&egrave;me WordPress<\/strong><\/a> en utilisant React. Il existe une poign&eacute;e d&rsquo;options, alors regardons deux m&eacute;thodes populaires :<\/p><h3 class=\"wp-block-heading\">1. Cr&eacute;er un th&egrave;me WordPress React en utilisant les scripts WP<\/h3><p>Dans les applications React typiques, vous devez importer React au d&eacute;but des fichiers. Cependant, depuis <a href=\"https:\/\/make.wordpress.org\/core\/2018\/12\/06\/javascript-packages-and-interoperability-in-5-0-and-beyond\/\" target=\"_blank\" rel=\"noopener\"><strong>WordPress 5.0<\/strong><\/a>, le CMS est livr&eacute; avec les biblioth&egrave;ques React et ReactDOM et les exporte dans<\/p><p>wp.element, un objet fen&ecirc;tre global.<\/p><p>Si vous avez d&eacute;j&agrave; utilis&eacute; React, vous avez probablement utilis&eacute; Create React App pour ex&eacute;cuter votre serveur de d&eacute;veloppement. Cependant, ce n&rsquo;est pas n&eacute;cessaire avec WordPress.<\/p><p>L&rsquo;&eacute;quipe de WordPress a cr&eacute;&eacute; un package wp-scripts bas&eacute; sur les react-scripts utilis&eacute;s avec Create React App. WP Scripts inclut les commandes par d&eacute;faut.Pour charger React dans votre th&egrave;me, naviguez jusqu&rsquo;au fichier <strong>functions.php<\/strong> de votre th&egrave;me, et ajoutez l&rsquo;extrait de code suivant :<\/p><pre class=\"wp-block-preformatted\">\/\/ Enqueue Theme JS w React Dependency\nadd_action( 'wp_enqueue_scripts', 'my_enqueue_theme_js' );\nfunction my_enqueue_theme_js() {\nwp_enqueue_script(\n'my-theme-frontend',\nget_stylesheet_directory_uri() . '\/build\/index.js',\n['wp-element'],\ntime(), \/\/ Change this to null for production\ntrue\n);\n}\n<\/pre><p>Cela ajoutera l&rsquo;&eacute;l&eacute;ment wp-element comme d&eacute;pendance de votre fichier JavaScript. Ensuite, nous devons cr&eacute;er un fichier<strong> package.json<\/strong>. Ex&eacute;cutez la commande suivante depuis la racine de votre th&egrave;me WordPress :<\/p><pre class=\"wp-block-preformatted\">npm init\n<\/pre><p>Une fois que c&rsquo;est fait, ex&eacute;cutez la commande suivante :<\/p><pre class=\"wp-block-preformatted\">npm install @wordpress\/scripts --save-dev\n<\/pre><p>Les scripts WP seront t&eacute;l&eacute;charg&eacute;s dans votre <strong>node_modules<\/strong>, et seront donc disponibles pour &ecirc;tre utilis&eacute;s dans votre ligne de commande. Pour faire correspondre les scripts WP aux scripts NPM, vous pouvez naviguer dans votre fichier <strong>package.json<\/strong>, charger les param&egrave;tres &laquo; scripts &raquo;, et les remplacer par cet exemple :<\/p><pre class=\"wp-block-preformatted\">{\n\"name\": \"myreacttheme\",\n\"version\": \"1.0.0\",\n\"description\": \"My WordPress theme with React\",\n\"main\": \"src\/index.js\",\n\"dependencies\": {},\n\"devDependencies\": {\n\"@wordpress\/scripts\": \"^5.1.0\"\n},\n\"scripts\": {\n\"build\": \"wp-scripts build\",\n\"check-engines\": \"wp-scripts check-engines\",\n\"check-licenses\": \"wp-scripts check-licenses\",\n\"lint:css\": \"wp-scripts lint-style\",\n\"lint:js\": \"wp-scripts lint-js\",\n\"lint:pkg-json\": \"wp-scripts lint-pkg-json\",\n\"start\": \"wp-scripts start\",\n\"test:e2e\": \"wp-scripts test-e2e\",\n\"test:unit\": \"wp-scripts test-unit-js\"\n},\n\"author\": \"\",\n\"license\": \"1 GNU V2+, MIT\"\n}\n<\/pre><p>Vous pouvez ensuite ex&eacute;cuter ce qui suit :<\/p><pre class=\"wp-block-preformatted\">npm start\n<\/pre><p>Cela recherchera les fichiers import&eacute;s de<strong> src\/index.js<\/strong> et les construira dans<strong> build\/index.js<\/strong> chaque fois qu&rsquo;un fichier est modifi&eacute;.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.hostinger.com\/fr\/hebergement-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-41453\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><h3 class=\"wp-block-heading\">2. Cr&eacute;er un th&egrave;me WordPress React en utilisant un Create-React-WPTheme<\/h3><p>Une autre option est d&rsquo;utiliser <a href=\"https:\/\/github.com\/devloco\/create-react-wptheme\" target=\"_blank\" rel=\"noopener\"><strong>create-react-wptheme<\/strong><\/a> de devloco. Ce package est similaire &agrave; create-react-app. Cependant, il utilise WordPress au lieu de webpack comme serveur de d&eacute;veloppement. Vous aurez &eacute;galement acc&egrave;s &agrave; toutes les fonctions de base, les hooks, les actions, les filtres, etc.<\/p><p>Pour le mettre en place, vous pouvez d&eacute;marrer un terminal (ou git bash) dans votre installation locale de WordPress, puis taper la commande suivante :<\/p><pre class=\"wp-block-preformatted\">npx create-react-wptheme barebones<\/pre><p><strong>&laquo; Barebones &raquo;<\/strong> est le nom du th&egrave;me. Vous pouvez le changer pour mettre n&rsquo;importe quel nom que vous souhaitez donner &agrave; votre th&egrave;me.<\/p><p>Vous verrez un message vous informant que l&rsquo;installation a cr&eacute;&eacute; un dossier racine et un r&eacute;pertoire &laquo; react-src &raquo; &agrave; l&rsquo;int&eacute;rieur de celui-ci. Ce r&eacute;pertoire est important car il contiendra votre code non compil&eacute;.<\/p><p>Ensuite, nous devons ajouter les fichiers <strong>styles.css<\/strong>, <strong>index.php<\/strong>, et d&rsquo;autres fichiers n&eacute;cessaires pour le valider. Dans le terminal, entrez la commande suivante :<\/p><pre class=\"wp-block-preformatted\">cd barebones\/react-src\nnpm run wpstart\n<\/pre><p>Vous devriez maintenant voir votre nouveau th&egrave;me lorsque vous naviguez vers <strong>wp-admin &gt; themes<\/strong>. Cliquez sur le bouton <strong>Activate<\/strong>, puis retournez dans le terminal et ex&eacute;cutez la commande suivante :<\/p><pre class=\"wp-block-preformatted\">npm run wpstart<\/pre><p>Cela devrait automatiquement ouvrir un nouvel onglet de navigateur. Notez que les fichiers situ&eacute;s dans le dossier racine (tout ce qui est en dehors de react-src) ne doivent pas &ecirc;tre &eacute;dit&eacute;s. Ils contiennent la version compil&eacute;e du code n&eacute;cessaire &agrave; WordPress et React.<\/p><p>Pour cr&eacute;er un nouveau th&egrave;me, vous pouvez utiliser ce qui suit :<\/p><pre class=\"wp-block-preformatted\">npx create-react-wptheme my_react_theme<\/pre><p>Vous pouvez modifier &laquo; my_react_theme &raquo; comme vous le souhaitez. Ensuite, vous pouvez entrer la commande suivante :<\/p><pre class=\"wp-block-preformatted\">cd my_react_theme\/react-src\nnpm run start\n<\/pre><p>N&rsquo;oubliez pas de le remplacer par le m&ecirc;me nom que celui que vous avez utilis&eacute; &agrave; l&rsquo;&eacute;tape pr&eacute;c&eacute;dente. Cela permet de configurer le th&egrave;me pour qu&rsquo;il soit visible dans la zone d&rsquo;administration.<\/p><p>Une fois le d&eacute;veloppement de votre th&egrave;me termin&eacute;, vous devrez utiliser la commande <strong>build <\/strong>pour le mettre en production. Pour ce faire, ouvrez votre invite de commande, naviguez jusqu&rsquo;au dossier react-src de votre th&egrave;me, et ex&eacute;cutez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">npm run build\n<\/pre><p>Cela optimisera vos fichiers situ&eacute;s dans un dossier. Vous pouvez ensuite le d&eacute;ployer sur votre serveur.<\/p><h2 class=\"wp-block-heading\" id=\"h-comment-ajouter-react-a-un-modele-de-page-personnalise\">Comment ajouter React &agrave; un mod&egrave;le de page personnalis&eacute;<\/h2><p>Si vous vous demandez <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/theme-enfant-wordpress\/\"><strong>comment cr&eacute;er un th&egrave;me enfant WordPress<\/strong><\/a> en utilisant React, le processus est relativement similaire. Vous pouvez ajouter React &agrave; un <strong>mod&egrave;le de page personnalis&eacute;<\/strong>.<\/p><p>Commen&ccedil;ons par une structure de th&egrave;me standard :<\/p><pre class=\"wp-block-preformatted\">\/build\n\/src\n\/-- index.js\nfunctions.php\npackage.json\npage-react.php\nstyle.css\n<\/pre><p>Ensuite, vous devez ajouter le code suivant au fichier <strong>functions.php <\/strong>de votre th&egrave;me :<\/p><pre class=\"wp-block-preformatted\">&lt;?php\nadd_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );\nfunction my_theme_enqueue_styles() {\n$parent_style = 'twentytwenty-style';\nwp_enqueue_style( $parent_style, get_template_directory_uri() . '\/style.css' );\nwp_enqueue_style( 'child-style',\nget_stylesheet_directory_uri() . '\/style.css',\n[ $parent_style ],\ntime() \/\/For production use wp_get_theme()-&gt;get('Version')\n);\nwp_enqueue_script(\n'my-theme-frontend',\nget_stylesheet_directory_uri() . '\/build\/index.js',\n['wp-element'],\ntime() \/\/For production use wp_get_theme()-&gt;get('Version')\n);\n}\n<\/pre><p>Vous devrez &eacute;galement ajouter du code &agrave; votre fichier<strong> style.css<\/strong>. Copiez et collez-y ce qui suit :<\/p><pre class=\"wp-block-preformatted\">\/*\nTheme Name: Twenty Twenty Child\nDescription: Twenty Twenty Child Theme\nAuthor: Your Name\nAuthor URI: https:\/\/yourwebsite.com\nTemplate: twentytwenty\nVersion: 0.9.0\nLicense: GNU General Public License v2 or later\nLicense URI: http:\/\/www.gnu.org\/licenses\/gpl-2.0.html\nText Domain: twentytwentychild\n*\/\n<\/pre><p>Vous pouvez ensuite cr&eacute;er un mod&egrave;le de page personnalis&eacute; de base <strong>page-react.php<\/strong> avec cet exemple :<\/p><pre class=\"wp-block-preformatted\">&lt;? php\n\/**\n* Template Name: React Template\n*\/\nget_header();\n?&gt;\n&lt;main id=\"site-content\" role=\"main\"&gt;\n&lt;article class=\"post-2 page type-page status-publish hentry\"&gt;\n&lt;?php get_template_part( 'template-parts\/entry-header' ); ?&gt;\n&lt;div class=\"post-inner thin\"&gt;\n&lt;div class=\"entry-content\"&gt;\n&lt;div id=\"react-app\"&gt;&lt;\/div&gt;&lt;!-- #react-app --&gt;\n&lt;\/div&gt;&lt;!-- .entry-content --&gt;\n&lt;\/div&gt;&lt;!-- .post-inner --&gt;\n&lt;\/article&gt;&lt;!-- .post --&gt;\n&lt;\/main&gt;&lt;!-- #site-content --&gt;\n&lt;?php get_template_part( 'template-parts\/footer-menus-widgets' ); ?&gt;\n&lt;?php get_footer(); ?&gt;\n<\/pre><p>Vous pouvez maintenant cr&eacute;er une nouvelle page dans WordPress et s&eacute;lectionner <strong>React Template<\/strong> comme mod&egrave;le de page.<\/p><h2 class=\"wp-block-heading\" id=\"h-comment-utiliser-react-dans-votre-application\">Comment utiliser React dans votre application<\/h2><p>Si vous souhaitez utiliser React dans une application existante, vous pouvez ajouter son <strong>r&eacute;seau de diffusion de contenu (CDN)<\/strong> directement &agrave; votre fichier HTML. Pour commencer, acc&eacute;dez &agrave; la page HTML o&ugrave; vous souhaitez ajouter React.<\/p><p>Ins&eacute;rez une balise &lt;div&gt;&nbsp; vide. Cela cr&eacute;era un conteneur dans lequel vous pourrez rendre un composant. Pour cet exemple, disons que nous essayons de cr&eacute;er un bouton.<\/p><p>Ensuite, ins&eacute;rez trois balises &lt;script&gt; sur la page avant la balise de fermeture &lt;\/body&gt;. Les deux premi&egrave;res seront utilis&eacute;es pour charger React, et la troisi&egrave;me chargera le code de votre composant.<\/p><p>Maintenant, dans le m&ecirc;me dossier que votre page HTML, cr&eacute;ez un nouveau fichier et nommez-le <strong>button.js <\/strong>(ou tout autre nom correspondant &agrave; l&rsquo;&eacute;l&eacute;ment que vous ajoutez). Copiez et collez le code suivant dans ce fichier :<\/p><pre class=\"wp-block-preformatted\">'use strict';\nconst e = React.createElement;\nclass Button extends React.Component {\nconstructor(props) {\nsuper(props);\nthis.state = { clicked: false };\n}\nrender() {\nif (this.state.clicked) {\nreturn 'You pressed this button.';\n}\nreturn e(\n'button',\n{ onClick: () =&gt; this.setState({ clicked: true }) },\n'Press Me'\n);\n}\n}\n<\/pre><p>Vous obtiendrez ainsi un composant de type bouton qui affiche un message quand on clique dessus. Pour utiliser le bouton dans votre page HTML, vous pouvez ajouter l&rsquo;extrait de code suivant au bas du fichier<strong> button.js<\/strong> :<\/p><pre class=\"wp-block-preformatted\">const domContainer = document.querySelector('#button_container');\nReactDOM.render(e(Button), domContainer);<\/pre><p>Il renvoie au conteneur &lt;div&gt; que vous avez ajout&eacute; &agrave; votre page HTML. Il rend ensuite le composant du bouton React.<\/p><p>Vous pouvez &eacute;galement utiliser React pour cr&eacute;er une application React vierge &agrave; partir de z&eacute;ro. La meilleure fa&ccedil;on de le faire est d&rsquo;utiliser la solution Create React App dont nous avons parl&eacute; pr&eacute;c&eacute;demment. Elle peut s&rsquo;av&eacute;rer utile pour les applications &agrave; page unique.<\/p><p>Pour commencer, vous pouvez ex&eacute;cuter cette commande dans votre terminal :<\/p><pre class=\"wp-block-preformatted\">npx create-react-app my-app<\/pre><p>Notez que vous pouvez remplacer &laquo; my-app &raquo; par le nom que vous souhaitez lui donner. Pour la lancer, vous pouvez naviguer jusqu&rsquo;au dossier de l&rsquo;application en lan&ccedil;ant la commande cd my-app suivie de&nbsp; npm start.<\/p><p>L&rsquo;application s&rsquo;ex&eacute;cutera alors en mode d&eacute;veloppement. Vous pouvez la visualiser dans votre navigateur &agrave; l&rsquo;adresse <strong>http:\/\/localhost:3000<\/strong>.<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2><p>Le d&eacute;veloppement de projets WordPress React peut &ecirc;tre un processus simple et direct, m&ecirc;me si vous &ecirc;tes un d&eacute;butant. Cependant, il est important d&rsquo;apprendre comment le cadre JavaScript fonctionne avec le CMS et son API REST pour le faire avec succ&egrave;s.<\/p><p>Heureusement, vous pouvez apprendre &agrave; utiliser React en un rien de temps avec des connaissances de base en JavaScript, HTML et CSS. Comme nous l&rsquo;avons &eacute;voqu&eacute; dans cet article, vous pouvez l&rsquo;utiliser pour cr&eacute;er des applications &agrave; page unique ainsi que des th&egrave;mes et des mod&egrave;les de page personnalis&eacute;s.<\/p><p>Nous esp&eacute;rons que ce guide vous a aid&eacute; &agrave; mieux comprendre React et ses capacit&eacute;s pour le d&eacute;veloppement web.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress est un puissant syst&egrave;me de gestion de contenu (CMS) qui vous permet de cr&eacute;er des sites simples ou des boutiques de commerce &eacute;lectronique sophistiqu&eacute;es et complexes. Pour int&eacute;grer le code PHP de la plateforme avec JavaScript, vous pouvez utiliser l&rsquo;API REST WP et WordPress React. D&eacute;velopp&eacute;e par Facebook, React est une biblioth&egrave;que d&rsquo;interface utilisateur [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/fr\/tutoriels\/react-wordpress\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":335,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"D\u00e9velopper un Site WordPress Avec React.js : Guide Complet","rank_math_description":"Apprenez \u00e0 construire un site WordPress React dynamique - depuis les bases \u00e0 la construction d'applications, de th\u00e8mes, etc.","rank_math_focus_keyword":"react wordpress","footnotes":""},"categories":[4777],"tags":[],"class_list":["post-26639","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/wordpress-react","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/wordpress-react","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/react-wordpress","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/wordpress-react","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/panduan-wordpress-react","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wordpress-react","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/a-beginners-guide-to-wordpress-react-development-projects","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/a-beginners-guide-to-wordpress-react-development-projects","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wordpress-react","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/wordpress-react","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wordpress-react","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wordpress-react","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/wordpress-react","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/wordpress-react","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/wordpress-react","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/wordpress-react","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/26639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/users\/335"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/comments?post=26639"}],"version-history":[{"count":6,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/26639\/revisions"}],"predecessor-version":[{"id":39599,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/26639\/revisions\/39599"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/media?parent=26639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/categories?post=26639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/tags?post=26639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}