Exibindo Contagem de Seguidores do Twitter e Assinantes de Feed

Desde que criei esse novo tema exclusivo para o blog, algumas pessoas têm me perguntado através de comentários, e-mails e até mesmo via Twitter como eu fiz para exibir alí no topo da sidebar do tema a quantidade de assinantes de Feed RSS e número de seguidores no Twitter.

Existem por aí alguns plugins para WordPress que podem fazer isso, mas de maneira individual, ou seja, você usa um plugin para mostrar os seguidores e outro para o número de assinantes RSS. Pensando nisso, e também em reduzir o número de plugins instalados e ativos no blog, eu procurei na web alguns códigos e funções que me permitissem usar os dois ao mesmo tempo e da maneira que eu quisesse, personalizando-os de acordo com meu tema.

Bom, vamos ao que interessa então..

Os 2 códigos a seguir devem ser adicionados ao seu arquivo functions.php que fica na pasta do tema que você estiver usando atualmente. Recomendo adicioná-los ao final do arquivo, mas se quiser colar em outra parte não tem problema desde que preste atenção para não inserir no meio de alguma outra função.

Código para buscar o número de seguidores no Twitter:

// CONTADOR DE SEGUIDORES NO TWITTER
/* Fetch the number of followers from twitter api */
function twitter_followers_counter($username) {

 

$cache_file = CACHEDIR . 'twitter_followers_counter_' . md5 ( $username );

if (is_file ( $cache_file ) == false) {
$cache_file_time = strtotime ( '1984-01-11 07:15' );
} else {
$cache_file_time = filemtime ( $cache_file );
}

$now = strtotime ( date ( 'Y-m-d H:i:s' ) );
$api_call = $cache_file_time;
$difference = $now - $api_call;
$api_time_seconds = 1800;

if ($difference >= $api_time_seconds) {
$api_page = 'http://twitter.com/users/show/' . $username;
$xml = file_get_contents ( $api_page );

 

$profile = new SimpleXMLElement ( $xml );
$count = $profile->followers_count;
if (is_file ( $cache_file ) == true) {
unlink ( $cache_file );
}
touch ( $cache_file );
file_put_contents ( $cache_file, strval ( $count ) );
return strval ( $count );
} else {
$count = file_get_contents ( $cache_file );
return strval ( $count );
}
}

Código para buscar o número de assinantes de RSS:

// Mostrar leitores de RSS
function feedburner_count($texto1, $texto2){
$fburl="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=seu_rss";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $fburl);
$stored = curl_exec($ch);
curl_close($ch);
$grid = new SimpleXMLElement($stored);
$rsscount = $grid->feed->entry['circulation'];
echo $texto1 . $rsscount . $texto2;
}

No código acima, você deve alterar na 3ª linha a parte onde está “seu_rss” pelo nome do seu Feed RSS cadastrado no FeedBurner. Somente o nome, ok? Por exemplo, no meu caso ficaria “../GetFeedData?uri=umtudo”.

Depois ter colado os códigos no seu arquivo functions.php, e ter alterado a url do FeedBurner, agora basta adicionar os códigos abaixo em algum lugar no seu tema. No meu caso, como adicionei as informaçõs na lateral do layout, o arquivo correspondente é o sidebar.php.

Você pode colocar o código onde quiser que sejam exibidas as informações, e até mesmo personalizar a forma com que seja exibida, seja via CSS ou simplesmente alterando a mensagem que é exibida juntamente com os valores.

Mostrando número de seguidores no Twitter:

<a href="http://twitter.com/_leonardo" title="@_leonardo" target="_blank" rel="nofollow"><?php print twitter_followers_counter('_leonardo') ?> Seguidores</a>

Mostrando número de assinantes de Feed RSS:

<a href="http://feedproxy.google.com/umtudo" title="Assinar RSS"><?php feedburner_count(""," Assinantes"); ?></a>

Lembre-se de alterar em ambos os códigos, o seu login no Twitter, bem como sua URL e o endereço do seu Feed RSS.

Note que em nenhum dos códigos é necessário informar senha dos serviços, o que torna-o recomendado e seguro para uso.

 

Atualização importante!

Devido à descontinuação da API do FeedBurner realizada pelo Google ,o script não está mais exibindo o número de assinantes de Feed RSS.

