Een eenvoudige Instagram-plug-in maken

In de volgende tutorial zullen we een plug-in maken om de populaire foto's van de hoofdfeed van Instagram te krijgen.


1. Het plan

Onze plug-in zal werken met de [Instagradam] Korte code. U kunt het overal invoegen waar HTML-inhoud naartoe kan gaan, bijvoorbeeld. sjablooncode, editorcode, enz.

Als gevolg hiervan zullen ongeveer 10-15 miniatuurafbeeldingen worden getoond met aanklikbare koppelingen. De kern van de plug-in is gebaseerd op een feed op afstand, die we zullen ophalen met behulp van de Functie-API van WordPress.

De onbewerkte gegevenslijst ziet er functioneel uit:

 / * theluxurystyle --- http://distilleryimage8.s3.amazonaws.com/c4c876f4780a11e2a15422000a9f19a4_5.jpg loveobe --- http://distilleryimage3.s3.amazonaws.com/0c2d3b20781911e2b92122000a9e0727_5.jpg jaredleto --- http: // distilleerderijafbeelding8. s3.amazonaws.com/21d07bce781c11e2adc122000a1f9ace_5.jpg balloop --- http://distilleryimage11.s3.amazonaws.com/4fe04e66781411e2890222000a1fb0b2_5.jpg pinkshosho --- http://distilleryimage10.s3.amazonaws.com/abaef1b4781b11e2a2ce22000a1fa411_5.jpg * /

We zullen wat foto's maken

2. Cliënt-ID en geheim verkrijgen

Deze stap is nodig voor elke nieuwe plug-in. Registreer het op Instagram om een klant identificatie en client_secret. De plugin-naam moet in mijn ervaring eenvoudige alfabetische tekens zijn (bijv. johnsplugin).


3. Plugin-informatie

Dit is de plaats om de basisgegevens van uw plug-in te beschrijven, zoals plugin-naam, url, versienummer en auteur.

 / * Plugin Name: Instagradam Plugin URI: http://wp.tutsplus.com/ Beschrijving: Een eenvoudige en snelle plug-in voor Instagram-shortcodes. Gebruik [instagradam] om hoofdvoer te trekken! Versie: 1.0 Auteur: Adam Burucs Auteur URI: http://burucs.com/ * /

4. De shortcode registreren

Dit definieert de [Instagradam] shortcode, die zal werken op basis van de instagradam_embed_shortcode functie.

 // registreer shortcode add_shortcode ('instagradam', 'instagradam_embed_shortcode');

5. Definitie van hoofdfunctie voor de shortcode

Dit zal de kernbewerking van onze plug-in beschrijven. De $ atts en $ inhoud moet worden gedefinieerd zoals we hier zien, maar we zullen ze in deze les niet gebruiken.

 // definieer shortcode-functie instagradam_embed_shortcode ($ atts, $ content = null) // ...

6. Variabelen maken

We hebben een helpervariabele nodig voor het maken van een uitvoer voor onze functie en voor het ophalen van gegevens die de API van de Wordpress-functie gebruikt. Dat is $ str en $ result, respectievelijk.

 // define main output $ str = ""; // ontvang externe gegevens $ result = wp_remote_get ("https://api.instagram.com/v1/media/popular?client_id=3f72f6859f3240c68b362b80c70e3121");

7. Omgaan met voedingsfouten

De hoofdselectie verwerkt de feedfout (in sommige gevallen kunnen we SSL-fouten krijgen, maar er is een oplossing voor hetgeen verderop in dit artikel wordt beschreven).

Als er een fout is, herhalen we deze naar de pagina: Er is iets fout gegaan:… .

 if (is_wp_error ($ result)) // foutafhandeling $ error_message = $ result-> get_error_message (); $ str = "Er is iets fout gegaan: $ error_message";  else // verder verwerken // ...

8. Meer variabelen

