Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Creative Coding
Code

Un aperçu de l'API HTTP WordPress: un exemple pratique de wp_remote_get

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called A Look at the WordPress HTTP API.
A Look at the WordPress HTTP API: A Brief Survey of wp_remote_get
A Look at the WordPress HTTP API: wp_remote_get - the Response

French (Français) translation by honeymmmm (you can also view the original English article)

Dans le dernier article de cette série, nous avons examiné les fonctions PHP disponibles pour effectuer des requêtes à distance.

Plus précisément, nous avons examiné:

  • file_get_contents
  • cURL

Et nous avons également discuté de la fonction WordPress wp_remote_get.

Dans cet article, nous allons mettre wp_remote_get au travail. Cette fonction fait partie de l'API HTTP - pour une utilisation pratique en l'utilisant pour récupérer les deux choses suivantes:

  1. Le nombre d'adeptes que nous avons sur Twitter
  2. Notre dernier tweet

La bonne chose est que nous n'aurons pas besoin d'utiliser aucun mécanisme d'authentification ou OAuth, et nous n'aurons qu'à tirer parti des réponses de Twitter et des fonctionnalités JSON de PHP.

Donc, dans cet article, nous allons jeter un regard pratique sur la façon de faire exactement cela, puis nous mettrons fin à la série en passant en revue toutes les informations renvoyées par wp_remote_get afin que nous sachions comment les gérer correctement à l'avenir. .


Préparer le répertoire des plugins

Comme pour tous les plugins, la première chose à faire est de créer un répertoire dans notre répertoire wp-content/plugins. Pour les besoins de cette démo, nous appellerons notre plugin Démo Twitter.

Ainsi, nommons le répertoire de plugins twitter-demo et le fichier de plugins associé twitter-demo.php.

Twitter Demo

Ensuite, nous devons aller de l'avant et déloger l'en-tête du plugin afin que WordPress puisse détecter le fichier du plugin. Faisons-le maintenant.


Stubbing le plugin

Tout d’abord, placez le code suivant dans l’en-tête du fichier twitter-demo.php:

Notez que nous n'allons pas internationaliser ce plugin. Nous avons abordé ce sujet dans un autre article et cela dépasse le cadre de ce que nous essayons de faire dans cet article.

À ce stade, vous devriez pouvoir voir le plug-in affiché dans le tableau de bord du plug-in de votre installation WordPress. Vous pouvez l'activer. Cependant, il ne fera réellement rien.

Au moins pas encore.


Donner vie au plugin

Comme pour le reste des plugins de démo que je publie ici, je pense qu'il est important de commencer par décrire ce que le plugin va faire avant de commencer à coder.

En tant que tel, voici ce à quoi nous pouvons nous attendre:

  • Au bas de chaque message, nous afficherons une petite notification indiquant: J'ai un nombre X de suiveurs sur Twitter. Mon dernier tweet était Y.
  • Nous veillerons à ne le faire que sur une seule page de publication, afin que celle-ci ne s'affiche pas dans l'index principal ou les pages d'archives.

Bien sûr, il est un peu odieux d’afficher cela au bas d’un message, mais rappelez-vous que le but de ce plugin est de montrer comment utiliser wp_remote_get, comment analyser une réponse de Twitter et comment l’afficher.

Nous sommes beaucoup moins préoccupés par l'endroit où le contenu est affiché.

Alors, allons-y et stub la classe qui fournira cette fonctionnalité

1. Stub Out la classe de démonstration Twitter

Avant de faire quoi que ce soit, décrivons la classe que nous utiliserons pour faire la demande à Twitter. J'ai inclus tout le code ci-dessous ainsi que la documentation de chaque attribut et méthode.

Notez que nous allons compléter le reste de ces méthodes au fur et à mesure, et j'aurai aussi le code source complet du plugin à la fin de l'article.

Avant d’aller plus loin, je voudrais préciser que nous allons utiliser le modèle Singleton pour ce plugin. Nous avons couvert ce modèle de conception dans un article précédent, et même si ses avantages sortent du cadre de cet article, je vous recommande de lire l'article associé pour vous assurer que vous comprenez parfaitement pourquoi nous avons configuré notre plugin de cette façon.

Passons maintenant aux fonctions que nous avons définies pour savoir exactement où nous nous dirigeons

  • Le constructeur est l'endroit où nous allons ajouter une action pour ajouter nos informations Twitter à un seul post.
  • display_twitter_information sera utilisé pour rendre le message au bas de la publication
  • make_twitter_request demandera et renverra les données de Twitter (ou null si la demande échoue)
  • get_follower_count retournera le nombre d'adeptes pour l'utilisateur spécifié (ou -1 en cas de problème)
  • get_last_tweet retournera le dernier tweet de l'utilisateur ou un message si le plugin échoue

