Vi har tidigare skrivit om en kod som låter dig visa antalet Twitter-följare som bidragits av Rarst. I den här artikeln kommer vi att dela en mer avancerad och elegantare kod som låter dig visa antalet Twitter-följare i WordPress. Återigen bidrog Rarst med detta skript.
Funktioner
Den här funktionen är inte begränsad till antalet följare. Den kan hämta vilket icke-nästat värde som helst som returneras av Twitter users/show API-metoden.
Den har två nivåer av cache:
- frågade värden lagras som en array i databasen, med hjälp av WP-alternativ, för $interval sekunder;
- API-svar lagras i minnet så att du kan fråga ett valfritt antal fält, utan att generera flera API-anrop.
Detta bör vara säkert att använda för flera värden och flera användare samtidigt, utan att behöva oroa sig för att uttömma API-gränsen.
Handledning
Öppna först din temas functions.php-fil och lägg till följande kod:
function rarst_twitter_user( $username, $field, $display = false ) {
$interval = 3600;
$cache = get_option('rarst_twitter_user');
$url = 'http://api.twitter.com/1/users/show.json?screen_name='.urlencode($username);
if ( false == $cache )
$cache = array();
// if first time request add placeholder and force update
if ( !isset( $cache[$username][$field] ) ) {
$cache[$username][$field] = NULL;
$cache[$username]['lastcheck'] = 0;
}
// if outdated
if( $cache[$username]['lastcheck'] < (time()-$interval) ) {
// holds decoded JSON data in memory
static $memorycache;
if ( isset($memorycache[$username]) ) {
$data = $memorycache[$username];
}
else {
$result = wp_remote_retrieve_body(wp_remote_request($url));
$data = json_decode( $result );
if ( is_object($data) )
$memorycache[$username] = $data;
}
if ( is_object($data) ) {
// update all fields, known to be requested
foreach ($cache[$username] as $key => $value)
if( isset($data->$key) )
$cache[$username][$key] = $data->$key;
$cache[$username]['lastcheck'] = time();
}
else {
$cache[$username]['lastcheck'] = time()+60;
}
update_option( 'rarst_twitter_user', $cache );
}
if ( false != $display )
echo $cache[$username][$field];
return $cache[$username][$field];
}
Användning
När du har klistrat in funktionen kan du nu använda koden i vilken WordPress-mallfil du vill. Klistra helt enkelt in följande kod:
echo rarst_twitter_user('wpbeginner', 'name').' has '.
rarst_twitter_user('wpbeginner', 'followers_count').' followers after '.
rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
Koden ovan kommer att visa något i stil med detta:
WPBeginner har 5846 följare efter 1300 uppdateringar.
Källa: Rarst

Aleks
Kan någon förklara var jag anger mitt Twitter-användarnamn, snälla? För jag kan verkligen inte se var... Och jag får det inte att fungera heller... Oavsett vad... Detta ger mig bara inte användarnamnet, inte ens om jag lämnar det helt grundläggande som det är nu, får jag inget svar alls gällande användarnamnet... det visar bara: "har följare efter uppdateringar"...
Det är allt... inget annat...
wpbeginner
I användningsavsnittet, ersätt "wpbeginner" med ditt Twitter-namn.
Downhill_MC
detta är en bra kod. jag undrar om det finns en möjlighet att skapa en funktion för inbäddning i text (något i stil med ). downhill_mc
Sandeep
kan du snälla berätta för mig hur jag ska lägga till dessa koder i min anpassade Twitter-bild som du visar oss i ditt exempel.
Redaktionell personal
Du skulle behöva använda CSS.. tyvärr skriver vi inga handledningar för dessa på den här webbplatsen.
Admin
Ozh
(Du borde visa syntaxmarkerad och snyggt formaterad kod, verkligen)
Rarst
Märkte just att du tappade + mellan time() och 60
Redaktionell personal
Tack för rättelsen. Vi uppskattar verkligen att du tillhandahåller de fantastiska kodsnuttarna som alla kan använda. Ditt hårda arbete uppskattas verkligen.
Admin
Angelo Beltran
Trevligt! Jag gillar dess flexibilitet. Skål.
Rarst
Glad you found it useful.
Old snippet still works but it got kinda outdated and spread around a lot – it was getting hard to answer questions and correct outdated parts all the time.
Den här är lite mer omfattande, men den har mycket utökad funktionalitet för att visa mer data och för olika användarnamn samtidigt.
Jag har också för avsikt att underhålla den mer ordentligt så feedback och förslag välkomnas på dess sida på min blogg.