Dans la dernière partie de cette série, nous avons développé la base de lrsquoapplication en utilisant Facebook REACT et avons intégré une solution simple qui permet aux utilisateurs de fournir lrsquoessence de la sagesse éternelle au besoin. Cette fois, nous nous concentrerons sur deux aspects principaux: l’ajout de paramètres personnalisés aux sites WordPress afin de faciliter la vie en offrant un grand nombre de citations et l’ajout de petits éléments supplémentaires à React. Pour rappel rapide de la configuration générale, nous avons lancé l’installation WordPress locale sur http:walden.dev Et fournit du contenu via lrsquoAPI rest. Nous lisons ce contenu dans lrsquoapplication React locale que nous exécutons sur http:www.thoreauapp.dev Oui.
Bon, au boulot! Lrsquointroduction de paramètres personnalisés dans lrsquoAPI rest est restée simple jusqursquoà présent, en nrsquoutilisant que lrsquoAPI rest pour revenir à une liste de messages que nous avons ensuite analysés et visualisés. Cependant, nous pouvons également choisir drsquoétendre lrsquoAPI et drsquoajouter des paramètres personnalisés entièrement personnalisés. Comme le document le souligne clairement, cela implique deux choses: créer une fonctionnalité dans wordpress pour gérer nos paramètres personnalisés. Enregistrez le chemin pour le rendre disponible via lrsquoAPI rest. Vérifions si lrsquooption
Testez le paramètre personnalisé pour ajouter lrsquoAPI de repos de base.
* *
* obtenez le titre du dernier article de lrsquoauteur!
* *
@ Param Array $Data Function option.
Chaîne de retour | le titre du dernier message était nul, * sinon, null.
*
Fonction my _ AWESOME func ($Data) {
$post = get _ Post (array (
« auteur» = gt $expéditeur
Utilisez React.
Ce nrsquoest pas grand chose, étant donné que nous nrsquoavons que quelques offres, mais si nous en avons des milliers? Les choses peuvent rapidement devenir risquées. Au lieu de cela, nous allons utiliser un paramètre personnalisé pour obtenir une liste de tous les identifiants de poste, en choisir un au hasard dans la liste, puis les données même à chaque fois. Commençons par configurer les paramètres personnalisés. Le code suivant est basé sur une combinaison drsquoexemples de documentation API rest et de tutoriels Delicious Brains. Encore une fois, il est au bas de la fonction. Php dans le répertoire des sujets actifs:
Renvoie tous les identifiants de poste
Fonction Walden _ get all post ids () {
$all _ post id = get posts (array (
« post _ type» = gt « message»,
« champ» = gt « id»,
))
Renvoie $all _ post ID
}
Ajouter Walden V1 get all post ID path
Add _ action (lsquorest API initrsquo, Function () {
Register _ rest route (lsquoWalden v1rsquo, lsquoget all post ID rsquo, array (
« méthode» = gt « obtenir»,
« callback» = gt « Walden _ get all post id»,
))
}) Quand nous appellerons maintenant http:walden.devwp-jsonwaldenv1get-all-post-ids , we received a clean set of Post id:
Maintenant, nous avons apporté quelques changements rapides au Code React pour utiliser les données au lieu de ce que nous avons fait précédemment. Nous passerons drsquoabord le nouveau paramètre personnalisé et lrsquoURL du post API rest précédent: reactdom. Rendu , Documentation Getelementbyid (
Getallid: fonction () {
Console. Log (lsquogetallids calledrsquo)
$. Ajax
URL: ceci. Accessoires. Idurl,
Type de données:
Cache: false,
Succès: fonctions (données)
Voilà. Définir lrsquoétat ({données: données})
Voilà. Sélectionnez andomquote ()
}. Liaison (ceci),
Erreur: fonctions (xhr, Status, Err) {
Console. Erreur (this.props.url, Status, err.tostring ()
}. BIND (this)
})
},
Selectrandomquote: function () {
Var randomnumber = maths. Plancher (math.random () * ceci. Statut Données Longueur)
Var selectedquote = ceci. Statut Date [no]
Voilà. Définir lrsquoétat ({selectedquote id: selectedquote})
Voilà. Getquote ()
},
Getquote: function () {
$. Ajax
URL: ceci. Accessoires. URL de données + ceci. Statut Selectedquoteid,
Type de données:
Cache: false,
Succès: fonctions (données)
Voilà. Définir lrsquoétat ({selectedquotecontent: data.content.rendered})
}. Liaison (ceci),
Erreur: fonctions (xhr, Status, Err) {
Console. Erreur (this.props.url, Status, err.tostring ()
}. BIND (this)
})
},
Componentdidmount: function () {
Voilà. Getallid ()
}, nous apporterons également des modifications mineures au contenu transmis dans la composante devis afin de rétablir les modifications ci dessus:
Mise à jour rapide de lrsquoapplication principale, tout semble bien. Nous avons toujours la possibilité de référencer et de de nouvelles références fournies par lrsquoAPI rest: elles utilisent simplement des paramètres personnalisés pour faire le travail. À cet égard, il convient de noter que, jusqursquoà présent, nous sommes sur la voie du bonheur. Les développeurs expérimentés de React ou WordPress peuvent avoir de nombreuses objections à tout, des styles d’encodage affichés à l’absence de gestion des erreurs, au chargement des messages, etc.
Nous laisserons ces améliorations potentielles au lecteur en tant qursquoexercice, mais il y a un petit aspect à traiter à ce stade. À ce stade, nous sommes toujours en train de réorganiser la sortie HTML de WordPress en utilisant cette approche légèrement menaçante qui semble dangereuse
Définissez lrsquoentité innerHTML dans la composante devis. Ce serait idéal si nous pouvions gérer cette œuvre dans WordPress plutôt que d’être un peu maladroits dans React. Var Quota = réaction. Créer une classe créer une classe ({0}
Rendu: fonctions () {
Retour (
)
}
}) Heureusement, cela est relativement facile en ajoutant un champ supplémentaire au paramètre existant en utilisant le champ Register _ API décrit dans la documentation rest API. Encore une fois, en srsquoappuyant sur le tutoriel Delicious Brain mentionné précédemment, nous réorganisons le Code existant en fonction. Php ajoute un champ supplémentaire à la réponse ci dessous qui contient une version de devis belle, conviviale et claire: retourner le contenu clair pour les messages
Fonction Walden _ return plaintext content ($Object, $Field name, $Request) {
Renvoie lrsquoétiquette Strip _ Tag (HTML entity decode ($object [lsquoContentrsquo] [lsquorenderedrsquo])
}
Ajouter _ action (lsquorest API initrsquo, lsquoSetup rest routersquo)
Ajouter _ action (lsquorest API initrsquo, lsquoadd Plaintext Responsersquo)
Ajouter Walden V1 get all post ID path
Configuration _ rest route () {fonctions
Register _ rest route (lsquoWalden v1rsquo, lsquoget all post ID rsquo, array (
« méthode» = gt « obtenir»,
« callback» = gt « Walden _ get all post id»,
))
}
Fonction add _ plaintext Response () {
Demande drsquoajout drsquoun contenu clair pour un billet personnel
Register _ API Field
« envoyer»,
« texte clair»,
Transporteur (
lsquoget _ Callbackrsquo = gt lsquoWalden return plaintext contentrsquo,
()
}
Pour srsquoassurer que nos paramètres personnalisés fonctionnent toujours http:walden.devwp-jsonwaldenv1get-all-post-ids Oui. Voyons si nous utilisons http:walden.devwp-jsonwpv2posts4 Oui. Joyeux jour! Nous avons maintenant un texte clair dans notre réponse. Utilisons le directement dans la fonction getquote Obtenir un devis:
Votre application. nécessaire, pouvez également ajouter des champs supplémentaires aux paramètres standard. Restez à lrsquoécoute de la dernière partie de cette série, nous allons résumer le contenu et donner un aperçu rapide de lrsquointeraction avec les services externes par lrsquointermédiaire de lrsquoAPI. Comme toujours, si avez des questions ou des suggestions, veuillez nous contacter via les commentaires ci dessous et nous faire savoir! Image surlignée: geralt