În acest tutorial vom crea un widget WordPress care afișează tendințele Twitter pe regiuni. Vom folosi API-ul Trends Twitter și vom actualiza tendințele după o anumită durată de timp folosind API-ul WordPress 'Transients.
Tendințele Twitter: Twitter Trends oferă o imagine de ansamblu asupra a ceea ce vorbesc despre cele mai multe milioane de utilizatori Twitter despre cel mai mult la un moment dat pe Twitter, ceea ce vă va oferi câteva indicii despre ceea ce se întâmplă în întreaga lume.
Twitter oferă un API pentru Tendințe, GET tendințe /: gâfâi
, care este un API RESTful care returnează rezultatele în format JSON sau XML. Puteți parcurge cu ușurință rezultatul solicitării API și îl puteți afișa.
Twitter folosește ID-urile Yahoo on-line (WOEIDs) pentru a identifica locațiile pentru care au date de trend.
Deci, ce este WOEID (unde pe IDENTIFIERI DE PĂMÂNT) ?
WOEID este un identificator de referință unic alocat de WOEID-urile Yahoo! pentru a identifica orice loc de pe Pământ.
Widgeturile WordPress sunt pluginuri WordPress care pot fi adăugate cu ușurință în regiuni widgetized ale temei WordPress, cum ar fi bara laterală, subsolul etc. Pentru a utiliza un widget WordPress aveți nevoie de teme WordPress corect "widgetized" pentru a include widget-uri în antet, subsol și în altă parte în zonele widget WordPress. Din tabloul de bord, administratorii pot adăuga, rearanja, elimina și actualiza cu ușurință parametrii widgetului. Utilizarea widget-urilor WordPress este foarte, foarte ușor pentru proprietarii de bloguri non-tehnice.
Utilizarea widget-urilor WorPress nu necesită experiență de codificare. Ele pot fi ușor adăugate, eliminate și rearanjate pe panoul de administrare WordPress "Appearance -> Widgets" prin simpla tragere și plasare.
Înainte de a începe, presupun că aveți o cunoaștere generală a API-ului WordPress Widgets. În acest tutorial vom folosi WordPress Widget Boilerplate lui Paulund.
Vom crea un widget WordPress care vă permite să preluați tendințele Twitter pe regiuni și să le afișați pe blogul / site-ul dvs. WordPress.
Widget-ul Twitter Trends vă oferă blogului sau vizitatorilor site-ului dvs. o imagine de ansamblu asupra a ceea ce milioane de oameni de pe Twitter vorbesc despre cele mai multe acum, bazate pe o locație specifică. Acest widget va da o privire asupra a ceea ce se întâmplă în jurul lumii chiar acum.
Înregistrați "TwitterTrendsWidget
widget în widget_init
acțiune.
/ * Nume Plug-in: WP Twitter Trends URI Plugin: http://geekslabs.com/wp-twitter-trends Descriere: Un widget pentru a afișa tendințele de twitter pe regiuni. Versiune: 1.0 Autor: Ajay Patel Autor URI: http://ajayy.com * / / ** * Înregistrează widgetul * / add_action ('widgets_init', 'TwitterTrendsWidgetInit'); funcția TwitterTrendsWidgetInit () register_widget ('TwitterTrendsWidget');
register_widget
funcția va apela TwitterTrendsWidget
clasa pe care o vom crea în pasul următor.
/ ** * Adaugă widgetul TwitterTrendsWidget. * / clasa TwitterTrendsWidget extinde funcția WP_Widget funcția TwitterTrendsWidget () părinte :: WP_Widget (false, $ region = 'Twitter Trends Widget'); / ** * Înregistrați widget-ul cu WordPress. * / funcția publică __construct () parent :: __ construct ('twittertrendswidget', // Base ID 'TwitterTrendsWidget', // Nume array ('classname' => 'TwitterTrendsWidget', 'description' => arată tendințele de tip twitter în funcție de regiune. ',' tfwidget '),) // Args); // Constructor de sfârșit
Funcția Widget vă ajută să afișați widget-ul pe front-end. Această funcție este chemată să returneze ieșirea widgetului și să o afișeze în zona de afișare a widgetului (de ex., Bara laterală, subsolul).
După cum puteți vedea, colectăm toate câmpurile necesare din $ instanță
cum ar fi titlu
, regiune
, și expirare
pentru a afișa widget-ul de pe site-ul cu un stil adecvat.
Utilizați următoarea funcție pentru a afișa Widget-ul Twitter Trends.
/ ** * Afișarea frontală a widget-ului. * * @ văd WP_Widget :: widget () * * @param array $ args Argumente widget. * @ param array $ instance Valori salvate din API-ul tranzitoriu WordPress. * / funcția widget ($ args, $ instanță) extract ($ args); $ title = apply_filters ('widget_title', $ instanță ['title']); $ region = apply_filters ('widget_region', $ instanță ['regiune']); // regiune selectată (ex. India) $ expiration = apply_filters ('widget_expiration', $ instance ['expiration']); // timpul de captură $ display = apply_filters ('widget_display', $ instance ['display']); // Nu există tendințe de afișare a ecoului $ before_widget; dacă ($ title) echo $ before_title. titlul $. $ After_title; ?>„; pentru ($ i = 0; $ i < $display; $i++) echo ''$ tendințe [0] [ 'tendințe'] [$ i] [ 'nume']'. „; // Afișați tendințele Twitter ecou '„; ?>
În acest Widget Twitter Trends vom folosi următoarele variabile:
titlu $
- Titlul widgetului nostru (câmpul cu text)regiune $
- Pentru a selecta lista regiune, regiune implicită cu valoarea GEOID, de ex. India: 23424848 (drop down field)$ expirare
- Actualizați tendințele folosind API-ul WordPress Transients. de exemplu. orar, zilnic (câmp drop-down)afișare $
- Numărul de tendințe afișate (câmpul cu text)Vom stabili valorile acestor variabile folosind WordPress $ instanță
variabil.
În codul de mai sus folosim twitter_trends ()
funcţie. Nu trebuie să vă faceți griji acum, o voi explica în pasul următor.
În funcție twitter_trends ()
trecem regiune $
și $ expirare
variabile și va reveni o serie de tendințe Twitter pe regiuni. Alocați-i acestuia tendințe $
variabil.
Apoi, afișați tendințele folosind o buclă pentru cu o limită de afișare a tendințelor folosind afișare $
variabil.
API-ul WordPress "Transients" vă permite să stocați temporar datele stocate în memoria cache în baza de date, oferindu-i un nume personalizat și o durată de timp după care acesta va expira automat și va fi șters.
Pentru mai multe informații despre API-ul WordPress "Transients", vă puteți referi la seria de tutorial API-uri Getting Started cu WordPress.
/ ** * Folosind API tranzitoriu WordPress * * @see API tranzitorii: http://codex.wordpress.org/Transients_API * * @param array $ count salvate Twitter Trends după valorile regiunilor din API-ul Twitter Trends. * / funcția twitter_trends ($ region, $ expiration) $ count = get_transient ('twitter_trends'); dacă ($ count! == false) returnează $ count; $ count = 0; $ url = 'https://api.twitter.com/1/trends/'.$region.'.json?count=50 "; $ dateOrig = fișier_get_content ($ url, true); // obține conținutul fișierului dacă (is_wp_error ($ dataOrig)) returnează eroarea în timpul preluării datelor din Twitter API! '; altfel $ count = json_decode ($ dataOrig, true); // obține conținutul fișierului ca array set_transient ('twitter_trends', $ count, 60 * 60 * $ expiration); // set cache return $ count;
După cum v-am spus înainte, trecem două variabile regiune $
și $ expirare
în această funcție.
Acum, folosind Twitter Trends API GET tendințe /: woeid. Să presupunem variabila noastră regiune $
are o valoare de "23424848". Să încercăm să obținem tendințele actuale de Twitter pentru India.
https://api.twitter.com/1/trends/23424848.json?count=50
Trebuie doar să inserați această adresă URL în browserul dvs. Veți vedea răspunsul tendințelor în format JSON. Utilizarea file_get_contents ()
citește un fișier într-un șir. Dacă nu există nici o eroare în răspuns, atunci folosiți json_decode ()
primește un șir JSON codificat și îl convertește într-o variabilă de obiect PHP $ count
.
Acum actualizați variabila Twitter Trends
set_transient ('twitter_trends', $ count, 60 * 60 * $ expirație); // set cache
Funcția de actualizare widget WordPress este utilizată pentru a actualiza variabilele formularului de widget în baza de date prin trimiterea unei forme de administrare widget.
/ ** * Sanitizează valorile formularului widget după cum sunt salvate. * * @ se vedea WP_Widget :: update () * * @param array $ new_instance Valorile trimise doar pentru a fi salvate. * @param matrix $ old_instance Valori salvate anterior din baza de date. * * @return array S-au actualizat valorile sigure pentru a fi salvate. * / actualizare funcție ($ new_instance, $ old_instance) $ instanță = array (); $ instanță ['title'] = strip_tags ($ new_instance ['title']); $ instanță ['regiune'] = strip_tags ($ new_instance ['regiune']); $ instanță ['expirație'] = strip_tags ($ new_instance ['expirație']); $ instanță ['display'] = strip_tags ($ new_instance ['display']); delete_transient ("twitter_trends"); returnați $ instanță;
Opțiunile widget-ului au fost stocate într-o variabilă de matrice care a fost apelată $ instanță
. Funcția de actualizare are doi parametri, $ new_instance
și $ old_instance
. $ old_instance
care conține toate valorile opțiunilor care au fost deja salvate înainte, și $ new_instance
care conține toate valorile opțiunilor pe care tocmai le-am actualizat prin intermediul formularului de administrare widget.
Această funcție stabilește fiecare valoare de instanță veche în matrice egală cu valoarea corespunzătoare din noua instanță.
Funcția de formular widget este utilizată pentru a crea formularul widget în tabloul de bord pentru a stoca sau actualiza variabilele widget. Crearea formularului widget este foarte simplu, va scoate un formular HTML cu un câmp pentru opțiunile noastre.
/ ** * Formular widget de back-end. * * @ se vedea WP_Widget :: form () * * @param array $ instanță Valorile memorate anterior din baza de date. * / formularul funcției ($ instance) $ title = esc_attr ($ instance ['title']); $ region = esc_attr ($ instanță ['regiune']); $ expiration = esc_attr ($ instanță ['expirație']); $ display = esc_attr ($ instanță ['afișare']); ?>
În această funcție puteți vedea $ instanță
parametru, care permite formularul nostru HTML să citească opțiunile widget-ului salvat.
Puteți vedea codul complet în pluginul WP Twitter Trends din directorul plugin WordPress.org sau îl puteți descărca de la link-ul din partea de sus a acestui articol.
Și aici am dezvoltat cu succes WP Twitter Trends Widget! Puteți să descărcați codul sursă și să modificați aspectul widget-ului frontal prin adăugarea de noi stiluri CSS. De asemenea, puteți să creați un widget tabular pentru a separa subiecte de ultimă tendință și hașutele. Acum, aveți un widget de tendințe pe site-ul sau pe blogul dvs..
.