20.04.2024

Выводим любой RSS фид у себя на блоге

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *