Как вывести у себя на блоге RSS фид другого сайта.
В 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().