Pisaliśmy wcześniej o kodzie, który pozwala wyświetlać liczbę obserwujących na Twitterze, który został udostępniony przez Rarst. W tym artykule udostępnimy bardziej zaawansowany i bardziej elegancki kod, który pozwoli Ci wyświetlać liczbę obserwujących na Twitterze w WordPressie. Ponownie, ten skrypt został również udostępniony przez Rarst.
Funkcje
Ta funkcja nie ogranicza się do liczby obserwujących. Może pobrać dowolną nie zagnieżdżoną wartość zwróconą przez metodę API Twitter users/show.
Posiada dwa poziomy pamięci podręcznej:
- zapytane wartości są przechowywane jako tablica w bazie danych, przy użyciu opcji WP, przez $interval sekund;
- Odpowiedzi API są przechowywane w pamięci, dzięki czemu możesz zapytać dowolną liczbę pól, bez generowania wielu żądań API.
Powinno to być bezpieczne w użyciu dla wielu wartości i wielu użytkowników jednocześnie, bez obawy o wyczerpanie limitu API.
Samouczek
Najpierw otwórz plik functions.php swojego motywu i dodaj następujący 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];
}
Użycie
Po wklejeniu funkcji możesz teraz użyć kodu w dowolnym pliku szablonu WordPressa. Po prostu wklej poniższy kod:
echo rarst_twitter_user('wpbeginner', 'name').' has '.
rarst_twitter_user('wpbeginner', 'followers_count').' followers after '.
rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
Powyższy kod wyświetli coś takiego:
WPBeginner ma 5846 obserwujących po 1300 aktualizacjach.
Źródło: Rarst

Aleks
Czy ktoś mi wyjaśni, gdzie mam wpisać swoją nazwę użytkownika na Twitterze? Bo naprawdę jej nie widzę… I nie mogę sprawić, żeby działała… Cokolwiek bym nie zrobił… To po prostu nie daje mi nazwy użytkownika, nawet jeśli zostawię ją całkowicie podstawową tak jak jest teraz, nie dostaję żadnej odpowiedzi na temat nazwy użytkownika… po prostu wyświetla: „ma obserwujących po aktualizacjach”…
To wszystko… nic więcej…
wpbeginner
W sekcji użycia zamień „wpbeginner” na swoją nazwę użytkownika na Twitterze.
Downhill_MC
to jest świetny kod. zastanawiam się, czy istnieje możliwość stworzenia funkcji do osadzania w tekście (coś w stylu ). downhill_mc
Sandeep
czy możesz mi powiedzieć, jak mam dodać te kody do mojego niestandardowego obrazka na Twitterze, tak jak pokazujesz w swoim przykładzie.
Personel redakcyjny
Musiałbyś użyć CSS.. niestety nie piszemy tutoriali na ten temat na tej stronie.
Admin
Ozh
(Powinieneś wyświetlać kod z podświetloną składnią i czysto sformatowany, naprawdę)
Rarst
Właśnie zauważyłem, że zgubiłeś + między time() a 60
Personel redakcyjny
Dziękujemy za poprawkę. Naprawdę doceniamy, że udostępniasz te wspaniałe fragmenty kodu dla wszystkich. Twoja ciężka praca jest naprawdę doceniana.
Admin
Angelo Beltran
Miło! Podoba mi się jego elastyczność. Pozdrawiam.
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.
Ten jest nieco bardziej rozbudowany, ale ma znacznie rozszerzoną funkcjonalność do wyświetlania większej ilości danych i dla różnych nazw użytkowników jednocześnie.
Zamierzam również utrzymywać go bardziej poprawnie, więc opinie i sugestie są mile widziane na jego stronie na moim blogu.