Já escrevemos anteriormente sobre um código que permite exibir a contagem de seguidores do Twitter, com a contribuição de Rarst. Neste artigo, compartilharemos um código mais avançado e mais elegante que permite exibir a contagem de seguidores do Twitter no WordPress. Mais uma vez, esse script também teve a contribuição de Rarst.
Recursos
Essa função não se limita à contagem de seguidores. Ela pode buscar qualquer valor não aninhado retornado pelo método da API Twitter users/show.
Ela tem dois níveis de cache:
- os valores consultados são armazenados como matriz no banco de dados, usando as opções do WP, por $intervalo de segundos;
- As respostas da API são armazenadas na memória para que você possa consultar qualquer número de campos, sem gerar várias solicitações de API.
Isso deve ser seguro para usar para multiplicar valores e multiplicar usuários ao mesmo tempo, sem se preocupar com o esgotamento do limite da API.
Tutorial
Primeiro, abra o arquivo functions.php do seu tema e adicione o seguinte código:
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]; }
Uso
Depois de colar a função, agora você pode usar o código em qualquer arquivo de modelo do WordPress que desejar. Basta colar o seguinte código:
echo rarst_twitter_user('wpbeginner', 'name').' has '. rarst_twitter_user('wpbeginner', 'followers_count').' followers after '. rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
O código acima exibirá algo parecido com isto:
WPBeginner tem 5846 seguidores após 1300 atualizações.
Fonte: 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.
Administrador
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.
Administrador
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.