Как вывести количество фолловеров и ваше последнее сообщение из Твиттера

Для многих блоггеров большой собрат, работающий на WordPress, является местом для больших статей, а основное общение и выкладывание мыслей идет в Твиттере. Такие блоггеры всячески пытаются связать своб блог с мини-блогом, вставляя кнопки подписки на Twitter, выводя последние сообщения из него, количество фолловеров. Если вы хотите самостоятельно оформить отображаемое количество фолловеров и вывести последнее сообщение из Твиттера, при чем без использования плагинов, то советы в этом посте могут пригодиться.

Вывод количества фолловеров

Чтобы получить цифру ваших фолловеров, вставьте код в то место, где собираетесь ее показать:

followers_count}”;
 }
echo countFollowers("tiaurus");
?>

Понятно, что вместо tiaurus вы должны вставить свой ник.

Вывод последнего статусного сообщения

Чтобы вывести вывести ваше последнее обновление статуса, вставьте в functions.php такой код:

function get_status($twitter_id, $hyperlinks = true) {
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$twitter_id.xml?count=1");
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    $src = curl_exec($c);
    curl_close($c);
    preg_match('/(.*)/', $src, $m);
    $status = htmlentities($m[1]);
    if( $hyperlinks ) $status = ereg_replace("[[:alpha:]]+://[^[:space:]]+[[:alnum:]/]", '', $status);
    return($status);
}

После этого можете использовать функцию, вставляя ее в любом месте:


Понятно, что в этом случае вместо tiaurus будет фигурировать ваш ник.

Вывод количества ретвитов со ссылкой на ваш блог

Иногда, чтобы показать авторитетность и популярность блога, блоггеры отображают количество ретвитов, содержащих ссылку на блог. Давайте и мы сделаем это. Для этого откройте файл functions.php, и вставьте в него такой код

function tweetCount($url) {
    $content = file_get_contents("http://api.tweetmeme.com/url_info?url=".$url);
    $element = new SimpleXmlElement($content);
    $retweets = $element->story->url_count;
    if($retweets){
        return $retweets;
    } else {
        return 0;
    }
}

После этого можете использовать функцию для вывода количества ретвитов в любом месте:


Вместо https://n-wp.ru подставьте свой адрес. Надеюсь, что эти советы не слишком сложные, и пригодятся вам при самостоятельной твиттеризации блога.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

4 Комментарии

  1. Не факт, что simplexml_load_file, работа с curl нормально пройдет в тексте темы или плагина. Как я понял основной причиной может быть хостер. Поэтому стоит писать гарантировано рабочий код через функцию wp_remote_request.
    Подробней можно почитать у меня тут

  2. Не думаю, что подключение внешних скриптов экономнее, нежели чем собственная функция в теме. Интересно, сколько строчек кода содержит blogger.js? А я отвечу, сколько:

    function twitterCallback2(twitters) {
      var statusHTML = [];
      for (var i=0; i]*[^.,;'">\:\s\< \>\)\]\!])/g, function(url) {
          return ''+url+'';
        }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
          return  reply.charAt(0)+''+reply.substring(1)+'';
        });
        statusHTML.push('
  3. '+status+' '+relative_time(twitters[i].created_at)+'
  4. '); } document.getElementById('twitter_update_list').innerHTML = statusHTML.join(''); } function relative_time(time_value) { var values = time_value.split(" "); time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3]; var parsed_date = Date.parse(time_value); var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); delta = delta + (relative_to.getTimezoneOffset() * 60); if (delta < 60) { return 'less than a minute ago'; } else if(delta < 120) { return 'about a minute ago'; } else if(delta < (60*60)) { return (parseInt(delta / 60)).toString() + ' minutes ago'; } else if(delta < (120*60)) { return 'about an hour ago'; } else if(delta < (24*60*60)) { return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago'; } else if(delta < (48*60*60)) { return '1 day ago'; } else { return (parseInt(delta / 86400)).toString() + ' days ago'; } }

    И это все закачивается и выполняется. Ну так и что экономичнее?

  5. Попробовал вывести последнее статус сообщение с twitter и получил вот такое:
    [img]http://clip2net.com/clip/m74668/1313998877-clip-11kb.png[/img]

    Из-за чего так получилось?

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*