{"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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Cependant, une balise JSX ressemblerait &agrave; ce qui suit :<\/p><pre class=\"wp-block-preformatted\">&lt;img className=\"\" src=\"\" alt=\"\" \/&gt;\n<\/pre><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-pourquoi-utiliser-react\">Pourquoi utiliser React ?<\/h2><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Ensuite, ex&eacute;cutez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">cd wp-react-demo\nnpm start\n<\/pre><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Ensuite, ex&eacute;cutez ce qui suit :<\/p><pre class=\"wp-block-preformatted\">cd react-app\nnpm install @material-ui\/core\n<\/pre><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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    <div class=\"announcement-block announcement-block--warning\">\n        <span class=\"announcement-block__heading\">\n            <svg width=\"24\" height=\"26\" viewBox=\"0 0 24 26\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                d=\"M12 23.5C17.799 23.5 22.5 18.799 22.5 13C22.5 7.20101 17.799 2.5 12 2.5C6.20101 2.5 1.5 7.20101 1.5 13C1.5 18.799 6.20101 23.5 12 23.5ZM13.637 8.65198C13.637 7.74791 12.9041 7.01501 12 7.01501C11.0959 7.01501 10.363 7.74791 10.363 8.65198C10.5335 10.5375 10.875 14.383 10.875 14.383C10.875 15.0043 11.3787 15.508 12 15.508C12.6213 15.508 13.125 15.0043 13.125 14.383V14.38L13.637 8.65198ZM11.9927 16.714C11.3714 16.714 10.8677 17.2177 10.8677 17.839C10.8677 18.4603 11.3714 18.964 11.9927 18.964H12.0073C12.6286 18.964 13.1323 18.4603 13.1323 17.839C13.1323 17.2177 12.6286 16.714 12.0073 16.714H11.9927Z\"\n                fill=\"#BE1025\"\/>\n            <\/svg>\n            Warning        <\/span>\n        <p class=\"announcement-block__content\">\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    <\/div>\n\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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Ce plugin simplifie le processus de cr&eacute;ation de types d&rsquo;articles personnalis&eacute;s dans WordPress.<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">wp.element, un objet fen&ecirc;tre global.<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Vous pouvez ensuite ex&eacute;cuter ce qui suit :<\/p><pre class=\"wp-block-preformatted\">npm start\n<\/pre><p class=\"wp-block-paragraph\">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>\n<\/div><h3 class=\"wp-block-heading\">2. Cr&eacute;er un th&egrave;me WordPress React en utilisant un Create-React-WPTheme<\/h3><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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":[5849,5848],"tags":[],"class_list":["post-26639","post","type-post","status-publish","format-standard","hentry","category-avance","category-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/wordpress-react\/","default":1},{"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-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/a-beginners-guide-to-wordpress-react-development-projects\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/a-beginners-guide-to-wordpress-react-development-projects\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/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},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wordpress-react\/","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":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/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}]}}