
Это может быть уже и не новость, что можно через Api вытаскивать количество подписчиков и много другой информации, да и в интернете есть множество скриптов и плагинов решающие данную задачу.
Но опять же, чем меньше плагинов у вас установлено тем быстрее будет грузиться ваш любимый вордпресс, на счет скриптов, я нашел их не мало, но все они то не работают то не кешируются то еще что то.
А тут я вам выкладываю полностью переделанный мною скрипт найденный на буржуйском блоге там и jquery и аякс и еще куча всего, с ним вы ознакомиться можете тут http://tutorialzine.com/2010/05/showing-facebook-twitter-rss-stats-jquery-yql/
Я переделал только php скрипт, да собственно только он нам и нужен, так как вы сами потом сможете как хотите украшать свои счетчики.
Отличия моего скрипта от других:
- В одном скрипте вы имеете и rss и twitter счетчик
- Устанавливается время жизни кеша
- Если время жизни кэша кончилось а в это время обновляются счетчики то будет выведено последнее значение(это касается rss)
-
Такое бывает редко но все таки если сервис twitter api будет недоступен , то так же будет выведено последнее значение(все зависит от
установленного вами времени жизни кеша) - Допустим вы только установили себе этот счетчик а в это время идет обновление rss счетчика на сервере или твиттер недоступен, то будет выведена надпись которую вы так же можете задать через переменную.
И так вот мой скрипт, комментарии по коду.
rss_count.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?php /* $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $fburl); $stored = curl_exec($ch); curl_close($ch); $rsscountxml = new SimpleXMLElement($stored); # ставим если не работает этот $rsscountxml = simplexml_load_file($fburl); код */ $timecache = 5; #часов $cachefile = 'cache.txt'; if(file_exists($cachefile) && time() - filemtime($cachefile) < $timecache*60*60) #если файл кэша существует и время его создания не больше %часов% то вытаскиваем значения из кэша, иначе идем за ними на сервер { $frh=file($cachefile); $countrss = $frh[0]; $counttwitt = $frh[1]; } else { $fburl='http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri='.$rss_name; $twurl = 'http://twitter.com/users/show/'.$twitter_username; $followerscount = simplexml_load_file($twurl);#работаем с xml твиттера $rsscountxml = simplexml_load_file($fburl); #работаем с xml rss $rsscount = $rsscountxml->feed->entry['circulation']; #тащим количество подписчиков rss $twittcount = $followerscount->followers_count; #тащим количество фолловеров if ($rsscount == '0'|| $rsscount == '' || $twittcount == '') #ну с условимя я замутииил))) все для вашего удобавтсва, чтобы при обновление счетчика на сервере у вас не показывал 0, значение будет браться из кеша { if (file_exists($cachefile)) { $frh = file($cachefile); $countrss = $frh[0]; $counttwitt = $frh[1];} else {$countrss = $rssna; $counttwitt = $twittna;} #это сообщение выйдет в случае если вы только поставили себе этот скрипт а в это время как раз обновляется счетчик и у вас пустой кэш } else { $countrss = $rsscount; $counttwitt = $twittcount; } #заняем значения счетчиков в кэш файл $fwh = fopen($cachefile,"a+"); flock($fwh, 2);#блокируем файл ftruncate ($fwh,0); #очищаем файл fwrite($fwh,$countrss."\r\n".$counttwitt); fflush ($fwh); #очищаем буфер flock($fwh, 3); #разблокируем fclose($fwh); clearstatcache();#очищаем кэш проверки создания файла кэша } ?> |
ну вот и все, этот скрипт используем на внос с помощью инклуда
теперь код который будет выводить значение, точнее даже не код а пару переменных и одна фукнкция инклуд.
1 2 3 4 5 6 | $timecache = 5; #время жизни кэша, часов $twitter_username = 'имя пользователя твиттера'; $rss_name = 'имя пользователя rss '; $rssna = 'rss n/a'; #надпись которая выйдет если вы только установили счетчик а идет обновление(рсс) $twittna = 'twitter n/a'; #надпись которая выйдет если вы только установили счетчик а сервер не доступен(твиттер) include('rss_count.php'); #инклудим наш скрипт |
и на конец две самые главные переменные в которых содержатся значения
1 2 | $countrss $counttwitt |
если кто не знает как пользоваться переменными, это делается так:
1 2 | echo $countrss; выводим число rss подписчиков echo $counttwitt; выводим число фолловеров |
ну вот и все)) Ставьте куда хотите хоть в сайдбрах, хоть в хидер, хоть в футер, и оформляйте как вздумается.
Пример моего оформления вы можете посмотреть в моем сайдбаре(кстати эти всплывающие подсказки из того урока на который я дал ссылку).
Если кому то интересно, как можно оформить эти счетчики дайте знать, я что нибудь придумаю и выложу в других статья)
И еще, этот скрипт под любую цмс)))
Спасибо попробуем
если найдете ошибки или если есть советы по улучшению кода напишите пожалуйста в комментах
“Собвстенный Twitter & RSS счетчи”
Опечатка..
сенк)) забываю заголовки проверять, они же не подчеркиваются в случае очепятки))
1
2
3
4
5
$timecache = 5; #время жизни кэша, часов
$twitter_username = ‘имя пользователя твиттера’;
$rss_name = ‘имя пользователя rss ‘;
$rssna = ‘rss n/a’; #надпись которая выйдет если вы только установили счетчик а идет обновление(рсс)
$twittna = ‘twitter n/a’; #надпись которая выйдет если вы только установили счетчик а сервер не доступен(твиттер)
include(‘rss_count.php’); #инклудим наш скрипт
извините, а этот код куда вставлять?
в любое место в вашей теме,
а это
echo $countrss; выводим число rss подписчиков
echo $counttwitt; выводим число фолловеров
ставим там где нужно вывести число подписчиков
спасибо)
$timecache = 5; #время жизни кэша, часов
$twitter_username = ‘имя пользователя твиттера’;
$rss_name = ‘имя пользователя rss ‘;
$rssna = ‘rss n/a’; #надпись которая выйдет если вы только установили счетчик а идет обновление(рсс)
$twittna = ‘twitter n/a’; #надпись которая выйдет если вы только установили счетчик а сервер не доступен(твиттер)
include(‘rss_count.php’); #инклудим наш скрипт
его вставлять нужно с тегом
?
открываете вашу папку с темой вордпресса wp-content\themes\ваша тема, создаем новый текстовый файл переименовываем в rss_count.php и вставляем туда код который приведен в статье, потом в файл sidebar.php
вставляем
$timecache = 5;
$twitter_username = ‘csska’; # вместо csska ваш логин
$rss_name = ‘csska‘;# вместо csska ваш логин
$rssna = ‘rss n/a’;
$twittna = ‘twitter n/a’;
include(‘rss_count.php’);
затем в том месте где хотите вывести подписчиков вставляете
echo $countrss;
echo $counttwitt;
или
посреди хтмл кода
спасибо большое. и еще небольшой вопрос, в каком формате нужно сохранять картинку оформления без потери качества?
смотря какую, маленький фон с не большим количеством тонов можно в гифе сохранить или png, логотип в jpg качество обычно 60-80 ставлю, и тип progressive для постепенной загрузки изображения. ну вообще почитай статьи в инете про это, я тоже когда то читал)