Вывод числа фолловеров 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, если вы этого еще не сделали ранее.
28 комментариев
Если мне не изменяет память, то данное оформление принадлежит dimox.name. Надо обязательно поставить такие счётчике к себе на блог
Если бы смотрели внимательнее, то увидели, что данный способ взят с dimox.name
Да и правда, видимо проглядел
А как на счет открытых ссылок в коде? Нужно закрыть наверное?
Зачем закрывать? Код выдает только число подписчиков текстом, никаких ссылок не будут.
Способ хороший, но зачем так заморачиваться, если все таки можно сделать это с плагином? Плагин так же не содержит никаких ссылок, просто текст.
Короче на вкус и цвет :)…
Я вообще не понимаю зачем ставить плагин, когда можно все сделать и без него.
Да согласен, люди настолько обленились, что уже не могут код вставить. Где времена когда всё писалось в блокноте…
Но ведь
нужно вставлять тоже где-то в шаблоне?
Через виджеты не получится?
Надо вставлять в шаблоне, если хотите отобразить число(или любой другой php-код ) в виджете, то для этого используйте плагин WP PHP widget
Здравствуйте я хотел у вас спросить : Какой вы используете плагин для вывода Html кода в постах?
Для таких вопросов(не по теме) есть у нас на сайте желтый помощник в виде миньона.
А так плагин: Crayon Syntax Highlighter
Без плагина -это хорошо.Обязательно стоит попробовать.Ведь перегружать блог плагинами не есть хорошо!
Игорь здравствуйте. Мне очень понравился описанный Вами метод. Единственно что для этого надо устанавливать плагин, который выводит PHP-код в сайдбаре. А это смена одного плагина на другой. Я вот “подсмотрела”, что у Вас на сайте количество подписчиков в RSS и Twitter выводится вверху страницы, внутри соц.иконки. Не поделитесь секретом как это можно сделать?
Ольга, очень жаль, что Вы не читали пост именно в нем есть ответ на Ваш вопрос. И никакого плагина PHP-виджет устанавливать не надо.
Я только начинаю узнавать Вордпресс изнутри. Подскажите, пожалуйста, если не сложно, как сделать чтобы и RSS и Twitter отражались в сайдбаре. Я беру виджет “Текст” вставляю и ничего нет. Куда нужно вставить этот код, чтобы он отражался в сайдбаре?
Понял что вы имели ввиду. Я все же рекомендовал PHP-виджет он вам может еще не раз пригодится(и ресурсов он потребляет минимум). Если Вы, все же не хотите его ставить, то Вам придется редактировать файл sidebar.php, который и отвечает за сайдбар. Но без специальных знаний у вас могут возникнуть сложности.
Спасибо, Игорь! Буду почаще к вам заглядывать, уже воспользовалась некоторыми Вашими советами. Если получится сделать “вмонтировать” этот код, то обязательно отпишусь ещё разок.
Рад помочь, Ольга. Надеюсь у вас все получится с улучшением вашего блога.
Ещё раз спасибо за способ. Установила PHP-виджет. Только вот какое дело получается. Вывести число подписчиков на FeedBurner у меня получилось, и даже придать ему вид красивый. А вот число читателей Твиттер никак не хочет появляться. Более того когда вставляю предложенный код (?php twitter_followers(‘nominaciya1’); ?) в PHP-виджет, то сайдбар “плывет”. Это если ставлю эту запись внизу сайдбара. А если ставлю в самом верху, то ни её ни всех “нижестоящих” виджетов не видно. В чем может быть проблемка? Без Вас не разберусь…. 🙁
Все должно работать. Я уже точно не помню, может надо подождать что бы цифры появились. А с проблемами PHP-виджет это я не знаю, видать у вас не совместим с шаблоном.
Вот это меня и смущает… Число подписчиков по Фидбернеру выводится, красиво, правильно и по тому методу, который у Вас описан в этой статье. А вот Твиттер не дается. Хотя тоже делаю как рекомендуете.
А может быть такое, что функция запроса, описанная у Вас в статье не перестала работать? Я почему спрашиваю, потому что у меня плагин Simple Counters выдавал неправильные данные, а показывал те, что сохранились в базе данных последний раз. Вот и у Вас на сайте счетчик показывает 810, а Твиттер говорит, что 804. Где правда?
Ну, вот, кажется разобралась. Почитала на сайте dimox-а что глюки возможно были из-за повторяющейся функции в файле functions.php, а именно plural_form, видимо я добавляла её ранее, чтобы правильно выдавала склонение слов после числительных. Так вот количество отображается, но почему то 0. Я ничего не меняла в коде, стоит 3600. Прошло уже больше 2-х часов, но пока по-прежнему 0. Как скоро обновится – даже не знаю… Будем ждать…
А когда имеет смысл ставить счетчики, сколькими подписчиками можно уже хвастаться 🙂
Здравствуйте Игорь.Попробовал я установить,но к сожалению,не знаю почему у меня выводится 0 фаловеров и 0 подписчиков.Подскажите пожалуйста в чем может быть причина?
Статья больше не актуальна, т.к. Google закрыл API, с помощью которого можно было получить количество подписчиков.
Да уж, 22 октября Google официально закрыл Feedburner, Google Finance, Google Moderator и Portable Contacts API – «The Feedburner APIs are no longer available. Thank you for your interest» 😉
Много работы коту под хвост!