In de vorige post in de serie begonnen we aan een kleine plug-in die een praktisch voorbeeld gaf wp_remote_post
. Het ding is, het voorbeeld was onvolledig.
Natuurlijk is het leuk om te zien hoe je een oproep kunt doen met de functie en zelfs hoe je een script instelt dat verantwoordelijk is voor het ontvangen van de gegevens en het retourneren van de gegevens, maar het heeft weinig zin tenzij we er iets mee doen.
In dit laatste artikel in de serie gaan we de plug-in die we begonnen met het laatste artikel opnieuw bekijken en beginnen we deze een beetje te verbeteren.
Concreet zullen we ...
wp_remote_get
en wp_remote_post
Ten slotte is al het werk dat in dit artikel is bereikt beschikbaar op GitHub en gekoppeld aan de conclusie van het artikel. Maar laten we beginnen voordat we beginnen.
In het vorige artikel hebben we een eenvoudige plug-in ingesteld die informatie over de bezoeker van de huidige website zou weergeven:
Aan de hand van informatie die beschikbaar is via de server, kunnen we de ID van de bezoeker weergeven, het adres waarnaar hij heeft genavigeerd en de pagina die is bekeken.
Gemakkelijke dingen, goed?
Om de code beter leesbaar, onderhoudbaar en in staat te stellen te maken, zijn er een paar dingen die we moeten doen. Maar eerst, als je zover bent gekomen, bekijk je het vorige artikel, voer je de broncode in en ga je vervolgens terug naar dit bericht.
Terugroepen van het vorige artikel, introduceerden we een bestand met de naam wp-remote-received.php die verantwoordelijk was voor het grijpen van informatie uit PHP's $ _POST
verzamelen en een weergave bouwen die gebruikersvriendelijker was dan een eenvoudige dump van de gegevens.
In het bijzonder, hier is de code waarmee we werkten:
De postgegevens"; echo"
U kunt deze informatie nu opslaan of negeren,
";Maar laten we dit een beetje opruimen. Laten we in plaats van echoën van meerdere instructies, een enkele HTML-reeks opbouwen en deze vervolgens retourneren. Daarnaast bieden we enkele extra elementen en klassenamen die het gemakkelijker maken om toegang te krijgen via CSS:
'; $ html. = 'De postgegevens
'; $ html. = '
Niets is te ingewikkeld. Kortom, we hebben een wrapper met een unieke ID toegevoegd en vervolgens alles in die verpakking geplaatst. We verwijderden ook de zin over het al dan niet opslaan van de informatie.
Bekijk de pagina in uw browser om te controleren of alle dingen hetzelfde lijken. Op dit moment zou er geen verschil moeten zijn met de bovenstaande schermafbeelding.
Als dit het geval is, controleert u uw code.
Voordat we beginnen met het daadwerkelijk serialiseren van deze informatie, laten we doorgaan met het stileren van de informatie zoals die door de ontvanger wordt verstrekt.
Om dat te doen, laten we een maken css map in de hoofdmap van de plugin-map. We zullen ook een maken minder submap waarin onze plugin MINDER bestand zal zitten. Ik bel het bestand display.less omdat het wordt gebruikt om, weet je, het display te stylen :).
Vervolgens voegen we de volledige plugin-directory toe aan CodeKit. Als u niet bekend bent met hoe u dit moet doen, bekijkt u deze serie.
Op dit moment zijn we klaar om een klein beetje MINDER te schrijven om onze plug-in een iets betere presentatie te geven.
Voeg de volgende code toe aan uw LESS-bestand:
# wp-remote-post-example-container background: # f7f5e7; rand: 1px vast # ac0404; opvulling: 20px; h4 marge: 0; // h4 ul li list-style-type: circle; // li // ul // / # wp-remote-post-example-container
CodeKit (of de LESS-compiler als je ervoor kiest om die route te volgen) zou de juiste CSS moeten genereren. Vervolgens moeten we onze plug-in instrueren om het nieuwe CSS-bestand te laden. Hiertoe voegt u de volgende regel code toe aan uw constructor:
add_action ('wp_enqueue_scripts', array ($ this, 'add_style_sheet'));
Voeg vervolgens de volgende functie toe aan uw klas:
openbare functie add_style_sheet () wp_enqueue_style ('wp-remote-post-example-style', plugins_url ('wp-remote-post-example / css / display.css')); // end add_style_seet
Eindelijk, herlaad een enkel bericht en uw pagina zou er als volgt uit moeten zien:
WP Remote Post Voorbeeld met stijlZiet er goed uit, toch? Natuurlijk kun je het aanpassen zoals je wilt, maar dit is het voorbeeld waarmee we gaan voor de doeleinden van dit artikel.
Eindelijk, we zijn klaar om daadwerkelijk te zijn do iets met deze gegevens.
Nu zullen we een functie definiëren die een reactie van de wp-remote-receiver.php en sla het feitelijk op in de post-metadata, maar enkel en alleen als het nog niet bestaat.
Concreet is dit wat we zullen doen:
Laten we daarvoor eerst een functie definiëren die precies dat zal doen. Merk op dat het een unieke ID zal accepteren die overeenkomt met het IP-adres dat we hierboven zien, evenals de site-URL en de pagina-URL.
persoonlijke functie 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); add_post_meta (get_the_ID (), 'site_url', $ site_url); add_post_meta (get_the_ID (), 'page_url', $ page_url); // end if
Op basis van de bovenstaande vereisten van de functie, zullen we alleen gegevens voor dit bericht opslaan als er momenteel niets voor het opgegeven IP-adres bestaat.
Op dit moment moeten we slechts een kleine wijziging aanbrengen in onze get_post_response
functie. Werk de voorwaardelijke bij zodat deze de functie oproept die we hierboven hebben gedefinieerd:
if (is_wp_error ($ response)) $ html = ''; $ html. = __ ('Er was een probleem bij het ophalen van het antwoord van de server.', 'wprp-voorbeeld'); $ html. = ''; else $ html = ''; $ html. = ''; $ this-> save_post_data ($ unique_id, $ site_url, $ page_url);'. __ ('Uw bericht gepost met succes! De reactie was als volgt:', 'wprp-voorbeeld'). '
'; $ html. = ''. $ antwoord ['lichaam']. '
'; $ html. = '
En dat is het!
De laatste plug-in is beschikbaar voor beoordeling en om te downloaden op GitHub. Het bevat ook documentatie voor elke functie die bij de plug-in is geleverd, evenals een README, zodat u alles kunt volgen wat hier was opgenomen.
Merk op dat als je geïnteresseerd bent in de argumenten dat wp_remote_post
aanvaardt, bekijk het vorige artikel waarin we dit behandelden wanneer we het over hadden wp_remote_get
.
Ten slotte krast dit slechts het oppervlak van wat mogelijk is met de HTTP API. Hopelijk heeft deze serie een goede introductie van de API opgeleverd en heeft hij de weg geëffend voor toekomstig werk met de API.