Já escrevemos anteriormente sobre um código que permite exibir a contagem de seguidores do Twitter, que foi contribuído por Rarst. Neste artigo, compartilharemos um código mais avançado e elegante que permite exibir a contagem de seguidores do Twitter no WordPress. Mais uma vez, este script também foi contribuído por Rarst.
Recursos
Esta 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.
Ele tem dois níveis de cache:
- valores consultados são armazenados como array no banco de dados, usando opções do WP, por $interval segundos;
- respostas da API são armazenadas na memória para que você possa consultar qualquer número de campos, sem gerar múltiplas requisições à API.
Isso deve ser seguro para usar para múltiplos valores e múltiplos usuários ao mesmo tempo, sem se preocupar em esgotar o 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 template do WordPress que desejar. Simplesmente cole 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 como isto:
WPBeginner tem 5846 seguidores após 1300 atualizações.
Fonte: Rarst
Aleks
Alguém me explica onde coloco meu nome de usuário do Twitter, por favor? Porque eu realmente não consigo ver onde... E também não consigo fazer funcionar... Não importa o quê... Isso simplesmente não me dá o nome de usuário, nem mesmo deixando-o completamente básico como está agora, não tenho resposta alguma sobre o nome de usuário... ele apenas exibe: “tem seguidores após atualizações”...
É isso... nada mais...
wpbeginner
Na seção de uso, substitua "wpbeginner" pelo seu nome de usuário do Twitter.
Downhill_MC
este é um ótimo código. eu me pergunto se há uma possibilidade de criar uma função para incorporar em texto (algo como ). downhill_mc
Sandeep
você poderia me dizer como devo adicionar esses códigos na minha imagem personalizada do Twitter como você nos mostra em seu exemplo.
Equipe Editorial
Você teria que usar CSS.. infelizmente não estamos escrevendo tutoriais sobre isso neste site.
Admin
Ozh
(Você deveria exibir código com destaque de sintaxe e formatação limpa, de verdade)
Rarst
Acabei de notar que você perdeu o + entre time() e 60
Equipe Editorial
Obrigado pela correção. Agradecemos muito por fornecer os ótimos trechos para todos usarem. Seu trabalho árduo é muito apreciado.
Admin
Angelo Beltran
Legal! Gosto da flexibilidade. Valeu.
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.
Este é um pouco mais volumoso, mas tem funcionalidade muito estendida para mostrar mais dados e para diferentes nomes de usuário ao mesmo tempo.
Também pretendo mantê-lo de forma mais adequada, então feedback e sugestões são bem-vindos em sua página no meu blog.