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

Июль, 23rd 2010
Рубрика: Web-мастеринг
Подписаться на комментарии по 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[$x]['title']); // замените _mdex_ на ваш логин в твиттере.
    $str = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $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 = "<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, какое подсказал перегретый мозг. Результат можете наблюдать в этом блоге. Получилось довольно легкое и универсальное решение.

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

Если вы считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 2

  1. 2012-01-27 в 17:45:00 | Master

    А зачем городить кучу кода, когда есть более легкое решение - http://www.master-sv.com/twitter-news

  2. 2012-01-31 в 18:48:53 | dre@mer]]>avatar]]>

    Это было почти два года назад. С тех пор и движок сайта сменился. Зато решение универсальное

comments powered by HyperComments
Без регистрации
ваш комментарий будет опубликован после проверки
Регистрация на сайте

На указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.