Wir haben bereits über einen Code geschrieben, mit dem Sie die Anzahl der Twitter-Follower anzeigen können, der von Rarst beigesteuert wurde. In diesem Artikel werden wir einen fortschrittlicheren und eleganteren Code teilen, mit dem Sie die Anzahl der Twitter-Follower in WordPress anzeigen können. Auch dieses Skript wurde wieder von Rarst beigesteuert.
Eigenschaften
Diese Funktion ist nicht auf die Anzahl der Follower beschränkt. Sie kann jeden nicht verschachtelten Wert abrufen, der von der API-Methode Twitter users/show zurückgegeben wird.
Sie hat zwei Cache-Ebenen:
- abgefragte Werte werden als Array in der Datenbank gespeichert, mit WP-Optionen, für $interval Sekunden;
- API-Antworten werden im Speicher abgelegt, so dass Sie eine beliebige Anzahl von Feldern abfragen können, ohne mehrere API-Anfragen zu generieren.
Dies sollte sicher sein, für mehrere Werte und mehrere Benutzer zur gleichen Zeit zu verwenden, ohne sich Gedanken über die Erschöpfung der API-Limit.
Tutorial
Öffnen Sie zunächst die Datei functions.php Ihres Themes und fügen Sie den folgenden Code ein:
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]; }
Verwendung
Nachdem Sie die Funktion eingefügt haben, können Sie den Code nun in jeder beliebigen WordPress-Vorlagendatei verwenden. Fügen Sie einfach den folgenden Code ein:
echo rarst_twitter_user('wpbeginner', 'name').' has '. rarst_twitter_user('wpbeginner', 'followers_count').' followers after '. rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
Der obige Code wird in etwa so angezeigt:
WPBeginner hat 5846 Follower nach 1300 Updates.
Quelle: Rarst
Aleks
Someone explain where I put in my own twitter username please? Cause I really cant see where… And I cant get it to work either… No matter what.. This just wont give me username, not even leaving it completly basic as it stands right now, I get no response on username what so ever… it just displays: „has followers after updates“…
That’s it.. nothing else…
wpbeginner
In the usage section, replace „wpbeginner“ with your twitter name.
Downhill_MC
this is a great code. i wonder if there is a possibility to create a function for embedding in text (something like ). downhill_mc
Sandeep
will you please tell me how should i add these codes in my custom twitter image as you shows us in your example.
Editorial Staff
You would have to use CSS.. unfortunately we are not writing tutorials for those on this site.
Admin
Ozh
(You should display syntax hilited and cleanly formatted code, really)
Rarst
Just noticed you lost + between time() and 60
Editorial Staff
Thanks for the correction. We really appreciate you providing the awesome snippets for everyone to use. Your hard work is really appreciated.
Admin
Angelo Beltran
Nice! I like its flexibility. Cheers.
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.
This one is slightly more bulky, but it has much extended functionality for showing more data and for different usernames at the same time.
I also intend to maintain it more properly so feedback and suggestions are welcome on its page at my blog.