Имеющаяся на сайте RSS-лента даёт возможность оперативно транслировать новости и обновления читателям. Формат этот несколько устаревший, но аудитория пользователей всё ещё большая. Возможность организации RSS-лент заложена во многие популярные движки, такие как WordPress, Joomla, Drupal и многие другие. Где-то эта возможность является штатной, а где-то реализуется с помощью плагинов. Рассматривать процесс установки плагинов не имеет особого смысла, поэтому мы попробуем разобраться, как организовать RSS-ленту своими силами, не используя плагины.
RSS-лента для статического сайта на html
Для начала мы рассмотрим ручной способ, позволяющий реализовать трансляцию новостей на любом сайте, даже на статичном, построенном на голых html-страницах. Данный функционал будем создавать с помощью простого кода, который размещается в файле rss.xml в корне сайта:
<?xml version="1.0" encoding="windows-1251" ?> - в этой строке указывается кодировка <rss version="2.0"> <channel> <title>Новости с сайта Site.ru</title> - указываем название новостной ленты <link>http://site.ru/rss.xml</link> - указываем адрес ленты <description>Новостная лента с сайта Site.ru</description> - вводим описание нашей ленты <lastBuildDate>Fri, 03 Jul 2015 17:51:00 +0300</lastBuildDate> - дата последнего обновления ленты <item> <title>На нашем сайте открылся новый раздел</title> - указываем заголовок новости <link>http://site.ru/news1.html</link> - указываем адрес страницы с полной новостью <description>На нашем сайте открылся новый раздел, приглашаем всех желающих к ознакомлению с новой информацией</description> - вписываем краткое содержание новости </item> </channel> </rss>
При необходимости, в данном коде можно указать язык ленты, что необходимо при её регистрации в некоторых каталогах RSS-лент, а также добавить дополнительные элементы.
Представленный код обновляется в ручном режиме. То есть, для внесения изменений необходимо открыть файл rss.xml и вписать в него новые данные. Нужно несколько новостей? Тогда редактируемый файл с лентой должен содержать в себе несколько конструкций следующего вида:
<item> <title>На нашем сайте открылся новый раздел</title> <link>http://site.ru/news1.html</link> <description>На нашем сайте открылся новый раздел, приглашаем всех желающих к ознакомлению с новой информацией</description> </item>
Каждая такая конструкция – это отдельная новость, которая располагается между тегами item. По мере добавления новостей, старые записи можно удалять. Количество записей может быть любым, но прописывать больше 10 последних новостей не стоит – вряд ли кому-то понадобятся устаревшие записи.
Автоматизируем создание RSS-ленты
Предположим, что наш сайт создан на самописной CMS, либо на CMS, у которой RSS-лента отсутствует. В этом случае необходимо разобраться в структуре базы MySql, используемой для хранения данных, и выяснить, как производится хранение данных о заголовках страниц, их адресах и содержимом страниц с новостями. Разобравшись со структурой базы, необходимо несколько модернизировать файл с RSS-лентой. Для начала, дадим ему другое расширение, чтобы в нём мог исполняться php-код, необходимый для работы с базой MySql. В противном случае наша RSS-лента не заработает. Необходимо переработать и внутреннее содержимое файла:
- Реализуем подключение к базе данных;
- Делаем выборку нужных данных, установив ограничение на 10 последних записей;
- Выводим в цикле содержимое полученных переменных;
С первым пунктом всё понятно – нам нужно выполнить подключение к базе данных для забора оттуда информации. Второй пункт тоже понятен – нам нужно получить 10 дат, 10 id ссылок на страницы с новостями, 10 заголовков новостей и 10 тел новостей. В третьем тексте мы последовательно выводим всё то, что мы публиковали между тегами item в ручном формате нашей RSS-ленты. Таким образом, разобравшись в структуре базы данных, мы можем организовать RSS-ленту для любого ресурса. Такой подход хорош тем, что мы не касаемся исходного кода CMS и не создаём дополнительных нагрузок на хостинг – этим грешат некоторые плагины, нагружающие сайты километрами ненужного кода. Кроме того, наша методика позволит избавиться от возможных ошибок в функциональности действующего сайта на этапе внедрения RSS-ленты. Максимум, что может произойти, так это получение не тех данных, что нужны для формирования ленты на нашем сайте.
Теперь рассмотрим сам код:
<?php echo '<?xml version="1.0" encoding="windows-1251"?> <rss version="2.0"> <channel> <title>Новости с сайта Site.ru</title> <link>http://site.ru/rss.php</link> <description>Новостная лента с сайта Site.ru</description>'; $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 '<item> <title>$title</title> <link>ссылка на статью с указанием id</link> <description>$text</description> <pubDate>$date</pubDate> </item>'; } echo '</channel> </rss>'; ?>
Первые строки данного кода схожи с вышеописанным ручным кодом и содержат в себе общую информацию о нашей новостной ленте – это название, описание и полный адрес ленты. Даты последнего обновления ленты нет, но её можно реализовать, модернизировав исходный код. Далее производится выборка необходимых данных из MySql-базы и запускается цикл формирования RSS-ленты.
С датой новости, её текстом и заголовком всё понятно – они выводятся из переменных $title, $text и $date. Что касается ссылки на полную новость, то здесь берётся её id, после чего мы можем сформировать полную ссылку, опираясь на структуру формирования ссылок на нашем сайте. Например, ссылки могут иметь вид http://site.ru/news.php?id=48. Здесь мы описываем лишь общий принцип формирования ссылок, поэтому при практической реализации в вышеуказанный код необходимо внести соответствующие изменения.
Как только формирование файла rss.php будет готово, мы можем заливать его на хостинг и приступать к тестированию.
Полезные советы
Заходя на некоторые сайты, мы можем видеть в адресной строке браузера прямую ссылку на RSS-ленту этих сайтов. Для того чтобы не отставать от моды, проведём ещё одну модернизацию нашего сайта и добавим в него всего одну строчку кода:
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://site.ru/rss.php" />
Данная строка должна располагаться между тегами <head>.
Читайте также:
• Как добавить счетчик посещений на сайт
• Как сделать выпадающие меню на CSS
• Как сделать иконку для сайта
• Как вставить пробел html
• Как увеличивать изображение на сайте
• Как добавить социальные кнопки на сайт
• Как сделать кнопку "Наверх" на сайте