I den här handledningen ska vi skapa en WordPress-widget som visar Twitter Trends per region. Vi kommer att använda Twitters Trends API och uppdatera trender efter en viss tidsperiod med hjälp av WordPress 'Transients API.
Twitter Trender: Twitter-trender ger en allmän översikt över vad miljontals Twitter-användare talar mest om vid en viss tid på Twitter, vilket ger dig en indikation på vad som händer runt om i världen.
Twitter tillhandahåller ett API för trender, GET-trender /: trött
, vilket är ett RESTful API som returnerar resultat i JSON eller XML-format. Du kan enkelt analysera API-förfrågan och visa det.
Twitter använder Yahoo: s Where On Earth IDs (WOEIDs) för att identifiera platser för vilka det har trending data.
Så Vad är WOEID (VAR PÅ EARTH IDENTIFIERS) ?
WOEID är en unik referensidentifierare som tilldelats av Yahoo! S WOEIDs för att identifiera vilken plats som helst på jorden.
WordPress-widgets är WordPress-plugins som enkelt kan läggas till widgetiserade regioner i ditt WordPress-tema som sidfältet, sidfot, etc. För att använda en WordPress-widget behöver du ordentligt "widgetized" WordPress-teman för att inkludera widgets i rubriken, sidfot och på annat håll i WordPress-widgetområdena. Från instrumentpanelen kan administratörer enkelt lägga till, omorganisera, ta bort och uppdatera widgetparametrar. Använda WordPress-widgets är väldigt enkelt för icke-tekniska bloggägare.
Användning av WorPress-widgets kräver ingen kodningsupplevelse. De kan enkelt läggas till, tas bort och omplaceras på WordPress-administrationen "Utseende -> Widgets" -panelen genom att enkelt dra och släppa.
Innan vi börjar antar jag att du har allmän kännedom om WordPress Widgets API. I denna handledning kommer vi att använda Paulunds WordPress Widget Boilerplate.
Vi ska skapa en WordPress-widget som låter dig hämta Twitter Trends efter region och visa dem på din WordPress-blogg / hemsida.
Twitter Trends Widget ger din blogg eller webbplats besökare en allmän översikt över vilka miljoner människor på Twitter som pratar om mest nu, baserat på en viss plats. Denna widget ger en viss insikt om vad som händer runt om i världen just nu.
Registrera "TwitterTrendsWidget
"widget i widget_init
verkan.
/ * Plugin namn: WP Twitter Trends Plugin URI: http://geekslabs.com/wp-twitter-trends Beskrivning: En widget för att visa twitter trender efter region. Version: 1.0 Författare: Ajay Patel Författare URI: http://ajayy.com * / / ** * Registrera widgeten * / add_action ('widgets_init', 'TwitterTrendsWidgetInit'); funktion TwitterTrendsWidgetInit () register_widget ('TwitterTrendsWidget');
De register_widget
funktionen kommer att ringa TwitterTrendsWidget
klass som vi kommer att skapa i nästa steg.
/ ** * Lägger till TwitterTrendsWidget-widgeten. * / klass TwitterTrendsWidget utökar WP_Widget funktion TwitterTrendsWidget () förälder :: WP_Widget (false, $ region = 'Twitter Trends Widget'); / ** * Registrera widget med WordPress. * / public function __construct () parent :: __ construct ('twittertrendswidget', // Base ID 'TwitterTrendsWidget', // Namn array ('classname' => 'TwitterTrendsWidget', 'description' => __ ('En widget till visa twitter trender efter region. ',' tfwidget '),) // Args); // Slutkonstruktör
Widget-funktionen hjälper dig att visa din widget på fronten. Den här funktionen kallas för att returnera utmatningen av widgeten och visa den i widgetvisningsområdet (t.ex. sidofält, sidfot).
Som ni kan se samlar vi alla obligatoriska fält från $ instans
array som titel
, område
, och utgång
för att visa widgeten på webbplatsen med rätt stil.
Använd följande funktion för att visa vår Twitter Trends Widget.
/ ** * Front-end visning av widgeten. * * @see WP_Widget :: widget () * * @param array $ args Widget-argument. * @param array $ instance Sparade värden från WordPress-övergående API. * / funktion widget ($ args, $ instans) extrakt ($ args); $ title = apply_filters ('widget_title', $ instance ['title']); $ region = apply_filters ('widget_region', $ instance ['region']); // Vald region (ex. Indien) $ expiration = apply_filters ('widget_expiration', $ instance ['expiration']); // Fångsttid $ display = apply_filters ('widget_display', $ instance ['display']); // Inga trender för att visa echo $ before_widget; om ($ title) echo $ before_title. $ titel. $ After_title; ?>'; för ($ i = 0; $ i < $display; $i++) echo ''$ trender [0] [ 'trender'] [$ i] [ 'name'].' '; // Visa Twitter trender echo ''; ?>
I denna Twitter Trends Widget använder vi följande variabler:
$ titel
- Vår widget titel (textbox fält)$ region
- För att välja region, standardregistret med GEOID-värde, t.ex. Indien: 23424848 (rullgardinsfält)$ utgångs
- Uppdatera trender med hjälp av WordPress Transients API. t.ex. timme, dagligen (rullgardinsfält)$ display
- Antal trender att visa (textboxfält)Vi ställer in värdena för dessa variabler med hjälp av WordPress $ instans
variabel.
I koden ovan använder vi twitter_trends ()
fungera. Du behöver inte oroa dig för det nu, jag kommer att förklara det i nästa steg.
I funktionen twitter_trends ()
vi passerar $ region
och $ utgångs
variabler och det kommer att returnera en rad Twitter-trender efter region. Tilldela det till $ trender
variabel.
Därefter visas trender med en för loop med en gräns för att visa trender med hjälp av $ display
variabel.
Med WordPress 'Transients API kan du lagra cachad data i databasen tillfälligt genom att ge det ett anpassat namn och en tidsperiod, varefter den automatiskt kommer att gå ut och raderas.
För mer information om WordPress 'Transients API kan du referera till vår Komma igång med WordPress Transients API-tutorial-serien.
/ ** * Använda WordPress-övergående API * * @see Transients API: http://codex.wordpress.org/Transients_API * * @param array $ count sparade Twitter Trends enligt regionvärden från Twitter Trends API. * / funktion twitter_trends ($ region, $ expiration) $ count = get_transient ('twitter_trends'); om ($ count! == false) returnera $ count; $ count = 0; $ url = 'https://api.twitter.com/1/trends/'.$region.'.json?count=50'; $ dataOrig = file_get_contents ($ url, true); // Hämta filinnehållet om (is_wp_error ($ dataOrig)) return "Fel vid hämtning av data från Twitter API! '; annars $ count = json_decode ($ dataOrig, true); // Hämta filinnehållet som array set_transient ('twitter_trends', $ count, 60 * 60 * $ expiration); // set cache return $ count;
Som jag berättade förut, skickar vi två variabler $ region
och $ utgångs
i den här funktionen.
Nu använder du Twitters Trends API GET-trender /: trötta. Antag vår variabel $ region
har ett värde av "23424848". Låt oss försöka få aktuella Twitter-trender för Indien.
https://api.twitter.com/1/trends/23424848.json?count=50
Klistra in den här webbadressen i din webbläsare. Du kommer att se trendernas svar i JSON-format. Använda file_get_contents ()
läser en fil i en sträng. Om det inte finns något fel i svaret använder du sedan json_decode ()
får en JSON-kodad sträng och omvandlar den till en PHP-objektvariabel $ count
.
Uppdatera nu variabel Twitter Trends
set_transient ("twitter_trends", $ count, 60 * 60 * $ utfall); // set cache
Uppdateringsfunktionen för WordPress widget används för att uppdatera våra widgetformsvariabler till databasen genom att skicka in en widgetadministrationsform.
/ ** * Sanitize widgetformatvärden som de sparas. * * @see WP_Widget :: uppdatering () * * @param array $ new_instance Värden som bara skickats för att sparas. * @param array $ old_instance Tidigare sparade värden från databasen. * * @return array Uppdaterade säkra värden som ska sparas. * / funktionsuppdatering ($ new_instance, $ old_instance) $ instance = array (); $ instance ['title'] = strip_tags ($ new_instance ['title']); $ instance ['region'] = strip_tags ($ new_instance ['region']); $ instance ['expiration'] = strip_tags ($ new_instance ['utgång']); $ instance ['display'] = strip_tags ($ new_instance ['display']); delete_transient ("twitter_trends"); returnera $ instance;
Widget alternativ lagrades i en array variabel som kallades $ instans
. Uppdateringsfunktionen tar två parametrar, $ new_instance
och $ old_instance
. $ old_instance
som innehåller alla alternativvärden som redan sparades före, och $ new_instance
som innehåller alla de alternativvärden som vi just har uppdaterat via widgetens administratörsformulär.
Den här funktionen sätter varje gammalt instansvärde i arrayen lika med det lämpliga värdet i den nya instansen.
Widgetformulärfunktionen används för att skapa widgetformen i instrumentbrädan för att lagra eller uppdatera widgetvariabler. Skapa widgetformat är mycket enkelt, det kommer att mata ut en HTML-form med ett fält för våra alternativ.
/ ** * Back-end widget form. * * @see WP_Widget :: form () * * @param array $ instance Tidigare sparade värden från databasen. * / funktionsform ($ instans) $ title = esc_attr ($ instance ['title']); $ region = esc_attr ($ instance ['region']); $ expiration = esc_attr ($ instans ['utgång']); $ display = esc_attr ($ instance ['display']); ?>
I den här funktionen kan du se $ instans
parameter som tillåter vår HTML-blankett att läsa de sparade widgetalternativen.
Du kan se hela koden i WP Twitter Trends plugin i WordPress.org plugin-katalogen, eller ladda ner den från länken högst upp i den här artikeln.
Och här har vi framgångsrikt utvecklat en WP Twitter Trends Widget! Du kan ladda ner källkoden och ändra front-end widget layout genom att lägga till nya CSS-stilar. Du kan också skapa en flikad widget för att separera senaste trender ämne och hashtags. Nu har du en trender widget på din webbplats eller blogg.
.