Skip to content

Hämta & visa twitter på ditt WordPress-tema

by Jarsäter Joakim on mars 25th, 2010
php

I den här guiden tänkte jag visa dig hur du kan visa dina, eller någon annans, senaste tweets. Vi kommer hämta allt från Twitters RSS med hjälp av en klass som heter SimplePie. Slutresultatet kan bli någor i stil med det du ser på min startsida. I skrivande stund är den inte den snyggaste kanske. Men det går ju alltid att fixa till efteråt.

Vi börjar med att ladda ner SimplePie och det kan du göra här. Spara .zip/.tgz-filen på valfri plats, jag sparade den på skrivbordet. I packetet finns massa filer, den vi är ute efter heter simplepie.inc och är egentligen den enda filen vi behöver.

Jag har nu valt att ladda upp filen i en mapp jag döpt till ”inc” som jag placerat i mappen för det tema jag använder just nu. Här kan man göra lite som man vill, men vill ni göra det enkelt för er så rekommenderar jag er att göra desamma. Det kommer då bli enklare för er att hänga med i guiden

Du borde nu ha en mappstruktur som ser ut som följande:

  • root
    • + wp-content
    • + themes
    • + ditt tema
    • + inc
    • - simplepie.inc

root/wp-content/themes/ditt tema/inc/simplepie.inc

Ok, nu måste vi ta reda på varifrån kan vi hämta denna RSS-feed av tweets från Twitter. Faktum är att det är fruktansvärt enkelt. Jag surfar in på min twittersida, http://www.twitter.com/Jalet. Sen hittar du en länk till RSS-feeden ute till höger.

Hitta din RSS-feed

RSS-feed

Öppna nu upp index.php för ditt tema så ska vi börja med själva kodandet

// Vi börjar med att hämta SimplePie klassen
require_once(TEMPLATEPATH . "/inc/simplepie.inc");

// Sen skapar vi ett nytt SimplePie Objekt
$feed = new SimplePie();

// Följande radet sätter olika parametrar till vårat skapade objekt
$feed->set_feed_url("http://twitter.com/statuses/user_timeline/25161812.rss");
$feed->set_cache_location(TEMPLATEPATH . "/inc");
$feed->set_cache_duration(900);
$feed->init();
$feed->handle_content_type();

// Antalet tweets vi vill visa
$numOfTweets = 4;

// Loopar igenom våra tweets och lägger in dom i en array som heter $tweets
for($i = 0; $i < $feed->get_item_quantity($numOfTweets); $i++)
{
	$tweets[] = $feed->get_item($i);
}

Tycker du att allt detta är en enda röra, vad är ett objekt till exempel. Då kan jag rekommendera att du läser på lite om OOP (Objektorienterad Programmering), det kan du göra här.

print_r($tweets);

Nu kan vi använda oss av den otroligt användbara fuktionen print_r(); för att kolla vad som finns i den array, $tweets, som vi nyss skapade i våran for-loop. Det enda du kommer se är egentligen en massa text och pilar. Om du inte förstår vad det är, bry dig inte om det så mycket, det viktiga är att vi får ut informationen.

Om allt gick som det ska och du ser en massa grötig text så kan du ta bort den raden direkt. Den använder vi bara för att säkerställa att vi har hämtat våra tweets och att allt gick som det ska.

Nu kommer vi till det roliga. Att skriva ut våra tweets på sidan. Jag har valt att lägga allt i en div (<div>), och i denna div har jag lagt in en osorterad lista (<ul>) som kommer visa mina tweets.

<div id="jj-tweets">
		<h2>Senaste från Twitter!</h2>
		<?php foreach($tweets as $tweet): ?>
				<li class="jj-tweet">
					<a href="<?php echo $tweet->get_link(); ?>" title="<?php echo $tweet->get_title(); ?>"><?php echo ucfirst($tweet->get_title()); ?></a> <?php echo $tweet->get_date(); ?>
		<?php endforeach; ?>
	</div>

Det vi gör här är att vi använder en foreach-loop för att gå igenom alla element i våran array med tweets. För varje element som finns så gör vi även en utskrift.

Vad är egentligen $tweet->?

Nu återkommer vi lite till det jag pratade om tidigare, Objektorienterad programmering (OOP). Det är inget jag komemr gå in djupt på just nu, men om det ska förklaras enkelt så är $tweet ett objekt, -> är en pekare till en funktion (eller metod som det kallas när vi pratar om objekt) som finns i det objektet. get_title() är en sån metod och returnerar en textsträng, i detta fall våran tweet.

Det är jätteluddigt beskrivet, jag vet, och jag ber om ursäkt för det. Men om jag skulle gå in djupare och förklara hela OOP tänket och hur det fungerar skulle den här guiden bli jättelång och förmodligen skulle ingen orka läsa den. Om ni vill sätta er in mer i, och få en bättre förståelse för OOP så kommer några länker till sidor där ni kan läsa mer om det i slutet av guiden.

Fullständig kod

<?php
/**
* Adds twitterfeed to top of index
*
* @autho Joakim Jarsäter
* @date 2010-03-25
*
*/
require_once(TEMPLATEPATH . "/inc/simplepie.inc");
$feed = new SimplePie();
$feed->set_feed_url("http://twitter.com/statuses/user_timeline/25161812.rss");
$feed->set_cache_location(TEMPLATEPATH . "/inc");
$feed->set_cache_duration(900);
$feed->init();
$feed->handle_content_type();
$numOfTweets = 4;
for($i = 0; $i < $feed->get_item_quantity($numOfTweets); $i++)
{
	$tweets[] = $feed->get_item($i);
}
?>
	<div id="jj-tweets">
		<h2>Senaste från Twitter!</h2>
		<?php foreach($tweets as $tweet): ?>
				<li class="jj-tweet">
					<a href="<?php echo $tweet->get_link(); ?>" title="<?php echo $tweet->get_title(); ?>"><?php echo ucfirst($tweet->get_title()); ?></a> <span><?php echo date("D j F Y", strtotime($tweet->get_date())); ?></span>
		<?php endforeach; ?>
	</div>

Twitter RSS-feed

Länkar

Lämna gärna en kommentar om det är något som är oklart eller om du bara gillade artikelt. jag tar gärna emot frågor både via e-post & twitter. Har du andra synpunkter eller förslag på guider jag borde skriva så tveka inte att slänga iväg ett email eller lämna en kommentar nedan.

From → Guider, PHP, Tips & Trix

2 Comments
  1. Erik permalink

    Fin guide, hjälpte mig väldigt mycket. Tack ska du ha!

Trackbacks & Pingbacks

  1. Hämta & visa twitter på ditt Wordpress-tema #2 | Joakim Jarsäter

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS