Наткнулся на интересную заметку, повествующую о том, как можно вывести у себя на блоге RSS фид другого сайта. Причем делается это средствами самого WordPress.
В WordPress есть функция fetch_feed($url), которой нужно передать ссылку на фид и она его получит и создаст из полученных данных объект с данными фида — это заголовок, ссылка, текст, автор, категория и т.д. Какие данных будут доступны зависит от того, какие данные имеются в фиде.
Где и когда может пригодится такая функция? Например, если у нас есть блог и мы хотим в нем, в сайдбаре вывести колонку "Последние статьи сайта". Особо активно эту функцию можно использовать, если вы вдруг захотите создать каталог блогов, фиды которых нужно будет выводить. Также можно использовать эту функцию в каких-либо граберских целях, но это уже кто на что горазд 🙂
Приведу пример использования fetch_feed(), для того чтобы вывести в сайдбаре колонку с последними записями другого блога (допустим wp-info.ru). Пример "примеряю" на дефолтную тему twentyeleven:
<aside id="meta" class="widget"> <h3 class="widget-title">Фид wp-info.ru:</h3> <?php if( function_exists('fetch_feed') ){ $feed = fetch_feed('http://wp-info.ru/feed'); // УРЛ фида $limit = $feed->get_item_quantity(7); // задаем количество статей $items = $feed->get_items(0, $limit); // создаем массив элементов фида if( $limit == 0 ) echo 'Фид пустой или недоступен.'; else foreach( $items as $item ){ ?> <a href="<?php echo $item->get_permalink(); ?>" title="<?php echo $item->get_date('j F Y @ g:i a'); ?>"><?php echo $item->get_title(); ?></a> <p> <?php echo substr($item->get_description(), 0, 200); ?> <span>[...]</span> </p> <?php } } ?> </aside>
Этот код я добавил в sidebar.php и получил 7 последних записей этого блога на своем локальном, проверочном блоге.
Вот картинка:
Полный список функций, которые выводят различные данные элемента фида (статьи), подобные $item->get_permalink(), можете посмотреть здесь. Правда там все на англ, но разобраться при необходимости, думаю, можно.
Спасибо, давно искал этот скрипт.
Столкнулась с тем, что при использовании стандартного виджета для импорта новостей через RSS вместо русских букв выводятся кракозяблы..Анлийский шрифт выводится без искаженией.Пыталась вставлять в код сайдбара Ваш скрипт, все работает, но та же самая проблема со шрифтами.Подскажите, плиз, с этим как-то можно бороться?
Спасибочки большое, помог брателла)))