In de eerste serie over de WordPress HTTP API hebben we gekeken wp_remote_get
. We hebben met name de volgende aspecten van de API bekeken:
We gaan door met de serie over de WordPress HTTP API, maar we gaan onze aandacht richten op een tweede methode van de API: wp_remote_post
.
In de volgende reeks artikelen gaan we een overzicht van de functie geven om te begrijpen wat de functie biedt en waarom deze nuttig is, een praktisch voorbeeld van hoe we deze kunnen implementeren in ons werk, en hoe we de functies en het antwoord dat uit de functie komt.
Met dat gezegd, laten we beginnen met ons overzicht van de functie.
Als je tot dusverre nog niet hebt gevolgd, raad ik je ten zeerste aan om de allereerste post in de serie te lezen om op zijn minst de basis te begrijpen van hoe KRIJGEN
vraagt werk.
Eerlijk gezegd, POST
verzoeken zijn niet zo verschillend. Net als KRIJGEN
verzoeken worden meestal gebruikt om informatie van de server op te halen, POST
verzoeken zijn meestal bedoeld om berichten naar de server te sturen.
Maar hier is het ding: beide protocollen zijn in staat om gegevens te verzenden en gegevens ontvangen, maar hier is een algemene vuistregel voor hoe ik gewoonlijk GET- en POST-verzoeken benader.
KRIJGEN
verzoeken worden meestal gebruikt om terugvinden informatie van de server, dus een antwoord wordt verwachtPOST
verzoeken worden meestal gebruikt om sturen informatie naar de server, en hoewel een reactie misschien niet te verwachten is, is het altijd leuk om te weten of de server het antwoord goed heeft ontvangen en verwerkt of nietIn de rest van de artikelen in dit deel van de serie zullen we kijken hoe we beide cases moeten behandelen - dat wil zeggen, hoe om te gaan als er geen reactie wordt gegeven en hoe te handelen wanneer een reactie plaatsvindt is gegeven.
Nu, wat betreft verzoeken op server-niveau - specifiek in PHP - worden ze meestal gemaakt met de volgende twee functies (tenzij je een externe bibliotheek gebruikt die buiten het bereik van deze serie valt).
Hoewel we deze in het eerste bericht uitvoeriger hebben behandeld, zal ik ze hier samenvatten.
file_get_contents
accepteert een URL als parameter en retourneert de gevraagde gegevens of een fout bij een fout. Het is een relatief gebruikelijke manier om gegevens op te halen voor externe aanvragen.Krul
is een volledige bibliotheek (in plaats van een functie) die ontwikkelaars volledige configuratiemogelijkheden biedt om te kunnen aanpassen aan hun behoeften. Er is veel te leren over deze bibliotheek. Als u een ervaren ontwikkelaar bent, moet u zeker cURL bekijken.Voor het grootste deel is het begrijpen van hoe verzoeken worden gedaan gemakkelijk genoeg, maar de mate waarin je tweak hoe de verzoeken worden gedaan is volledig afhankelijk van welke optie u kiest om te gebruiken - dat wil zeggen, file_get_contents
of Krul
.
Dit is natuurlijk meer een PHP-manier om verzoeken uit te voeren en hoewel we dit misschien in sommige van ons werk implementeren, afhankelijk van de aard van het project, hoeft dit niet noodzakelijk de WordPress-manier van doen te omvatten..
In feite is het bovenstaande een korte opfriscursus gebaseerd op eerdere inhoud. Niettemin is het belangrijk om te begrijpen waar we vandaan komen, wat er beschikbaar is en waar we naartoe gaan.
POST
Verzoeken worden gedaan in WordPressZoals gezegd zijn de bovenstaande opmerkingen veel nauwer gerelateerd aan PHP, dus laten we een kijkje nemen POST
verzoeken in de context van WordPress.
En als u projecten voor WordPress of producten bovenop WordPress wilt bouwen, is het belangrijk om te begrijpen welke API's beschikbaar zijn om ervoor te zorgen dat u bepaalde functies of functies niet verliest met een upgrade naar de kern WordPress-applicatie.
Dus, net zoals we naar de WordPress coderingsstandaarden hebben gekeken om de best practices voor het schrijven van op WordPress gebaseerde code te bekijken, gaan we nu kijken naar de API's die beschikbaar zijn voor schrijven POST
verzoeken met behulp van best practices.
Voer daartoe in wp_remote_post
.
De functie accepteert twee argumenten:
Hoewel de reeks argumenten enigszins buiten het bereik vallen van wat we in deze serie gaan doen, is het belangrijk om te begrijpen wat er beschikbaar is, vooral als je in de toekomst meer geavanceerd werk gaat doen:
methode
verwijst naar welke methode wordt gebruikt voor het verzoek. We gebruiken het duidelijk POST
gezien de aard van onze API-methode.time-out
is hoe lang je bereid bent te wachten tot het verzoek verwerkt is voordat je het opgeeft. De standaardwaarde is vijf seconden, maar dit kan worden verlaagd of verhoogd op basis van de aard van uw toepassing.redirection
klinkt alsof het de URL is waarnaar je zou worden doorgestuurd nadat het verzoek is voltooid, toch? In plaats daarvan is het een tijdseenheid - in seconden - om op een omleiding te wachten voordat het verzoek wordt afgewezen.user agent
stelt ons in staat om de user-agent te controleren die samen met de aanvraag wordt verzonden. Meestal is dit WordPress en het versienummer, maar het is duidelijk aanpasbaar.blokkeren
kort gezegd, als dit is ingesteld op waar, wordt het script voortgezet totdat iets wordt geretourneerd van de server; anders blijft het script werken zonder de rest van uw toepassing te blokkeren. Toegegeven, dit gaat ten koste van mogelijk nooit een reactie terug te krijgen, maar afhankelijk van de omstandigheden waarvoor je bouwt, kan dit prima zijn.samenpersen
is geïntroduceerd in WordPress 2.6 en stelt u in staat om de hoofdtekst van het verzoek in een gecomprimeerde indeling te verzenden. Dit zal buiten het bereik van onze toekomstige artikelen vallen.uitpakken
lijkt op comprimeren, behalve dat het aan ons eind is - als gecomprimeerde gegevens worden ontvangen, kunnen we de inhoud decomprimeren voordat we verder gaan met bewerken of verwerken.sslverify
werd geïntroduceerd in WordPress 2.8 en is handig voor scenario's waarin u moet controleren of een SSL-certificering geldig is. Als dat niet het geval is, wordt het verzoek geweigerd; anders ben je goed om te gaan. Deze optie valt ook buiten het bereik van deze reeks artikelen.Uiteraard zijn er veel dingen die beschikbaar zijn. In de volgende paar artikelen hoop ik sommige van deze meer in detail te bekijken, maar laten we eerst eens kijken naar een heel eenvoudig, praktisch voorbeeld van het gebruik van de API-functie..
POST
Een verzoekOp dit punt moeten de dingen duidelijk genoeg zijn, toch? Gebruik makend van wp_remote_post
zou net zo eenvoudig moeten zijn als gebruiken wp_remote_get
dus vanaf het volgende artikel gaan we precies dat doen.
Zorg er tot die tijd voor dat u alle artikelen in de aanloop naar dit punt heeft beoordeeld en laat eventuele opmerkingen en / of vragen achter in dit commentaar in de opmerkingen.
Vervolgens gaan we aan de slag!