Как подружить Twitter и WordPress. Часть 2
В первой части я рассказывал о том, как можно легко сделать удобную кнопку Retweet для Вашего блога на WordPress, которая умеет сокращать ссылки. Сегодня, уже во второй части, я научу Вас выводить последние сообщения из Twitter-ленты пользователя с минимальной нагрузкой на сервер (используя кеширование).
То, что получится в итоге можно посмотреть у меня на блоге в самом низу сайдбара (правая колонка). Там выводятся последние 5 твитов из моей ленты.
В первую очередь нам нужно создать файл, например назовем его twitter.php, в который требуется поместить следующий код, предварительно поменяв параметры на свои (читайте комментарии в коде):
/*
Template Name: Twitter
*/
// Выводим нужное количество постов с твиттера + кешируем. Врема жизни кеша — 5 минут.
// Author: Spoofi
// Author-URL: http://www.spoofi.ru/
// Настройки:
$username = "spoofi"; // имя в твиттере
$feedURL = "http://twitter.com/statuses/user_timeline/23056352.rss"; // Адрес RSS вашего твиттера
$limit = 5; // сколько сообщений выводить?
$time_live = 300; // время жизни кеша (в секундах)
$before = "<li>"; // до твита
$after = "</li>"; // после твита
$before_all = "<ul>"; // Выводим это ДО всех твитов
$after_all = "</ul>"; // после всего.
echo $before_all;
// Кеширование и вывод:
$d=@file("twitter.cache");
$fs=trim($d[1]);
if (intval($d[0])<time()— $time_live || empty($fs))
{
$fw=fopen("twitter.cache","w");
// flock ($fw, LOCK_EX);
@fputs($fw,time()."\n");
$doc = new DOMDocument();
$doc->load($feedURL);
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node)
{
$itemRSS = array ('title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
);
array_push($arrFeeds, $itemRSS);
}
for($x=0;$x<$limit;$x++)
{
$title = @str_replace($username.': ','',$arrFeeds[$x]['title']); // заменяем строчку
$str = @ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<noindex><a href=\"\\0\" rel=\"nofollow\" target=\"_blank\">\\0</a></noindex>", $title);
$pattern = '/[#|@][^\s]*/';
preg_match_all($pattern, $str, $matches);
foreach($matches[0] as $keyword)
{
$keyword = str_replace(")","",$keyword);
$link = str_replace("#","%23",$keyword);
$link = str_replace("@","",$keyword);
if(strstr($keyword,"@"))
{
$search = "<noindex><a href=\"http://twitter.com/$link\" rel=\"nofollow\" target=\"_blank\">$keyword</a></noindex>";
}
else
{
$link = urlencode($link);
$search = "<noindex><a href=\"http://twitter.com/#search?q=$link\" rel=\"nofollow\" target=\"_blank\">$keyword</a></noindex>";
}
$str = str_replace($keyword, $search, $str);
}
echo $before.$str.$after;
echo "<br />";
@fputs($fw,trim($str)."\n");
}
@fclose($fw);
}
else // Чтение из кеша:
{
$file = file("twitter.cache");
for ($i=1;$i <= $limit;$i++)
{
echo $before.$file[$i].$after;
echo "<br />";
}
}
echo $after_all;
?>
Файл нужно обязательно сохранить в кодировке UTF-8! Иначе может всё очень криво отображаться.
После того, как наш скрипт готов, нужно залить его в папку темы:
делается это очень просто через FTP клиент, либо через ssh:
Затем, можно проверить как работает скрипт просто зайдя на эту страничку — http://блог.ру/wp-content/themes/имя-темы/twitter.php
Если Твиты выводятся — значит все работает и остались последние штрихи.
Через админку WP заходим в редактор тем, ищем файл, который отвечает за сайдбар и в нужном нам месте вставляем простенький код:
Для примера, у меня это выглядит так:
Вот и все! Теперь при просмотре любой страницы, где выводится сайдбар пользователи увидят Ваши последние сообщения с Twitter'а.
Примечание: скрипт я постарался сделать так, чтобы было максимум нужных настроек. Например, можно указать что нужно выводить до и после каждого твита, а также что вывести перед и после всего блока. У меня это используется для вывода твитов как списка.
Каждый из нас, блоггеров, пишет для души, а также для кое-какого заработка, не правда ли? Все мы хотим заработать в интернете, но не все знают, как это сделать и с чего начать. О том, как заработать в интернете, Вы узнаете из блога profynet.ru!







Pingback: DC movers
Pingback: ROAD CONSTRUCTION
Pingback: Kaspersky Internet Security 2012 coupon
Pingback: body building clothes
Pingback: compensation claims
Pingback: injury claims
Pingback: school accident
Pingback: hospital compensation
Pingback: personal injury
Pingback: medical negligence
Pingback: personal injury
Pingback: Injury Claims
Pingback: what is serotonin
Pingback: gadget
Pingback: online flash games
Pingback: www.personalcashadvance.com
Pingback: Speed net
Pingback: autoloans.com
Pingback: Ashburn
Pingback: arbeiten in den niederlanden
Pingback: wof christchurch
Pingback: children medical insurance
Pingback: Tungsten Rings
Pingback: Phil Cannella IRA
Pingback: how to videos