Gostou do tutorial? Assine o Feed RSS do blog para se manter atualizado com dicas como essa e outros assuntos interessantes. Ou se preferir também, siga-me no Twitter.

Leonardo R.

Analista de TI, graduado em Internet e Redes de Computadores, apaixonado por tecnologia, música e viagens. Mountain biker por hobby, e jogador de Xbox One e alguns jogos da Blizzard nas horas vagas. Também curte fotografia, filmes, séries e web em geral.

  • Adorei!

  • Fala Léo! Show de bola o tuto!
    Só complementando a parte da quantidade de leitores de feed do site, lá no painel de administração do Feedburner, você terá que habilitar o acesso externo à API do mesmo. Na aba Publicize, é só clicar em Awareness API e permitir que os dados sejam acessados. A frase de “true” ficaria: Allow external access to my traffic data : This service is active. Se você não habilitar esse acesso será impossível pegar os dados do querido Feedburner! Espero ter colaborado.

    Abs man!

    • Tinha esquecido dessa parte..

      Valeu demais!

  • pq ta zero? feed readers.. :T

    • Dependendo do horário ele zera mesmo, mas volta ao normal pouco tempo depois.

  • Pingback: Tweets that mention Exibindo Contagem de Seguidores do Twitter e Assinantes de Feed | UmTudo.com -- Topsy.com()

  • Valeu pelas dicas!

    []´s

  • Gui

    Oi, eu to com um problema no php do contador do twitter e do feed :s

    no do feed aparece isso:

    PHP Fatal error: Uncaught exception ‘Exception’ with message ‘String could not be parsed as XML’ in E:\home\bloomyberr\Web\js\assinantes.php:10
    Stack trace:
    #0 E:\home\bloomyberr\Web\js\assinantes.php(10): SimpleXMLElement->__construct(”)
    #1 E:\home\bloomyberr\Web\js\assinantes.php(15): feedburner_count(”, ‘ Assinantes’)
    #2 {main}
    thrown in E:\home\bloomyberr\Web\js\assinantes.php on line 10

    e no twitter acontece isso:

    PHP Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in E:\home\bloomyberr\Web\js\seguidores.php on line 22
    PHP Warning: file_get_contents(http://twitter.com/users/show/bloomy_berry) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in E:\home\bloomyberr\Web\js\seguidores.php on line 22
    PHP Fatal error: Uncaught exception ‘Exception’ with message ‘String could not be parsed as XML’ in E:\home\bloomyberr\Web\js\seguidores.php:25
    Stack trace:
    #0 E:\home\bloomyberr\Web\js\seguidores.php(25): SimpleXMLElement->__construct(”)
    #1 E:\home\bloomyberr\Web\js\seguidores.php(39): twitter_followers_counter(‘bloomy_berry’)
    #2 {main}
    thrown in E:\home\bloomyberr\Web\js\seguidores.php on line 25

    Alguém pode me ajudar ? Estarei voltando nesse artigo todos os dias ;)

  • Gui

    Ah, e meu script ta aí:

    Twitter: – http://bloomyberry.com/js/seguidores.php

    = $api_time_seconds) {
    $api_page = ‘http://twitter.com/users/show/’ . $username;
    $xml = file_get_contents ( $api_page );

    $profile = new SimpleXMLElement ( $xml );
    $count = $profile->followers_count;
    if (is_file ( $cache_file ) == true) {
    unlink ( $cache_file );
    }
    touch ( $cache_file );
    file_put_contents ( $cache_file, strval ( $count ) );
    return strval ( $count );
    } else {
    $count = file_get_contents ( $cache_file );
    return strval ( $count );
    }
    }
    ?>
    Seguidores

    E do feed – http://bloomyberry.com/js/assinantes.php

    feed->entry[‘circulation’];
    echo $texto1 . $rsscount . $texto2;
    }
    ?>

    Me ajudem ?

  • Você está inserindo os códigos idênticos ao que eu exemplifiquei no post para mostrar os contadores?

  • Gui

    Sim, fiz igual, só troquei o nome de usuario…
    tem como me passar o arquivo php ?

    • Meu arquivo ta identico esse apresentado no post

  • Gui

    já vi o problema, nem li direito o post quando eu fui usar o código, é pra wp o código né ?
    como eu sou sem atenção ¬¬

    vou testar, agradeço o script ;)