Rss каналы как подключить. Как сделать красивую RSS ленту для WordPress

В общем - данные ленты новостей позволяют часто обновлять контент на сайте, это приводит к тому, что роботы начинают чаще посещать сайт. В этом МК я постараюсь дать несколько способов внедрения данной технологии на странички сайта.

«Для начала, определимся с тем, что такое RSS. Кратко, RSS – это формат синдикации web-контента. Это обычный формат представления данных, основанный на языке XML. Первоначально этот формат был разработан специально для экспорта заголовков новостей. Однако область его применения может выходить далеко за рамки этой задачи. Вы с легкостью можете экспортировать любую информацию, любые материалы. Формат примечателен тем, что дает единство представления данных. Любая информация, оформленная в RSS должна соответствовать определенной структуре... Благодаря такой формализации, конечный пользователь получает информацию в стандартизированном виде, что упрощает чтение и работу с ней. Именно удобством работы и объясняется растущий интерес к этому формату и его всё большая популяризация».
(http://www.kanban.ru/info/webmaster/)

Подробнее о том, что такое RSS можно почитать здесь (http://blogs.law.harvard.edu/tech/rss , http://podolsk.biz/p147.htm , http://www.kanban.ru/info/webmaster/).

В начале данного мастер-класса я покажу, как можно внедрить RSS непосредственно на страницу (здесь будут рассмотрены способы подключения RSS только при помощи php). Затем – некоторые способы оптимизации работы с RSS. В заключении я расскажу о некоторых проблемах RSS и способах их решения.

2. Как подключить RSS

RSS - данные, представленные в виде xml определенной структуры. Общий принцип подключения RSS можно представить следующим образом:

  1. Получение RSS из определенного источника.
  2. Обработка RSS.
  3. Включение обработанной информации в текст страницы (это самый простой пункт. Достаточно сделать echo результата).

3. Способы получения RSS при помощи php

1. Cокетами

2. Другие способы

В интернете можно найти достаточно большое количество готового кода для обработки RSS и адаптировать под свои нужды, например, http://www.rss.net.ua/rss_doc018.html или http://danneo.com/forum/showthread.php?t=1178 . Также можно использовать регулярные выражения, например, если хостинг не поддерживает работу с xml технологиями.

5. Оптимизация работы с RSS

Одна из проблем RSS, как было сказано выше, - это то, что они находятся на других серверах. Если у вашего сайта большая посещаемость, то для каждого пользователя, зашедшего на сайт, нужно повторно вытаскивать одинаковую информацию из интернета, что забивает канал и уменьшает скорость работы сервера, а вследствии – скорость загрузки страницы. У каждой ленты есть период обновления. Поэтому приходит мысль использовать одни и те же данные повторно, то есть – кэшировать. К тому же технология xslt, например – достаточно ресурсоемкая и каждый раз использовать преобразование – это также может повлиять на скорость работы сайта.

Первый способ – это полученный результат сохранять в файле, и проверять время модификации этого файла. Если разница между текущем временем и временем модификации файла превышает заданный интервал (например, час), то попытаться снова получить данные и после обработки – переписать файл.

// Это добавить перед получением и обработкой rss
// если нет файла или время последнего изменения файла > 3600 с (1ч),
if (!file_exists($rss_cache) (time() - filemtime()) > 3600) {
// на выходе – переменная с готовым для
// отображения содержанием ($result)
...
// запишем в кэш
fwrite($f, $result);
fclose($f)
} else {
$result = file_get_contents($rss_cache);
}
?>

Второй способ – это обрабатывать новости сторонним скриптом, который запускается, например, по crontab, а результат сохранять в файле. На страницу импортировать уже готовый файл.

// предполагаем, Что скрипт лежит там-же, Где лежит страница, которая будет забирать новость.
$rss_cache = dirname(__FILE__) . "/rss_cashe.inc";
// если нет файла или время последнего изменения файла > 3600 с (1ч),
// то получить и обработать rss
if (!file_exists($rss_cache) (time() - filemtime()) > 3600) {
// код получения и обработки rss,
...
// запишем в кэш
$f = fopen($rss_cache, "wt");
fwrite($f, $result);
fclose($f)
}
?>

Этот скрипт следует поместить в файл, который будет запускаться по crontab или еще какому-либо планировщику. А на странице только в нужном месте указать:

$rss_cache = "rss_cashe.inc";
include($rss_cache);
?>

6. Некоторые проблемы при работе с RSS
  1. Во всех примерах не указаны способы обработки ошибок. А так как и получение данных из интернета, и обработка данных в данном случае могут вызвать ошибки, то необходимо предусмотреть, как будет вести себя скрипт. Например, используя кэширование (о чем было написано выше), можно показывать последнюю удачно обработанную информацию. Или вообще ничего не показывать.
  2. Некоторые ленты могут пропадать или менять свой адрес (например, редизайн сайта, или сайт прекратил существование). Поэтому, если возникают ошибки достаточно часто, то нужно сигнализировать об этом администратору.
  3. Кодировка новости иногда не совпадает с той, что прописана в заголовке. Особенно это актуально дл кодировок. Решения могут быть различными: можно вручную определить кодировку и конвертировать в нужную нам, можно автоматически определять кодировку (http://ivr.webzone.ru/articles/defcod_2/index.htm).

7. Заключение

Данный мастер-класс показывает лишь некоторые способы использования и обработки RSS при помощи php. Более подробную информацию можно получить из указанных источников. Код, который расположен на внешних источниках, приведен в качестве примера, его работоспособность проверена лишь частично. Код, используемый в данной статье проверен, но все мы можем ошибаться. Поэтому, при обнаружении неточностей, или неработоспособности кода – просьба сообщить автору мастер-класса.

Для эффективной и легкой работы с RSS лентами были разработаны различные сервисы. Один из самых лучших в онлайне – Google Reader . Думаю, что это самый удобный способ чтения RSS . Дело в том, что сервис не привязывает Вас к одному компьютеру для просмотра подписки через интернет бесплатно. Подписавшись на RSS ленту на работе или в гостях, Вы на домашнем компьютере получите свежие обновления, причем используя только один сервис.

Так как подключить RSS ленту в Google Reader?

Сейчас опишем, где в дальнейшем искать этот онлайн сервис. В аккаунте нам нужно зайти в сервис Reader ”. И сейчас в поле“Мои продукты” ищем его. Жмем “Еще”, если не нашли.

Здесь он точно есть.

Мы зашли в Google Reader. Теперь давайте подпишемся на бесплатную рассылку RSS ленты на примере моего сайта. Видим в верхнем левом углу кнопку “Подписаться” и жмем. Пишем адрес сайта, в данном случае и кликнем “Добавить” .

Поисковик каналов нам выдал результат и теперь нужно подтвердить подписку на бесплатную рассылку писем из предоставленного перечня, и нажимаем “Подписаться” . В случае, если на сайте не ведется RSS лента, тогда поисковик ничего не найдет. Найденная ссылка сайта с поддержкой RSS обычно пишется http://адрес_сайта/feed , http://адрес_сайта/rss или с другим окончанием.

Здесь также можно смотреть статистику подписки и чтения RSS ленты, вести поиск по ключевым словам и прочее. Теперь попробуйте подписаться на новости интересных блогов и получить рассылку сайта бесплатно, хотя здесь есть и свои

По какой-то причине очень долгое время внешний вид RSS-ленты моего сайта, транслируемой посредством сервиса FeedBurner, мягко говоря, оставлял желать лучшего.

Эта проблема долгое время значилась у меня на повестке дня, и теперь наконец-таки настало время решить данный вопрос, и сегодня я расскажу о том, как настроить красивую RSS-ленту с картинками для WordPress!

Не очень красиво и функционально, не правда ли?

Такое положение вещей меня категорически не устраивало, и я решил исправить ситуацию, то есть сделать для своего сайта на WordPress красивую RSS ленту.

Требования к желаемому внешнему виду и функционалу RSS фида я обозначил следующие:

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

Как настроить RSS ленту WordPress?

Отображение миниатюр записей реализуется вполне простыми манипуляциями, а именно вставкой в файл functions.php вашего шаблона WordPress следующего кода:

1 2 3 4 5 6 7 8 9 function featuredtoRSS($content ) { global $post ; if ( has_post_thumbnail( $post -> ID ) ) { $content = "" . get_the_post_thumbnail( $post -> ID , "thumbnail" , array ( "style" => "float:left; margin:0 15px 15px 0;" ) ) . "" . $content ; } return $content ; } add_filter("the_excerpt_rss" , "featuredtoRSS" ) ; add_filter("the_content_feed" , "featuredtoRSS" ) ;

function featuredtoRSS($content) { global $post; if (has_post_thumbnail($post->ID)){ $content = "" . get_the_post_thumbnail($post->ID, "thumbnail", array("style" => "float:left; margin:0 15px 15px 0;")) . "" . $content; } return $content; } add_filter("the_excerpt_rss", "featuredtoRSS"); add_filter("the_content_feed", "featuredtoRSS");

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

Чтобы изменить размер отображаемых в RSS-ленте миниатюр, нужно в строке 4 вышеуказанного кода заменить аргумент ‘thumbnail’ (который находится в скобках) на одно из следующих значений:

  • medium — средний размер миниатюры;
  • large — большой размер миниатюры;
  • full — реальный размер миниатюры, то есть размер картинки, используемой в качестве миниатюры записи.

Как видно из предыдущей картинки, у меня данный плагин уже установлен. Сразу должен сказать, что для правильной работы плагина и получения нужного результата по части внешнего вида RSS-ленты нам понадобиться включить режим отображения в ленте полных версий статей.

Делается это в разделе меню Настройки Чтение в админ-панели:

следующим образом:

Осталось произвести настройки уже установленного плагина Ozh’ Better Feed , для чего в админ-панели выбираем Настройки Better Feed :

Появится окно настроек плагина:

Пробежимся по каждому пункту настроек подробнее:

Когда все настройки произведены, сохраняем изменения кнопкой Save Changes . Если же вы хотите вернуть настройки по умолчанию, нажмите Reset Settings .

Чтобы после всего этого внешний вид вашей RSS-ленты изменился в соответствии со всеми произведенными настройками, нужно зайти в свой аккаунт FeedBurner и на вкладке Решай проблемы нажать кнопку Resync Now :

Результатом всех описанных действий должна стать вполне себе красивая и функциональная RSS-лента для сайта на WordPress. Моя лента (а точнее ее часть) теперь выглядит следующим образом:

Согласитесь, стало гораздо лучше исходного варианта!

Да и к тому же теперь в RSS-ленте содержится больше информации и полезных ссылок, что также является положительным моментом.

На сегодня все, надеюсь данная статья оказалась для вас полезной!

В системе управления контентом сайта WordPress предусмотрена настройка RSS-ленты для добавления информации, размещаемой на страницах блогов и информационных сайтов. Рассмотрим способы настройки и улучшения rss ленты.

Краткое описание технологии RSS

Каковы функции ленты RSS, что означает термин «путь к RSS»? По сформулированному в Википедии определению ее можно отнести к разновидности XML-форматов, которые используются при описании новостных лент, готовящихся новых материалов, происходящих в блогах изменений.

Как правило, обычному пользователю легче освоить, каким образом настроить cron, чем разобраться в профессиональном определении. Немного его упростив, можно сказать, что под понятием ленты RSS подразумевается страница сайта, включающая обычно 10 последних из всех размещенных на нем постов в особом формате – XML, универсальном для считывания разнообразными сервисами и агрегаторами.

Какую пользу приносит применение ленты пользователям? Если вы интересуетесь десятью блогами, то наверняка желаете получать информацию о появлении на них обновлений, а еще лучше иметь возможность ознакомиться с ними на одном ресурсе. Обычно это позволяет обеспечить подписка с использованием email, но при ежедневном добавлении на сайте, допустим 10 статей, вы получите только с него одного 10 сообщений на почту, что может создать определенное неудобство. Хорошим выходом в таком случае является использование подписок на информационный канал subscribe.ru или сервис smartresponder, но у многих сайтов такого вида подписки не имеется.

В подобном случае очень удобно воспользоваться RSS. Для этого следует зарегистрироваться в каком-либо агрегаторе (к наиболее часто используемым относятся Яндекс Лента и собирающийся вскоре закрыться Google Reader) и внести адреса интересующих вас сайтов. Затем достаточно просто зайти на него и получить информацию обо всех обновлениях, добавленных на эти сайты.

Настройка ленты в WordPress

Система WordPress имеет встроенную RSS-ленту, ее можно найти, задав в поисковую строку: название вашего site.ru/feed. Единственная настройка, которая доступна по умолчанию в админке WordPress – изменение количества постов, которая производится нажатием на кнопки: Админ-панель – Параметры – Чтение. Я считаю, что этого недостаточно, так как может возникнуть необходимость удалить или изменить некоторые категории или произвести другие манипуляции, но это невозможно осуществить, используя админку WP.

Поэтому настройка RSS для WordPress выполняется одним из следующих способов: установкой специальных плагинов или редактируя код вручную. Исходя из своего опыта, могу отметить, что удобнее всего использовать плагин «Ozh’ Better Feed». Несмотря на то, что у него не было обновлений, с его помощью внесение изменений в ленту RSS производится максимально просто.

При желании добавления в ленту одновременно с постами размещаемых к ним небольших картинок, можно воспользоваться плагином «Insert RSS Thumbnails». Между тем настройку можно выполнить, не применяя плагины.

Чтобы добавить картинки-миниатюры в файл functions.php, находящемся в теме сайта, вводим специальный код:

Function img_rss($content) { global $post; if (has_post_thumbnail($post->ID)) { $content = "" . get_the_post_thumbnail($post->ID, "thumbnail", array("style" => "float:left; margin:0 10px 10px 0;")) . "" . $content; } return $content; } add_filter("the_excerpt_rss", "img_rss"); add_filter("the_content_feed", "img_rss");

При желании внести изменения в вид ленты вручную, требуется вставить в этот же файл код:

Function acme_product_feed_rss2($for_comments) { $rss_template = "new_rss.php"; load_template($rss_template); } remove_all_actions("do_feed_rss2"); add_action("do_feed_rss2", "acme_product_feed_rss2", 10, 1);

Затем следует сохранить находящийся в корневой директории файл, имеющий название feed2.php под названием new_rss.php. После этой операции все виды изменений, вносимых в этот файл, позволят изменить ленту – убрать ненужные сведения, вносить изменения, касающиеся содержимого постов и другие манипуляции.

Подключаем Feedburner

Feedburner является предоставленным Google сервисом, который при подключении его к ленте вашего сайта, позволяет транслировать ее по следующему адресу: http://feeds.feedburner.com/наименование_ленты.

С помощью данного сервиса производится подписка потребителей по email на ленту вашего сайта, но главное его преимущество состоит в определении им количества подписавшихся людей. Используя обычную ленту WP невозможно подсчитать количество знакомящихся с информацией на вашем сайте пользователей, использующих RSS, но эти данные могут быть получены благодаря Feedburner.

Несмотря на то, что компанией Гугл было сделано объявление о том, что поддержка данного сервиса будет прекращена, пока он работает. И скорее всего у других компаний также имеются подобные сервисы, к услугам которых можно будет прибегнуть в случае закрытия Feedburner.

Порядок подключения к Feedburner достаточно прост: заходим на http://feedburner.google.com/, залогиниваемся, используя свой аккаунт, затем в том окне, которое появилось, вводим адрес ленты своего сайта (site.ru/feed). Затем открываем новое окно, в которое нужно ввести новый адрес (для него можно использовать имя домена, убрав из него точку).

После выполнения этих этапов, лентой уже можно пользоваться с помощью сервиса feedburner. Теперь осталось дать ссылку на ленту на своем сайте (она может выглядеть, например, как изображение RSS). После этого пользователям можно будет сделать подписку на нее, сделав клик.

Даёт возможность оперативно транслировать новости и обновления читателям. Формат этот несколько устаревший, но аудитория пользователей всё ещё большая. Возможность организации RSS-лент заложена во многие популярные движки, такие как WordPress, Joomla, Drupal и многие другие. Где-то эта возможность является штатной, а где-то реализуется с помощью плагинов. Рассматривать процесс установки плагинов не имеет особого смысла, поэтому мы попробуем разобраться, как организовать RSS-ленту своими силами, не используя плагины.

RSS-лента для статического сайта на html

Для начала мы рассмотрим ручной способ, позволяющий реализовать трансляцию новостей на любом сайте, даже на статичном, построенном на голых html-страницах. Данный функционал будем создавать с помощью простого кода, который размещается в файле rss.xml в корне сайта:

- в этой строке указывается кодировка <span>Новости с сайта Site.ru </span> - указываем название новостной ленты http://site.ru/rss.xml - указываем адрес ленты Новостная лента с сайта Site.ru - вводим описание нашей ленты Fri, 03 Jul 2015 17:51:00 +0300 - дата последнего обновления ленты - указываем заголовок новости http://site.ru/news1.html - указываем адрес страницы с полной новостью - вписываем краткое содержание новости

При необходимости, в данном коде можно указать язык ленты, что необходимо при её регистрации в некоторых каталогах RSS-лент, а также добавить дополнительные элементы.

Представленный код обновляется в ручном режиме. То есть, для внесения изменений необходимо открыть файл rss.xml и вписать в него новые данные. Нужно несколько новостей? Тогда редактируемый файл с лентой должен содержать в себе несколько конструкций следующего вида:

<span>На нашем сайте открылся новый раздел </span> http://site.ru/news1.html На нашем сайте открылся новый раздел, приглашаем всех желающих к ознакомлению с новой информацией

Каждая такая конструкция – это отдельная новость, которая располагается между тегами item. По мере добавления новостей, старые записи можно удалять. Количество записей может быть любым, но прописывать больше 10 последних новостей не стоит – вряд ли кому-то понадобятся устаревшие записи.

Автоматизируем создание RSS-ленты

Предположим, что наш сайт создан на самописной CMS, либо на CMS, у которой RSS-лента отсутствует. В этом случае необходимо разобраться в структуре базы MySql, используемой для хранения данных, и выяснить, как производится хранение данных о заголовках страниц, их адресах и содержимом страниц с новостями. Разобравшись со структурой базы, необходимо несколько модернизировать файл с RSS-лентой. Для начала, дадим ему другое расширение, чтобы в нём мог исполняться php-код, необходимый для работы с базой MySql. В противном случае наша RSS-лента не заработает. Необходимо переработать и внутреннее содержимое файла:

  • Реализуем подключение к базе данных;
  • Делаем выборку нужных данных, установив ограничение на 10 последних записей;
  • Выводим в цикле содержимое полученных переменных;

С первым пунктом всё понятно – нам нужно выполнить подключение к базе данных для забора оттуда информации. Второй пункт тоже понятен – нам нужно получить 10 дат, 10 id ссылок на страницы с новостями, 10 заголовков новостей и 10 тел новостей. В третьем тексте мы последовательно выводим всё то, что мы публиковали между тегами item в ручном формате нашей RSS-ленты. Таким образом, разобравшись в структуре базы данных, мы можем организовать RSS-ленту для любого ресурса. Такой подход хорош тем, что мы не касаемся исходного кода CMS и не создаём дополнительных нагрузок на хостинг – этим грешат некоторые плагины, нагружающие сайты километрами ненужного кода. Кроме того, наша методика позволит избавиться от возможных ошибок в функциональности действующего сайта на этапе внедрения RSS-ленты. Максимум, что может произойти, так это получение не тех данных, что нужны для формирования ленты на нашем сайте.

Теперь рассмотрим сам код:

Новости с сайта Site.ru http://site.ru/rss.php Новостная лента с сайта Site.ru"; $result=MYSQL_QUERY("SELECT id, title, text, date, FROM article ORDER BY date DESC LIMIT 10"); while ($row=MYSQL_FETCH_ARRAY($result)) { $id=$row["id"]; $title=$row["title"]; $text=$row["text"]; $date=$row["date"]; echo " $title ссылка на статью с указанием id $text $date "; } echo " "; ?>

Первые строки данного кода схожи с вышеописанным ручным кодом и содержат в себе общую информацию о нашей новостной ленте – это название, описание и полный адрес ленты. Даты последнего обновления ленты нет, но её можно реализовать, модернизировав исходный код. Далее производится выборка необходимых данных из MySql-базы и запускается цикл формирования RSS-ленты.

С датой новости, её текстом и заголовком всё понятно – они выводятся из переменных $title , $text и $date . Что касается ссылки на полную новость, то здесь берётся её id, после чего мы можем сформировать полную ссылку, опираясь на структуру формирования ссылок на нашем сайте. Например, ссылки могут иметь вид http://site.ru/news.php?id=48 . Здесь мы описываем лишь общий принцип формирования ссылок, поэтому при практической реализации в вышеуказанный код необходимо внести соответствующие изменения.

Как только формирование файла rss.php будет готово, мы можем заливать его на хостинг и приступать к тестированию.

Полезные советы
Заходя на некоторые сайты, мы можем видеть в адресной строке браузера прямую ссылку на RSS-ленту этих сайтов. Для того чтобы не отставать от моды, проведём ещё одну модернизацию нашего сайта и добавим в него всего одну строчку кода: