Comment développer un plug in WordPress en utilisant webpack 3 amp;amp React (Partie 1) Comment développer un plug in WordPress en utilisant webpack 3, REACT et rest API (Partie 2) Avez pensé à comment faire fonctionner React avec l’api WordPress rest? c’est le cas, êtes au bon endroit et c’est ce dont nous parlerons dans la suite de la première partie sur la façon de développer le plugin wordpress! Dans le dernier article, nous avons expliqué ce qu’est un paquet Web et l’avons intégré dans l’exemple de plugin wordpress. Nous avons également configuré browsersync et rechargé notre application. Dans cette section, nous verrons comment faire en sorte que le côté React de notre plug in fonctionne avec l’api WordPress rest afin que le plug in fasse réellement quelque chose d’intéressant.
Alors, ne perdons pas de temps et retournons dans le passé. Dans la première partie, nous avons mis en place un plug in de démarrage appelé WP React template. Jamp;rsquoai maintenant mis à jour ce plug in pour inclure les mises à jour que avez faites dans la deuxième partie, donc namp;rsquohésitez pas à essayer. en souvenez, dans la partie 1, nous avons appris ce quamp;rsquoest un webpack et comment des éléments tels que les chargeurs et les plug ins fonctionnent. namp;rsquoêtes pas sûr de ce que camp;rsquoest, lisez damp;rsquoabord la partie 1. Nous mettrons à jour nos fichiers de paquets Web. Configuration. JS contiendra des mises à jour pour utiliser Sass et charger CSS à partir damp;rsquoun fichier externe.
Vous pouvez voir le paquet. Json GIT accuse de voir des mises à jour, mais en gros, nous avons chargé des modules spécifiques à Sass et extrait des plug ins de paquets de page Texte pour mieux gérer nos styles. Le plug in Extract text webpack est idéal pour utiliser webpack et extraire des styles dans des fichiers externes. Par exemple, il est beaucoup plus facile de charger un style externe et de le mettre en cache dans un CDN. Pour que ça marche, dans nos fichiers Web. Configuration. Nous ajouterons JS
T namp;rsquoest pas très bon, mais il couvre les bases nécessaires pour créer des paramètres personnalisés. Honnêtement, jamp;rsquoai fini par lire le Code pour mieux comprendre les différentes approches, donc si avez besoin de plus damp;, voudrez peut être le faire. Dans notre exemple, nous créerons un éditeur de base de données React super simple et très laid pour la table WP _ options. Pour ce faire, nous avons besoin de quelques routeurs et gestionnaires pour lire et mettre à jour les options.
Le premier paramètre nous fournira une liste de tous les enregistrements dans le tableau des options WP. Vous pouvez voir plus damp; sur la façon de définir les paramètres dans le fichier serveur wprb rest Server. Php. Mais fondamentalement, la configuration du paramètre est similaire à: $namespace = $this amp;gt namespace $ Cette amp;gt version Register _ rest route ($namespace,
Le paramètre suivant est configurer le tableau. La clé méthodes permet de définir la méthode de requête HTTP que le paramètre doit écouter. Il peut samp;rsquoagir de get, Post, options, etc. Lamp;rsquoAPI rest a ces variables de support, donc dans ce cas, WP _ rest Server:: readable est juste
Camp;rsquoest ce quamp;rsquoon cherche. Les rappels nécessaires pour mettre à jour les options doivent faire plusieurs choses. Vérifiez que lamp;rsquooption existe dans la base de données, vérifiez que toutes les données requises ont été transmises et mettez à jour lamp;rsquooption en dernier. Fonctions publiques Édition _ options (WP rest request $Request) {$params = $request amp;gt get params () if (! Isset ($params [amp;lsquoSlug]) | Empty ($params [amp;lsquo Slug]) {renvoie une nouvelle erreur WP Error (amp;lsquono Paramamp;rsquo, U U (amp;lsquono Slug Paramamp;rsquo)} $ Body = $request amp;gt get _ Body () If (Empty ($body)) {returned New WP _ Error (amp;lsquono bodyamp;rsquo, amp;lsquorequest Body emptyamp;rsquo)} Code _ Body = json Code ($body) If ($Decoded _ body) {if (isset ($Decoded Body amp;gt Key, $Decoded Body amp;gt value)) {if (! Get site option ($Decoded Body amp;gt Key)) {return false} If (Update _ option ($Decoded Body amp;gt Key, $Decoded Body amp;gt value) {return true}}}}} Renvoie False} Heureusement, l’api WordPress options dispose de fonctionnalités de support telles que Update _ option (), qui modifient ou ajoutent une option si elle n’existe pas pour une raison quelconque. Vous remarquerez que nous analysons json dans le corps de la requête et nous verrons bientôt comment il est envoyé! Maintenant, nous pouvons utiliser lamp;rsquoAPI rest pour charger les options et les modifier. Voyons maintenant comment accéder à cette API à partir de React front end. Dans la partie 1, nous avons touché la surface du réglage React avec webpack. Maintenant, nous allons salir nos mains et obtenir une mini application qui exécute React. Renvoie src component application. JS mettra tout en place pour exécuter notre application React. La première chose que nous devons faire est damp;rsquoobtenir toutes les options de la base de données en utilisant le paramètre restapi. Nous utiliserons la méthode React Lifecycle componentdidmount () pour charger toutes les options via Ajax au moment du chargement. Jquery. Ajax ({URL: Ajax _ base + amp;lsquo record), type de données:
Ce amp;lsquo, fenêtre. Wapapisettings. Nonce)}, Succès: fonction (données) {this.setstate ({options: Data}). BIND (this)}) Dans lamp;rsquoapplication exemple, nous utilisons la méthode Ajax de jquery parce que jquery est déjà chargé sur la page. Mais pouvez facilement utiliser namp;rsquoimporte quelle bibliothèque Ajax que jugez appropriée. Une fois que nous avons reçu une réponse positive de lamp;rsquoAPI, nous avons attribué le json qui en résulte à lamp;rsquoétat réel. Au bas de la fonction render (), nous définissons essentiellement une table HTML pour générer une liste damp;rsquooptions. Dans une application réelle, voulez Pager cette liste, mais pour le moment elle répond à nos besoins. Render () {Const items = object.keys (this.state.options). Map (Key = amp;gt {Key}
WP React Template
{projet}
) } Comme pour toutes les applications React, lamp;rsquointeractivité de lamp;rsquointerface utilisateur est gérée par lamp;rsquoétat de lamp;rsquoapplication. Il en va de même pour nos applications. La variable items exécute la fonction Map () sur cet objet. Statut Contient des options pour toutes les options que nous avons précédemment obtenues de lamp;rsquoAPI rest. Ensuite, nous ajoutons du code HTML pour masquer afficher le formulaire damp;rsquoédition et nous référençons le composant editform qui contient réellement le formulaire pour éditer lamp;rsquoenregistrement. Composants et accessoires les composants et accessoires sont essentiels à la construction damp;rsquoune application React modulaire. À partir de la documentation: le composant permet de diviser lamp;rsquointerface utilisateur en sections distinctes et réutilisables, chacune étant considérée séparément. Les objets de scène permettent de transférer des données damp;rsquoun parent à un enfant dans une seule direction, ce qui est lamp;rsquoun des aspects clés de lamp;rsquoutilisation de React. Le composant parent peut envoyer namp;rsquoimporte quoi à un composant enfant par lamp;rsquointermédiaire damp;rsquoun prop: une valeur, un objet ou même une fonction. Nous voulons
Le module damp;rsquoédition est absolument réutilisé pour chaque enregistrement du tableau, de sorte quamp;rsquoil est logique de le diviser en un seul composant. Dans src Components editform. JS trouverez un composant React de base qui se compose damp;rsquoun module HTML simple. Handlesubmit (event) {event.preventdefault () this.props.handlesubmit (this.props.id)} Render () {return