Вывод числа фолловеров и FeedBurner-счетчик на WordPress
Заметки по Wordpress

Вывод числа фолловеров и FeedBurner-счетчик на WordPress

Вывод числа фолловеров и FeedBurner-счетчик на WordPress

Вывод числа фолловеров Twitter и FeedBurner-счетчик на WordPress можно сделать легко без плагинов и без JavaScript. У меня часто спрашивают с помощью какого плагина или как я сделал вывод этих чисел. Реализацию этих моментов я посмотрел на сайте dimox.name автор разработал 2 функции которые и выводит нужные нам цифры и благодаря которым можно отказываться от таких плагинов как Simple Counters, TwitterCounter или FeedBurnerCount.

Вывод числа фолловеров Twitter на WordPress без плагинов

Для вывода фолловеров Twitter надо данный код вставить в файл functions.php вашего шаблона.

function twitter_followers($account) {
  function plural_form($number, $after) {
    $cases = array (2, 0, 1, 1, 1, 2);
    echo '<span class="count">'.$number.'</span> '.$after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
  }
  $tw = get_option("twitterfollowers");
  if (!isset($tw['lastcheck'])) $tw['lastcheck'] = 0;
  if (!isset($tw['count'])) $tw['count'] = 0;
  if (!isset($tw['account'])) $tw['account'] = '';
  if ($tw['lastcheck'] < (mktime() - 3600) || $tw['account'] != $account) {
    $url = 'http://twitter.com/users/show.xml?screen_name='.$account;
    $headers = get_headers($url);
    if(strpos($headers[0], '200')) {
      $xml = file_get_contents($url);
      preg_match('/followers_count>(.*)</', $xml, $match);
      if ($match[1] !=0 ) {
        $tw['count'] = $match[1];
        $tw['lastcheck'] = mktime();
        $tw['account'] = $account;
        update_option("twitterfollowers",$tw);
      }
    }
  }
  plural_form(
    $tw['count'],
    /* варианты написания для количества 1, 2 и 5 */
    array('фолловер','фолловера','фолловеров')
  );
}

Число 3600 – это время в секундах, через которое обновляется количество фолловеров. В данном случае это через каждый 1 час (3600 / 60 сек = 60 мин).

Теперь надо вставить полученное число фолловеров Twitter непосредственно на сайте. Для этого в нужное Вам место шаблона вставляем следующий код:

<?php twitter_followers('Garri_83'); ?>

и не забываем вместо Garri_83 укажите имя своего аккаунта в Twitter.

Скрипт через заданный промежуток времени парсит ваш Twitter-аккаунт и если Twitter ответил на запрос, то число записывается в базу данных WordPress, а если Twitter не ответил на запрос, то выводится предыдущее удачно сохраненное число.

Вывод на WordPress FeedBurner-счетчик текстом и без плагинов

Данный код необходимо вставить в файл functions.php вашего WordPress-шаблона.

function feedburner_counter($account) {
  function plural_forms($number, $after) {
    $cases = array (2, 0, 1, 1, 1, 2);
    echo '<span class="count">'.$number.'</span> '.$after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
  }
  $rss = get_option("feedburnercounter");
  if (!isset($rss['lastcheck'])) $rss['lastcheck'] = 0;
  if (!isset($rss['count'])) $rss['count'] = 0;
  if (!isset($rss['account'])) $rss['account'] = '';
  if ($rss['lastcheck'] < (mktime() - 3600) || $rss['account'] != $account) {
    $url = 'http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri='.$account;
    $headers = get_headers($url);
    if(strpos($headers[0], '200')) {
      $xml = file_get_contents($url);
      preg_match('/circulation="(\d+)"/', $xml, $match);
      if ($match[1] != 0) {
        $rss['count'] = $match[1];
        $rss['lastcheck'] = mktime();
        $rss['account'] = $account;
        update_option("feedburnercounter",$rss);
      }
    }
  }
  plural_forms(
    $rss['count'],
    /* варианты написания для количества 1, 2 и 5 */
    array('подписчик','подписчика','подписчиков')
  );
}

