Вывод числа фолловеров и 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, если вы этого еще не сделали ранее.

Новые посты

Кнопки “Удалить” и “Спам” для комментариев wordpress

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

WordPress редактор – добавление кнопок

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

Запрещаем индексацию https с помощью .htaccess

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

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» 😉
Много работы коту под хвост!

Ответить

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