Dans le post précédent de la série, nous avons commencé à travailler sur un petit plugin offrant un exemple pratique de wp_remote_post
. Le problème est que l'exemple était incomplet.
Bien sûr, il est agréable de voir comment passer un appel en utilisant la fonction et même comment configurer un script chargé de recevoir les données et de les renvoyer, mais cela ne sert à rien si nous ne faisons rien avec..
Dans ce dernier article de la série, nous allons revisiter le plugin que nous avons commencé avec le dernier article et commencer à l'améliorer un peu.
Plus précisément, nous allons…
wp_remote_get
et wp_remote_post
Enfin, tous les travaux réalisés dans cet article seront disponibles sur GitHub et liés dans la conclusion de l'article. Mais avant cela, allons-y et commençons.
Dans l'article précédent, nous avons configuré un plugin de base permettant d'afficher des informations sur le visiteur du site Web actuel:
En utilisant les informations disponibles sur le serveur, nous pouvons afficher l'ID du visiteur, l'adresse vers laquelle il a navigué et la page visualisée..
Truc facile, à droite?
Afin de rendre le code plus lisible, maintenable et capable d'être stylisé, il y a quelques choses que nous devons faire. Mais d’abord, si vous en êtes à ce stade, consultez l’article précédent, implémentez le code source, puis revenez à cet article..
Rappel de l'article précédent, nous avons introduit un fichier appelé wp-remote-receive.php qui était responsable de saisir des informations à partir de PHP $ _POST
la collecte et la création d'une vue plus conviviale qu'un simple vidage des données.
Plus précisément, voici le code avec lequel nous travaillions:
Les données postales"; écho "
Vous pouvez maintenant sauvegarder ou ignorer ces informations,
";Mais nettoyons cela un peu. Plutôt que de faire écho à plusieurs instructions, construisons une chaîne unique de HTML, puis renvoyons-la. De plus, nous fournirons des éléments supplémentaires et des noms de classes qui faciliteront l’accès via CSS:
'; $ html. = 'Les données postales
'; $ html. = '
Rien de trop compliqué. En bref, nous avons ajouté un wrapper avec un identifiant unique, puis nous avons tout placé dans ledit wrapper. Nous avons également supprimé la phrase sur la possibilité de sauvegarder les informations..
Affichez la page de votre navigateur pour vérifier que toutes les choses se ressemblent. À ce stade, il ne devrait y avoir aucune différence avec la capture d'écran ci-dessus.
Si oui, révisez votre code.
Avant de passer à la sérialisation de ces informations, continuons en les stylant telles qu'elles sont fournies par le récepteur..
Pour ce faire, créons un css répertoire à la racine du répertoire du plugin. Nous allons aussi créer un Moins sous-répertoire dans lequel notre plugin LESS résidera. Je vais appeler le dossier display.less comme il est habitué, vous savez, style l'affichage :).
Ensuite, nous allons ajouter le répertoire complet du plugin à CodeKit. Si vous ne savez pas comment faire cela, veuillez lire cette série..
À ce stade, nous sommes prêts à écrire un peu de MOINS pour donner à notre plugin une présentation légèrement meilleure.
Ajoutez le code suivant à votre fichier LESS:
# wp-remote-post-example-container background: # f7f5e7; bordure: 1px solide # ac0404; rembourrage: 20px; h4 marge: 0; // h4 ul li type-liste-style: cercle; // li // ul // / # wp-remote-post-example-container
CodeKit (ou le compilateur LESS si vous choisissez cette voie) devrait générer le code CSS approprié. Ensuite, nous devons demander à notre plugin de charger le nouveau fichier CSS. Pour ce faire, ajoutez la ligne de code suivante à votre constructeur:
add_action ('wp_enqueue_scripts', array ($ this, 'add_style_sheet'));
Ajoutez ensuite la fonction suivante à votre classe:
fonction publique add_style_sheet () wp_enqueue_style ('wp-remote-post-example-style', plugins_url ('wp-remote-post-example / css / display.css')); // fin de add_style_seet
Enfin, rechargez un seul post et votre page devrait ressembler à ceci:
Exemple de message à distance WP avec styleSemble assez bon, non? Bien sûr, vous pouvez le personnaliser comme vous le souhaitez, mais voici l'exemple avec lequel nous allons aux fins de cet article..
Enfin, nous sommes prêts à réellement faire quelque chose avec ces données.
Maintenant, nous allons définir une fonction qui prend une réponse du wp-remote-receiver.php et effectivement le sauvegarder dans les méta-données postales, mais seulement s'il n'existe pas déjà.
Plus précisément, voici ce que nous ferons:
Pour cela, commençons par définir une fonction qui fera exactement cela. Notez qu'il acceptera un ID unique qui correspondra à l'adresse IP que nous voyons ci-dessus, ainsi qu'à l'URL du site et à la page..
fonction privée save_post_data ($ unique_id, $ site_url, $ page_url) if ("== get_post_meta (get_the_ID (), 'unique_id', true)) add_post_meta (get_the_ID (), 'unique_id', $ unique_id) (), 'site_url', $ site_url); add_post_meta (get_the_ID (), 'page_url', $ page_url); // end if
Sur la base des exigences énumérées ci-dessus pour la fonction, nous ne sauvegarderons les données de cet article que si rien n'existe pour l'adresse IP donnée..
À ce stade, nous devons juste apporter une modification mineure à notre get_post_response
une fonction. Mettez à jour le conditionnel pour qu'il appelle la fonction que nous avons définie ci-dessus:
if (is_wp_error ($ response)) $ html = ''; $ html. = __ ('Un problème est survenu lors de l'extraction de la réponse du serveur.', 'wprp-example'); $ html. = ''; else $ html = ''; $ html. = ''; $ this-> save_post_data ($ unique_id, $ site_url, $ page_url);'. __ ('Votre message a été posté avec succès! La réponse a été la suivante:', 'wprp-example'). '
'; $ html. = ''. $ response ['body']. '
'; $ html. = '
Et c'est tout!
Le plugin final est disponible pour examen et téléchargement sur GitHub. Il inclut également la documentation de chaque fonction incluse dans le plug-in, ainsi qu'un fichier README afin que vous puissiez suivre tout ce qui a été inclus ici..
Notez que si vous êtes intéressé par les arguments wp_remote_post
accepte, consultez le précédent article dans lequel nous avons traité de cela lorsque nous en parlons. wp_remote_get
.
Enfin, cela ne fait qu'effleurer la surface de ce qui est possible avec l'API HTTP. Espérons que cette série a permis de fournir une solide introduction à l’API et a ouvert la voie à de futurs travaux avec l’API..