Число 3600 – так же как и в первом случаи указывается время повтора в секундах.

Теперь опять же как первом случаи вставляем полученное число RSS-читателей на ваш сайт. Для этого вставляем в нужном месте шаблона следующий код:

<?php feedburner_counter('studio-gost'); ?>

и также вместо studio-gost укажите имя своего feed-а, т.е. то, что стоит в ссылке на ваш фид после http://feeds.feedburner.com/

Не забывайте активировать сервис Awareness API на вкладке “Публикуй” в настройках своего RSS-фида на сайте FeedBurner, если вы этого еще не сделали ранее.

Новые посты

Топ комментаторов без плагина

Гордеев Игорь

Google analyticator 6.2 Русская версия

Гордеев Игорь

Каркас шаблона wordpress

Гордеев Игорь

28 комментариев

intelegent 24.07.2012 / 14:27

Если мне не изменяет память, то данное оформление принадлежит dimox.name. Надо обязательно поставить такие счётчике к себе на блог

Ответить
Гордеев Игорь 24.07.2012 / 17:10

Если бы смотрели внимательнее, то увидели, что данный способ взят с dimox.name

Ответить
intelegent 26.07.2012 / 10:47

Да и правда, видимо проглядел

Ответить
Александр 25.07.2012 / 03:29

А как на счет открытых ссылок в коде? Нужно закрыть наверное?

Ответить
Гордеев Игорь 25.07.2012 / 09:41

Зачем закрывать? Код выдает только число подписчиков текстом, никаких ссылок не будут.

Ответить
Deymos 26.07.2012 / 14:08

Способ хороший, но зачем так заморачиваться, если все таки можно сделать это с плагином? Плагин так же не содержит никаких ссылок, просто текст.

Короче на вкус и цвет :)…

Ответить
Гордеев Игорь 26.07.2012 / 14:41

Я вообще не понимаю зачем ставить плагин, когда можно все сделать и без него.

Ответить
intelegent 30.07.2012 / 12:46

Да согласен, люди настолько обленились, что уже не могут код вставить. Где времена когда всё писалось в блокноте…

Ответить
xZombie 26.07.2012 / 14:11

Но ведь

нужно вставлять тоже где-то в шаблоне?
Через виджеты не получится?

Ответить
Гордеев Игорь 26.07.2012 / 14:45

Надо вставлять в шаблоне, если хотите отобразить число(или любой другой php-код ) в виджете, то для этого используйте плагин WP PHP widget

Ответить
Неколай 27.07.2012 / 02:00

Здравствуйте я хотел у вас спросить : Какой вы используете плагин для вывода Html кода в постах?

Ответить
Гордеев Игорь 27.07.2012 / 12:08

Для таких вопросов(не по теме) есть у нас на сайте желтый помощник в виде миньона.

А так плагин: Crayon Syntax Highlighter

Ответить
Дмитрий 19.08.2012 / 23:44

Без плагина -это хорошо.Обязательно стоит попробовать.Ведь перегружать блог плагинами не есть хорошо!

Ответить
Ольга 10.09.2012 / 20:33

Игорь здравствуйте. Мне очень понравился описанный Вами метод. Единственно что для этого надо устанавливать плагин, который выводит PHP-код в сайдбаре. А это смена одного плагина на другой. Я вот “подсмотрела”, что у Вас на сайте количество подписчиков в RSS и Twitter выводится вверху страницы, внутри соц.иконки. Не поделитесь секретом как это можно сделать?

Ответить
Гордеев Игорь 11.09.2012 / 01:54

Ольга, очень жаль, что Вы не читали пост именно в нем есть ответ на Ваш вопрос. И никакого плагина PHP-виджет устанавливать не надо.

Ответить
Ольга 11.09.2012 / 20:18

