Twitter Trender Widget for WordPress

I denne opplæringen skal vi lage en WordPress-widget som viser Twitter Trender etter region. Vi bruker Twitters Trends API og oppdaterer trender etter en bestemt tidsperiode ved hjelp av WordPress 'Transients API.


Twitter Trends API & WOEID

Twitter Trender: Twitter Trender gir en generell oversikt over hva millioner av Twitter-brukere snakker om mest på bestemt tidspunkt på Twitter, noe som vil gi deg en indikasjon på hva som skjer verden rundt.

Twitter gir en trend-API, GET-trender /: tøff, som er en RESTful API som returnerer resultater i JSON eller XML-format. Du kan enkelt analysere API-forespørselsresultatet og vise det.

Twitter bruker Yahoo's Where On Earth IDs (WOEIDs) for å identifisere steder som det har trending data på.

Så Hva er WOEID (HVOR PÅ EARTH IDENTIFIKATORER) ?
WOEID er en unik referanseverifikator som er tildelt av Yahoo! S WOEIDs for å identifisere ethvert sted på jorden.


WordPress Widgets

WordPress Widgets er WordPress plugins som enkelt kan legges til widgetized regioner i WordPress-temaet som sidebar, bunntekst, etc. For å bruke en WordPress-widget trenger du riktig "widgetized" WordPress-temaer for å inkludere widgets i overskriften, bunnteksten og andre steder i WordPress-widget-områdene. Fra dashbordet kan administratorer enkelt legge til, omorganisere, fjerne og oppdatere widgetparametere. Bruke WordPress-widgets er veldig, veldig enkelt for ikke-tekniske bloggeiere.

Bruk av WorPress-widgets krever ingen kodingserfaring. De kan enkelt legges til, fjernes og omarrangeres på WordPress-administrasjonen "Utseende -> Widgets" -panelet ved å enkelt dra og slippe.

Før vi starter, antar jeg at du har generell kunnskap om WordPress Widgets API. I denne opplæringen skal vi bruke Paulunds WordPress Widget Boilerplate.


Opprette Twitter Trends Widget

Vi skal lage en WordPress-widget som lar deg hente Twitter-trender etter region og vise dem på WordPress-bloggen din.

Twitter Trends Widget gir bloggen eller nettstedet besøkende en generell oversikt over hva millioner av mennesker på Twitter snakker om mest nå, basert på et bestemt sted. Denne widgeten gir litt innsikt i hva som skjer rundt om i verden akkurat nå.

Opprette Widget Constructor

Registrer "TwitterTrendsWidget'widget i widget_init handling.

 / * Plugin navn: WP Twitter Trends Plugin URI: http://geekslabs.com/wp-twitter-trends Beskrivelse: En widget for å vise twitter trender etter region. Versjon: 1.0 Forfatter: Ajay Patel Forfatter URI: http://ajayy.com * / / ** * Registrer widgeten * / add_action ('widgets_init', 'TwitterTrendsWidgetInit'); funksjon TwitterTrendsWidgetInit () register_widget ('TwitterTrendsWidget'); 

De register_widget funksjonen vil ringe til TwitterTrendsWidget klasse som vi vil skape i neste trinn.

 / ** * Legger til TwitterTrendsWidget-widgeten. * / klasse TwitterTrendsWidget utvider WP_Widget funksjon TwitterTrendsWidget () foreldre :: WP_Widget (false, $ region = 'Twitter Trends Widget');  / ** * Registrer widget med WordPress. * / offentlig funksjon __construct () foreldre :: __ konstruere ('twittertrendswidget', // Base ID 'TwitterTrendsWidget', // Navn array ('classname' => 'TwitterTrendsWidget', 'description' => __ ('En widget til vis twitter trender etter region. ',' tfwidget '),) // Args);  // End constructor

Opprette Widget-funksjonen

Widget-funksjonen hjelper deg med å vise widgeten din på forsiden. Denne funksjonen kalles for å returnere utdata fra widgeten og vise den i widgetvisningsområdet (for eksempel sidebjelke, bunntekst).

Som du kan se samler vi alle de nødvendige feltene fra $ forekomst array som tittel, region, og utløp å vise widgeten på nettstedet med riktig stil.

Bruk følgende funksjon for å vise vår Twitter Trends Widget.

 / ** * Front-end visning av widget. * * @see WP_Widget :: widget () * * @param array $ args Widget argumenter. * @param array $ instance Lagrede verdier fra WordPress forbigående API. * / funksjon widget ($ args, $ forekomst) ekstrakt ($ args); $ title = apply_filters ('widget_title', $ instance ['title']); $ region = apply_filters ('widget_region', $ instance ['region']); // Utvalgt område (Eks. India) $ utløp = apply_filters ('widget_expiration', $ instance ['utløp']); // Fangstid $ display = apply_filters ('widget_display', $ instance ['display']); // Ingen trender for å vise ekko $ before_widget; hvis ($ title) echo $ before_title. $ tittel. $ After_title; ?> 
'; for ($ i = 0; $ i < $display; $i++) echo '
  • '$ trender [0] [ 'trender'] [$ i] [ 'name'].'
  • '; // Vis Twitter trender ekko ''; ?>

    I denne Twitter Trends Widget bruker vi følgende variabler:

    • $ title - Vår widget tittel (tekstboks felt)
    • $ region - For å velge region, rullegardin for standardregion med GEOID-verdi, f.eks. India: 23424848 (rullegardinfelt)
    • $ utløps - Oppdater trender ved hjelp av WordPress Transients API. f.eks time, daglig (dropdown-felt)
    • $ skjerm - Antall trender som skal vises (tekstboksfelt)

    Vi vil angi verdiene for disse variablene ved hjelp av WordPress $ forekomst variabel.

    I koden ovenfor bruker vi twitter_trends () funksjon. Du trenger ikke å bekymre deg for det nå, jeg vil forklare det i neste trinn.

    I funksjonen twitter_trends () vi går forbi $ region og $ utløps variabler, og det vil returnere en rekke Twitter-trender etter region. Tilordne det til $ trender variabel.

    Deretter viser trender med en forløp med en grense for å vise trender ved hjelp av $ skjerm variabel.

    Bruke WordPress 'Transients API.

    WordPress 'Transient API gir deg mulighet til å lagre hurtigbufrede data i databasen midlertidig ved å gi den et egendefinert navn og en tidsperiode, hvorefter den automatisk vil utløpe og bli slettet.

    For mer informasjon om WordPress 'Transients API, kan du se vår Komme i gang med WordPress Transients API-opplæringsserien.

     / ** * Bruke WordPress forbigående API * * @see Transients API: http://codex.wordpress.org/Transients_API * * @param array $ count lagret Twitter Trends av region verdier fra Twitter Trends API. * / funksjon twitter_trends ($ region, $ utløp) $ count = get_transient ('twitter_trends'); hvis ($ count! == false) returnerer $ count; $ telle = 0; $ url = 'https://api.twitter.com/1/trends/'.$region.'.json?count=50'; $ dataOrig = file_get_contents ($ url, true); // får filinnholdet hvis (is_wp_error ($ dataOrig)) return "Feil mens du henter data fra Twitter API! ';  ellers $ count = json_decode ($ dataOrig, true); // få filinnholdet som array set_transient ('twitter_trends', $ count, 60 * 60 * $ utløp); // sett cache return $ count; 

    Som jeg fortalte deg før, passerer vi to variabler $ region og $ utløps i denne funksjonen.

    Nå, ved hjelp av Twitters Trender API GET trender /: trøtt. Anta vår variabel $ region har en verdi på "23424848". La oss prøve å få dagens Twitter-trender for India.

     https://api.twitter.com/1/trends/23424848.json?count=50

    Bare lim inn denne nettadressen i nettleseren din. Du vil se trendresponsen i JSON-format. Bruker file_get_contents () leser en fil i en streng. Hvis det ikke er noen feil i svaret, bruker du det json_decode () får en JSON-kodet streng og konverterer den til en PHP-objektvariabel $ count.

    Oppdater nå varianten Twitter Trends

     set_transient ('twitter_trends', $ count, 60 * 60 * $ utløp); // sett cache

    Opprette Widget Update Function

    WordPress widget oppdateringsfunksjonen brukes til å oppdatere våre widget skjema variabler til databasen ved å sende inn et widget administrasjonsskjema.

     / ** * Sanitize widget skjema verdier som de er lagret. * * @see WP_Widget :: oppdatering () * * @param array $ new_instance Verdier bare sendt for å bli lagret. * @param array $ old_instance Tidligere lagrede verdier fra database. * * @return array Oppdaterte sikre verdier som skal lagres. * / funksjon oppdatering ($ new_instance, $ old_instance) $ instance = array (); $ instance ['title'] = strip_tags ($ new_instance ['title']); $ instance ['region'] = strip_tags ($ new_instance ['region']); $ instance ['utløp'] = strip_tags ($ new_instance ['utløp']); $ instance ['display'] = strip_tags ($ new_instance ['display']); delete_transient ('twitter_trends'); returner $ instance; 

    Widget-alternativer ble lagret i en array-variabel som ble kalt $ forekomst. Oppdateringsfunksjonen tar to parametere, $ new_instance og $ old_instance. $ old_instance som inneholder alle valgverdiene som allerede var lagret før, og $ new_instance som inneholder alle valgverdiene som vi nettopp har oppdatert gjennom widgetadministrasjonsskjemaet.

    Denne funksjonen setter hver gammel forekomstverdi i arrayet lik den aktuelle verdien i den nye forekomsten.

    Opprette Widget Form Funksjon

    Widget form funksjonen brukes til å lage widget skjemaet i dashbordet for å lagre eller oppdatere widget variabler. Å lage widget skjema er veldig enkelt, det vil sende ut et HTML-skjema med et felt for våre alternativer.

     / ** * Back-end widget skjema. * * @see WP_Widget :: skjema () * * @param array $ forekomst Tidligere lagrede verdier fra database. * / funksjonsskjema ($ forekomst) $ title = esc_attr ($ instance ['title']); $ region = esc_attr ($ instance ['region']); $ utløp = esc_attr ($ instance ['utløp']); $ display = esc_attr ($ instance ['display']); ?> 

    I denne funksjonen kan du se $ forekomst parameter, som gjør at vårt HTML-skjema kan lese de lagrede widgetalternativene.


    Setter det sammen: Den fullstendige koden

    Du kan se hele koden i WP Twitter Trends plugin i WordPress.org plugin-katalogen, eller last den ned fra koblingen øverst i denne artikkelen.


    Konklusjon

    Og her har vi utviklet en WP Twitter Trends Widget! Du kan laste ned kildekoden og endre frontend-widget-layoutet ved å legge til nye CSS-stiler. Du kan også opprette en tabbed-widget for å skille mellom nyeste trender og hashtags. Nå har du en trender-widget på nettstedet ditt eller bloggen.

    .