Suffisamment clair? À ce stade, travaillons à demander des informations à Twitter afin que nous puissions les traiter.

2. Demander des données de Twitter

Premièrement, peuplons la fonction make_twitter_request avec le code suivant. Notez que je vais l'expliquer après le code:

Dans la première ligne du code, nous profitons de wp_remote_get pour formuler notre demande. Notez que nous utilisons le paramètre $username pour récupérer le flux JSON de l'utilisateur. Remarquez comme il est simple de faire une demande à l’aide de la fonction wp_remote_get.

Ce nom d'utilisateur est transmis à partir d'une fonction différente que nous allons examiner dans un instant.

Ensuite, notez que nous encapsulons le code dans un try/catch. En effet, la requête sur Twitter pourrait éventuellement échouer. Si cela n'échoue pas, nous utiliserons la fonction json_decode de PHP pour décoder le corps de la réponse; sinon, nous allons définir la réponse égale à null.

Cela fera un conditionnel facile dans la fonction appelante.

Avant d’aller plus loin, il est important de noter qu’il ya une suggestion à retenir ici: Notez que nous décodons la clé 'body' du tableau $response retourné. Pour ceux d'entre vous qui sont plus curieux à ce sujet, nous allons examiner en détail la réponse fournie lors de l'utilisation de wp_remote_get dans le prochain article.

Pour l'instant, il suffit de noter que l'index body du tableau $response n'est qu'un élément d'information disponible.

3. Appel dans la fonction de demande

Maintenant que nous avons défini la fonction chargée de faire une demande à Twitter, définissons la fonction qui demandera des données à Twitter, puis affichons-les sous le contenu de l'article.

Encore une fois, voici le code après lequel je vais expliquer exactement ce qu'il fait:

Tout d’abord, sachez que c’est la fonction la plus longue de tout le plugin. Si vous pouvez examiner cela, vous êtes prêt à partir.

Rappelez-vous: cette fonction est ce qui sera appelé lors de l’action the_content qui sera définie dans notre constructeur une fois le plugin complètement terminé.

En tant que tel, la fonction vérifie d’abord si nous sommes sur un seul poste. Sinon, il retournera simplement le contenu; sinon, il fait ce qui suit:

  • Tentatives de faire une demande à Twitter
  • Si la demande échoue, un message apparaîtra pour l'indiquer.
  • Sinon, if imprimera un message indiquant le nombre d'adeptes et le dernier tweet de la personne restante.
  • Il va ajouter le message au contenu du message

Remarque importante: dans cette fonction, vous spécifiez le nom d'utilisateur pour lequel vous souhaitez récupérer les informations. Par exemple, notez que j'essaie de récupérer des informations pour @WPTuts en appelant $this->make_twitter_request('wptuts').

4. Lire les informations

À ce stade, nous sommes prêts à lire les informations et à concaténer les chaînes dans notre message à afficher à l'utilisateur. Pour ce faire, nous utiliserons la méthode get_follower_count et le get_last_tweet.

Étant donné que ces méthodes sont très similaires, nous examinerons les deux, puis nous les expliquerons après le code:

Notez que les deux fonctions sont similaires en ce sens qu’elles acceptent les données $json de plus tôt dans le plugin. Ensuite, ils utilisent tous deux un opérateur ternaire pour déterminer s’ils doivent renvoyer le texte demandé ou un message par défaut.

En d'autres termes, si nous cherchons à afficher followers_count et que la valeur est supérieure à -1, nous savons que nous avons une valeur à afficher, nous la renverrons; sinon, nous renverrons -1 comme indicateur que la valeur n'est pas correctement définie.

Cela nous permet de coder de manière défensive contre quelque chose qui pourrait mal tourner lors du traitement des données.


Le plugin de démonstration Twitter

Comme promis, voici le code source complet avec la documentation correspondante:

C'est en fait relativement simple, non? En fait, il y a à peu près autant de commentaires de code que de lignes de code, le plugin est donc très petit.


Conclusion

Cette démo montre à quel point il est facile d’utiliser wp_remote_get pour interagir avec des services tiers, analyser leur réponse et l’intégrer dans un plugin. Certes, c'est très nu, mais ça prouve toujours le concept.

Dans le prochain article de cette partie de la série, nous examinerons toutes les informations que nous pouvons transmettre à wp_remote_get pour voir à quel point la méthode est flexible. Après cela, nous examinerons en détail les données de réponse pour pouvoir écrire des requêtes plus complexes et écrire du code plus défensif, de manière plus défensive.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.