Я только начинаю узнавать Вордпресс изнутри. Подскажите, пожалуйста, если не сложно, как сделать чтобы и RSS и Twitter отражались в сайдбаре. Я беру виджет “Текст” вставляю и ничего нет. Куда нужно вставить этот код, чтобы он отражался в сайдбаре?

Ответить
Гордеев Игорь 12.09.2012 / 10:37

Понял что вы имели ввиду. Я все же рекомендовал PHP-виджет он вам может еще не раз пригодится(и ресурсов он потребляет минимум). Если Вы, все же не хотите его ставить, то Вам придется редактировать файл sidebar.php, который и отвечает за сайдбар. Но без специальных знаний у вас могут возникнуть сложности.

Ответить
Ольга 12.09.2012 / 15:23

Спасибо, Игорь! Буду почаще к вам заглядывать, уже воспользовалась некоторыми Вашими советами. Если получится сделать “вмонтировать” этот код, то обязательно отпишусь ещё разок.

Гордеев Игорь 12.09.2012 / 15:49

Рад помочь, Ольга. Надеюсь у вас все получится с улучшением вашего блога.

Ольга 17.10.2012 / 17:53

Ещё раз спасибо за способ. Установила PHP-виджет. Только вот какое дело получается. Вывести число подписчиков на FeedBurner у меня получилось, и даже придать ему вид красивый. А вот число читателей Твиттер никак не хочет появляться. Более того когда вставляю предложенный код (?php twitter_followers(‘nominaciya1’); ?) в PHP-виджет, то сайдбар “плывет”. Это если ставлю эту запись внизу сайдбара. А если ставлю в самом верху, то ни её ни всех “нижестоящих” виджетов не видно. В чем может быть проблемка? Без Вас не разберусь…. 🙁

Ответить
Гордеев Игорь 18.10.2012 / 12:27

Все должно работать. Я уже точно не помню, может надо подождать что бы цифры появились. А с проблемами PHP-виджет это я не знаю, видать у вас не совместим с шаблоном.

Ответить
Ольга 19.10.2012 / 23:03

Вот это меня и смущает… Число подписчиков по Фидбернеру выводится, красиво, правильно и по тому методу, который у Вас описан в этой статье. А вот Твиттер не дается. Хотя тоже делаю как рекомендуете.

Ответить
Ольга 19.10.2012 / 23:23

А может быть такое, что функция запроса, описанная у Вас в статье не перестала работать? Я почему спрашиваю, потому что у меня плагин Simple Counters выдавал неправильные данные, а показывал те, что сохранились в базе данных последний раз. Вот и у Вас на сайте счетчик показывает 810, а Твиттер говорит, что 804. Где правда?

Ответить
Ольга 20.10.2012 / 02:16

Ну, вот, кажется разобралась. Почитала на сайте dimox-а что глюки возможно были из-за повторяющейся функции в файле functions.php, а именно plural_form, видимо я добавляла её ранее, чтобы правильно выдавала склонение слов после числительных. Так вот количество отображается, но почему то 0. Я ничего не меняла в коде, стоит 3600. Прошло уже больше 2-х часов, но пока по-прежнему 0. Как скоро обновится – даже не знаю… Будем ждать…

Ответить
Inco 28.10.2012 / 11:43

А когда имеет смысл ставить счетчики, сколькими подписчиками можно уже хвастаться 🙂

Ответить
Сергей 18.02.2013 / 18:10

Здравствуйте Игорь.Попробовал я установить,но к сожалению,не знаю почему у меня выводится 0 фаловеров и 0 подписчиков.Подскажите пожалуйста в чем может быть причина?

Ответить
Гордеев Игорь 19.02.2013 / 12:05

Статья больше не актуальна, т.к. Google закрыл API, с помощью которого можно было получить количество подписчиков.

Ответить
Владислав 22.02.2013 / 01:53

Да уж, 22 октября Google официально закрыл Feedburner, Google Finance, Google Moderator и Portable Contacts API – «The Feedburner APIs are no longer available. Thank you for your interest» 😉
Много работы коту под хвост!

Ответить

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