twitter

Показываем твиты в любой теме WordPress

Пятница, 23 июля 2010 г.
Рубрика: Web-мастеринг
Метки: |
Просмотров: 3115
Подписаться на комментарии по RSS

Появилось время заняться блогом. А за окном по-прежнему неимоверная июльская жара. Написание полновесных статей в блог решил отложить до лучших времен и переключил внимание на микроблоггинг - twitter.

Зарегистрировался, написал пару твитов... чувство неудовлетворенности осталось. Душа требовала чего-то большего, для начала чтобы новые твиты отображались в блоге.

Сказано - сделано. Путь наименьшего сопротивления, а именно поиск подходящих плагинов не дал удовлетворительных результатов. Вернее нашелся очень симпатичный плагин Latest Twitter Sidebar Widget, вот только у меня он отказался работать, выдав ошибку:

Fatal error: Call to undefined function domxml_open_file()...

В итоге полазив в сети нашел вот такой код:

<ul>
<?php
$feedURL = "http://twitter.com/statuses/user_timeline/169808866.rss"; // измените на ваш RSS из twitter
$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);
}
$limit = 1; // количество сообщений для вывода.
for($x=0;$x<$limit;$x++) {
    $title = str_replace('_mdex_: ', '', $arrFeeds&#91;$x&#93;&#91;'title'&#93;); // замените _mdex_ на ваш логин в твиттере.
    $str = ereg_replace("&#91;&#91;:alpha:&#93;&#93;+://&#91;^<>&#91;:space:&#93;&#93;+&#91;&#91;:alnum:&#93;/&#93;","<a href=\"\\0\">\\0</a>", $title); 
    $pattern = '/&#91;#|@&#93;&#91;^\s&#93;*/';
    preg_match_all($pattern, $str, $matches);	
 
    foreach($matches&#91;0&#93; as $keyword) {
        $keyword = str_replace(")","",$keyword);
        $link = str_replace("#","%23",$keyword);
        $link = str_replace("@","",$keyword);
        if(strstr($keyword,"@")) {
            $search = "<a href=\"http://twitter.com/$link\">$keyword</a>";
        } else {
            $link = urlencode($link);
            $search = "<a href=\"http://twitter.com/#search?q=$link\" class=\"grey\">$keyword</a>";
        }
        $str = str_replace($keyword, $search, $str);
    }
    echo '<li>'.$str.'</li>';
}
?>
</ul>

У себя я разместил его в sidebar.php, быстренько добавил простое оформление в CSS, какое подсказал перегретый мозг. Результат можете наблюдать в этом блоге. Получилось довольно легкое и универсальное решение.

Если возникли какие-либо вопросы, пишите в комментариях и не забывайте подписаться на мой твиттер.