In deze tutorial gaan we een WordPress-widget maken die Twitter-trends per regio weergeeft. We zullen de Trends-API van Twitter gebruiken en trends na een specifieke tijdsduur bijwerken met behulp van de Transients-API van WordPress.
Twitter Trends: Twitter-trends geven een algemeen overzicht van wat de miljoenen Twitter-gebruikers op Twitter het meest te melden hebben, wat u een indicatie zal geven van wat er overal ter wereld gebeurt.
Twitter biedt een Trends-API, KRIJG trends /: woeid
, dat is een RESTful API die resultaten in JSON- of XML-indeling retourneert. U kunt het resultaat van de API-aanvraag eenvoudig analyseren en weergeven.
Twitter gebruikt Yahoo's Where On Earth ID's (WOEID's) om locaties te identificeren waarvoor het trendgegevens bevat.
Dus wat is WOEID (WAAR OP AARDE IDENTIFICATEN) ?
WOEID is een unieke referentie-identifier toegewezen door Yahoo! 'S WOEID's om elke plaats op aarde te identificeren.
WordPress-widgets zijn WordPress-plug-ins die eenvoudig kunnen worden toegevoegd aan widget-gebieden van uw WordPress-thema, zoals de zijbalk, voettekst, etc. Om een WordPress-widget te gebruiken, hebt u op juiste wijze widgeted WordPress-thema's nodig om widgets in de koptekst, voettekst en elders op te nemen de widgetgebieden van WordPress. Via het dashboard kunnen beheerders eenvoudig widgetparameters toevoegen, herschikken, verwijderen en bijwerken. Het gebruik van WordPress-widgets is heel, heel gemakkelijk voor niet-technische blog-eigenaren.
Het gebruik van WorPress-widgets vereist geen codeerervaring. Ze kunnen eenvoudig worden toegevoegd, verwijderd en opnieuw gerangschikt in het venster "Uiterlijk -> Widgets" van WordPress door eenvoudig slepen en neerzetten.
Voordat we beginnen, neem ik aan dat je een algemene kennis hebt van de WordPress Widgets API. In deze tutorial gaan we Paulund's WordPress Widget Boilerplate gebruiken.
We gaan een WordPress-widget maken waarmee je Twitter-trends per regio kunt ophalen en deze op je WordPress-blog / -website kunt weergeven.
De Twitter Trends Widget geeft uw blog- of websitebezoekers een algemeen overzicht van wat miljoenen mensen op Twitter nu het meest over hebben, op basis van een specifieke locatie. Deze widget geeft enig inzicht in wat er momenteel op de wereld gebeurt.
Registreer de 'TwitterTrendsWidget
'widget in de widget_init
actie.
/ * Naam van de plug-in: WP Twitter Trends Plug-in URI: http://geekslabs.com/wp-twitter-trends Beschrijving: Een widget om twittertrends per regio weer te geven. Versie: 1.0 Auteur: Ajay Patel Auteur URI: http://ajayy.com * / / ** * Registreer de Widget * / add_action ('widgets_init', 'TwitterTrendsWidgetInit'); functie TwitterTrendsWidgetInit () register_widget ('TwitterTrendsWidget');
De register_widget
functie zal de TwitterTrendsWidget
klasse die we in de volgende stap zullen maken.
/ ** * Voegt TwitterTrendsWidget-widget toe. * / class TwitterTrendsWidget breidt WP_Widget uit function TwitterTrendsWidget () parent :: WP_Widget (false, $ region = 'Twitter Trends Widget'); / ** * Registreer widget met WordPress. * / public function __construct () parent :: __ construct ('twittertrendswidget', // Base ID 'TwitterTrendsWidget', // Name array ('classname' => 'TwitterTrendsWidget', 'description' => __ ('Een widget om toon twittertrends per regio. ',' tfwidget '),) // Args); // Einde constructor
De Widget-functie helpt je om je widget aan de voorkant weer te geven. Deze functie wordt gebruikt om de uitvoer van de widget te retourneren en deze weer te geven in het weergavegebied van de widget (bijvoorbeeld zijbalk, voettekst).
Zoals je ziet, verzamelen we alle verplichte velden uit de $ instantie
array zoals titel
, regio
, en vervaltijd
om de widget op de website in de juiste stijl weer te geven.
Gebruik de volgende functie om onze Twitter Trends Widget weer te geven.
/ ** * Front-end weergave van widget. * * @see WP_Widget :: widget () * * @param array $ args Widget-argumenten. * @param array $ instance Opgeslagen waarden van WordPress transient API. * / functie widget ($ args, $ instance) extract ($ args); $ title = apply_filters ('widget_title', $ instance ['title']); $ region = apply_filters ('widget_region', $ instance ['region']); // Geselecteerde regio (bijvoorbeeld India) $ expiration = apply_filters ('widget_expiration', $ instance ['expiration']); // Catch time $ display = apply_filters ('widget_display', $ instance ['display']); // Geen trends om echo $ before_widget; weer te geven; if ($ title) echo $ before_title. $ titel. $ After_title; ?>'; voor ($ i = 0; $ i < $display; $i++) echo ''$ Trends [0] [ 'trends'] [$ i] [ 'name'].' '; // Display Twitter trends echo ''; ?>
In deze Twitter Trends Widget gebruiken we de volgende variabelen:
$ title
- Onze widget titel (textbox veld)regio $
- Om regio te selecteren, is het dropdown-menu van de standaardregio met GEOID-waarde, b.v. India: 23424848 (dropdown-veld)$ expiratie
- Werk trends bij met behulp van WordPress Transients API. bijv. per uur, dagelijks (dropdown-veld)$ vertoning
- Aantal weer te geven trends (tekstveld)We zullen de waarden van deze variabelen instellen met behulp van de WordPress $ instantie
veranderlijk.
In de bovenstaande code gebruiken we de twitter_trends ()
functie. U hoeft zich er nu geen zorgen over te maken, ik zal het in de volgende stap uitleggen.
In de functie twitter_trends ()
we zijn voorbij regio $
en $ expiratie
variabelen en retourneert een reeks Twitter-trends per regio. Wijs dat toe aan de $ trends
veranderlijk.
Geef vervolgens trends weer met behulp van een for-lus met een limiet van het weergeven van trends met behulp van de $ vertoning
veranderlijk.
Met de transiënten-API van WordPress kunt u gegevens in de cache tijdelijk opslaan in de database door deze een aangepaste naam en een tijdsduur te geven waarna deze automatisch verloopt en wordt verwijderd.
Voor meer informatie over de Transients API van WordPress kunt u onze tutorialserie Aan de slag met de WordPress Transients API raadplegen.
/ ** * Gebruik van WordPress transient API * * @see Transients API: http://codex.wordpress.org/Transients_API * * @param array $ tel opgeslagen Twitter Trends per regio-waarden van Twitter Trends API. * / function twitter_trends ($ region, $ expiration) $ count = get_transient ('twitter_trends'); if ($ count! == false) return $ count; $ count = 0; $ url = 'https://api.twitter.com/1/trends/'.$region.'.json?count=50'; $ dataOrig = file_get_contents ($ url, true); // de bestandsinhoud ophalen als (is_wp_error ($ dataOrig)) return 'Fout bij ophalen van gegevens uit Twitter API!'; else $ count = json_decode ($ dataOrig, true); // de bestandsinhoud ophalen als array set_transient ('twitter_trends', $ count, 60 * 60 * $ expiration); // set cache return $ count;
Zoals ik je eerder heb verteld, passeren we twee variabelen regio $
en $ expiratie
in deze functie.
Nu, met behulp van Twitter's Trends API GET trends /: woeid. Stel dat onze variabele regio $
heeft de waarde "23424848". Laten we proberen de huidige Twitter-trends voor India te krijgen.
https://api.twitter.com/1/trends/23424848.json?count=50
Plak deze URL gewoon in uw browser. U ziet het trendantwoord in JSON-formaat. De ... gebruiken file_get_contents ()
leest een bestand in een string. Als er geen fout is in het antwoord en dan gebruikt json_decode ()
krijgt een JSON-gecodeerde string en converteert deze naar een PHP-objectvariabele $ count
.
Werk nu de variabele Twitter-trends bij
set_transient ('twitter_trends', $ count, 60 * 60 * $ expiration); // cache instellen
De update-functie van WordPress widget wordt gebruikt om onze widget-formuliervariabelen bij te werken naar de database door een widget-adminformulier in te dienen.
/ ** * Sanitiseer widget formulierwaarden als ze worden opgeslagen. * * @see WP_Widget :: update () * * @param array $ new_instance Waarden die zojuist zijn verzonden om te worden opgeslagen. * @param array $ old_instance Eerder opgeslagen waarden uit database. * * @return array Bijgewerkte veilige waarden die moeten worden opgeslagen. * / functie-update ($ 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 ['expiration']); $ instance ['display'] = strip_tags ($ new_instance ['display']); delete_transient ('twitter_trends'); return $ instantie;
Widget-opties werden opgeslagen in een array-variabele die werd aangeroepen $ instantie
. De updatefunctie heeft twee parameters nodig, $ new_instance
en $ old_instance
. $ old_instance
die alle optiewaarden bevat die al eerder waren opgeslagen, en $ new_instance
die alle optiewaarden bevat die we zojuist hebben bijgewerkt via het widgetbeheerderformulier.
Met deze functie wordt elke oude instantie-waarde in de array gelijk aan de juiste waarde in de nieuwe instantie.
De widget-formulierfunctie wordt gebruikt om het widgetformulier in het dashboard te maken om widgetvariabelen op te slaan of bij te werken. Het maken van een widget-formulier is heel eenvoudig, het zal een HTML-formulier uitvoeren met een veld voor onze opties.
/ ** * Back-end widget-formulier. * * @see WP_Widget :: form () * * @param array $ instance Eerder opgeslagen waarden uit database. * / functieformulier ($ instantie) $ title = esc_attr ($ instantie ['titel']); $ region = esc_attr ($ instance ['region']); $ expiration = esc_attr ($ instance ['expiration']); $ display = esc_attr ($ instance ['display']); ?>
In deze functie kunt u de $ instantie
parameter, waarmee ons HTML-formulier de opgeslagen widgetopties kan lezen.
Je kunt de volledige code in de WP Twitter Trends-plug-in in de WordPress.org plugin-map zien of deze downloaden via de link bovenaan dit artikel.
En hier hebben we met succes een WP Twitter Trends Widget ontwikkeld! U kunt de broncode downloaden en de lay-out van de front-end-widget wijzigen door nieuwe CSS-stijlen toe te voegen. U kunt ook een widget met tabbladen maken om het laatste trendsonderwerp en hashtags te scheiden. Nu heb je een trendswidget op je site of blog.
.