veranderlijk $ result bevat de belangrijkste gegevens, voor verwerking maken we een andere helper genoemd $ main_data. We hebben ook een teller nodig voor de iteratie.

 // processing further $ result = json_decode ($ result ['body']); $ main_data = array (); $ n = 0;

9. Looping, deel een

Deze lus verzamelt alle gebruikersnamen en miniaturen die we nodig hebben. Eerder heb ik de hoofdfeed geanalyseerd (de structuur van de feed) om te ontdekken hoe ik de gegevens kan ophalen die ik wil. Dit is dus een belangrijke stap en laten we ook niet vergeten dat Instagram dit later kan veranderen
en we moeten mogelijk wijzigen $ D-> gebruikersvriendelijk> gebruikersnaam en $ D-> Afbeeldingen-> thumbnail-> url.

 // krijg gebruikersnaam en actuele thumbnail voor elk ($ resultaat-> data als $ d) $ main_data [$ n] ['user'] = $ d-> user-> gebruikersnaam; $ main_data [$ n] ['thumbnail'] = $ d-> afbeeldingen-> thumbnail-> url; $ N ++; 

10. Looping, deel twee

In de volgende regels maken we de HTML-code die de afbeeldingen en links van de hoofdfeed van Instagram bevat. De links openen in een nieuw venster, gemaakt met target = "_ blank". Let op de spatie aan het einde van de hoofdreeks, dit is voor basisscheiding.

 // hoofdreeks maken, afbeeldingen ingesloten in links voor elk ($ main_data als $ data) $ str. = ''$ Data [ 'user'].' afbeeldingen '; 

11. Het gemakkelijke deel

Deze (shortcode) standaardcode retourneert onze belangrijkste inhoud.

 return $ str;

12. SSL-problemen

In sommige gevallen de wp_remote_get functie kan slecht werken, om dit op te lossen moeten we deze code gebruiken voor de hoofdcodegedeelten.

 // fix SSL request error add_action ('http_request_args', 'no_ssl_http_request_args', 10, 2); function no_ssl_http_request_args ($ args, $ url) $ args ['sslverify'] = false; $ args teruggeven; 

13. Voer de code in

De voltooide code ziet er zo uit.

 / * Plugin Name: Instagradam Plugin URI: http://wp.tutsplus.com/ Beschrijving: Een eenvoudige en snelle plug-in voor Instagram-shortcodes. Gebruik [instagradam] om hoofdvoer te trekken! Versie: 1.0 Auteur: Adam Burucs Auteur URI: http://burucs.com/ * / // fix SSL request error add_action ('http_request_args', 'no_ssl_http_request_args', 10, 2); function no_ssl_http_request_args ($ args, $ url) $ args ['sslverify'] = false; $ args teruggeven;  // registreer shortcode add_shortcode ('instagradam', 'instagradam_embed_shortcode'); // definieer shortcode-functie instagradam_embed_shortcode ($ atts, $ content = null) // definieer hoofduitvoer $ str = ""; // ontvang externe gegevens $ result = wp_remote_get ("https://api.instagram.com/v1/media/popular?client_id=3f72f6859f3240c68b362b80c70e3121"); if (is_wp_error ($ result)) // foutafhandeling $ error_message = $ result-> get_error_message (); $ str = "Er is iets fout gegaan: $ error_message";  else // processing further $ result = json_decode ($ result ['body']); $ main_data = array (); $ n = 0; // krijg gebruikersnaam en actuele thumbnail voor elk ($ resultaat-> data als $ d) $ main_data [$ n] ['user'] = $ d-> user-> gebruikersnaam; $ main_data [$ n] ['thumbnail'] = $ d-> afbeeldingen-> thumbnail-> url; $ N ++;  // hoofdreeks maken, afbeeldingen ingesloten in links foreach ($ main_data als $ data) $ str. = ''$ Data [ 'user'].' afbeeldingen ';  return $ str; 

Voltooide look

Dit is een afbeelding die de plug-in in actie toont. Hiervoor is de shortcode in een artikel ingevoegd.


Hoe het eruit ziet in een browser