Создание rss ленты с стилями на php. Как создать свой RSS-канал (ленту новостей). RSS-ленты и SEO

Операции с переменными PHP (операторы)

Для осуществления существуют различные группы.

Оператором называется нечто, состоящее из одного или более значений (выражений , если говорить на жаргоне программирования), которое можно вычислить как новое значение (таким образом, вся конструкция может рассматриваться как выражение). Отсюда следует, что функции или любые другие конструкции, которые возвращают значение (например, print() ) являются операторами, в отличие от всех остальных языковых конструкций (например, echo() ), которые ничего не возвращают.

Арифметические операции в PHP

Помните школьные основы арифметики? Описанные ниже операторы работают так же.

Операция деления ("/") всегда возвращает вещественный тип, даже если оба значения были целочисленными (или строками, которые преобразуются в целые числа). В противном случае результат будет дробным.

Операция вычисления остатка от деления "% " работает только с целыми числами, так что применение ее к дробным может привести к нежелательному результату.

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

Операции инкремента и декремента

PHP, аналогично C, поддерживает префиксные и постфиксные операторы инкремента и декремента.

Постфиксные операторы инкремента и декремента

Как и в языке Си, эти операторы увеличивают или уменьшают значение переменной, а в выражении возвращают значение переменной $a до изменения. Например:

$a=10;
$b=$a++;
echo "a=$a, b=$b"; // Выводит a=11, b=10

Как видите, сначала переменной $b присвоилось значение переменной $a , а уж затем последняя была инкрементирована. Впрочем, выражение, значение которого присваивается переменной $b , может быть и сложнее - в любом случае, инкремент $a произойдет только после его вычисления.

Префиксные операторы инкремента и декремента

Существуют также операторы инкремента и декремента, которые указываются, а не после имени переменной. Соответственно, и возвращают они значение переменной уже после изменения. Пример:

$a=10;
$b=--$a;
echo "a=$a, b=$b"; // Выводит a=9, b=9

Операции инкремента и декремента на практике применяются очень часто. Например, они встречаются практически в любом цикле for .

echo "

Постфиксный инкремент

" ;
$a = 5 ;
echo "Должно быть 5: " . $a ++ . "
\n" ;

\n" ;

Echo "

Префиксный инкремент

" ;
$a = 5 ;
echo "Должно быть 6: " . ++ $a . "
\n" ;
echo "Должно быть 6: " . $a . "
\n" ;

Echo "

Постфиксный декремент

" ;
$a = 5 ;
echo "Должно быть 5: " . $a -- . "
\n" ;

\n" ;

Echo "

Префиксный декремент

" ;
$a = 5 ;
echo "Должно быть 4: " . -- $a . "
\n" ;
echo "Должно быть 4: " . $a . "
\n" ;
?>

Строковые операции

В PHP есть два оператора для работы со строками. Первый - оператор конкатенации ("."), который возвращает объединение левого и правого аргумента. Второй - оператор присвоения с конкатенацией, который присоединяет правый аргумент к левому. Приведем конкретный пример:

$a = "Hello " ;
$b = $a . "World!" ; // $b содержит строку "Hello World!"

$a = "Hello " ;
$a .= "World!" ; // $a содержит строку "Hello World!"
?>

Побитовые операции

Эти операции предназначены для работы (установки/снятия/проверки) групп битов в целой переменной. Биты целого числа - это не что иное, как отдельные разряды того же самого числа, записанного в двоичной системе счисления. Например, в двоичной системе число 12 будет выглядеть как 1100, а 2 - как 10, так что выражение 12|2 вернет нам число 14 (1110 в двоичной записи). Если переменная не целая, то она вна-
чале округляется, а уж затем к ней применяются перечисленные ниже операторы.

Для представления одного числа используются 32 бита:

  • 0000 0000 0000 0000 0000 0000 0000 0000 - это ноль;
  • 0000 0000 0000 0000 0000 0000 0000 0001 - это 1;
  • 0000 0000 0000 0000 0000 0000 0000 0010 - это 2;
  • 0000 0000 0000 0000 0000 0000 0000 0011 - это 3;
  • 0000 0000 0000 0000 0000 0000 0000 0100 - это 4;
  • 0000 0000 0000 0000 0000 0000 0000 0101 - это 5;
  • 0000 0000 0000 0000 0000 0000 0000 1111 - это 15;

Побитовые операторы:

Пример Название Результат
$a & $b Побитовое "и" Устанавливаются только те биты, которые установлены и в $a, и в $b.
$a | $b Побитовое "или" Устанавливаются те биты, которые установлены либо в $a, либо в $b.
$a ^ $b Исключающее или Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b
~ $a Отрицание Устанавливаются те биты, которые в $a не установлены, и наоборот.
$a << $b Сдвиг влево Все биты переменной $a сдвигаються на $b позиций влево (каждая позиция подразумевает "умножение на 2")
$a >> $b Сдвиг вправо Все биты переменной $a сдвигаються на $b позиций вправо (каждая позиция подразумевает "деление на 2")

Операции сравнения

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

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

В PHP разрешается сравнивать только скалярные переменные. Массивы и объекты в PHP сравнивать нельзя. Их даже нельзя сравнивать на равенство (при помощи оператора ==), но при выполнении такой операции PHP не выдает предупреждения. Так что удивившись как-то раз, почему два совершенно разных массива при сравнении их с помощью == оказываются вдруг одинаковыми, вспомните, что перед сравнением оба операнда преобразуются в слово array , которое потом и сравнивается.

Подробно о сравнении массивов смотрите .

Операторы сравнения:

Пример Название Результат
$a == $b Равно TRUE если $a равно $b.
$a === $b Тождественно равно TRUE если $a равно $b и имеет тот же тип. (Добавлено в PHP 4)
$a != $b Не равно TRUE если $a не равно $b.
$a <> $b Не равно TRUE если $a не равно $b.
$a !== $b Тождественно не равно TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)
$a < $b Меньше TRUE если $a строго меньше $b.
$a > $b Больше TRUE если $a строго больше $b.
$a <= $b Меньше или равно TRUE если $a is меньше или равно $b.
$a >= $b Больше или равно TRUE если $a больше или равно $b.

Логические операции

Логические операторы предназначены исключительно для работы с логическими выражениями и также возвращают false или true .

Приведем таблицу логических операторов PHP:

Следует заметить, что вычисление логических выражений, содержащих такие операторы, идет всегда слева направо, при этом, если результат уже очевиден (например, false&&что-то всегда дает false ), то вычисления обрываются, даже если в выражении присутствуют вызовы функций. Например, в операторе $logic = 0&&(time()>100); стандартная функция time() никогда не будет вызвана.

Будьте осторожны с логическими операциями - не забывайте про удваивание символа. Обратите внимание, что, например, | и || - два совершенно разных оператора, один из которых может потенциально возвращать любое число, а второй - только false и true .

Операторы инкремента (++) и декремента (--) не работают с логическими переменными.

Операторы эквивалентности

В PHP, начиная с PHP4 есть оператор тождественного сравнения - тройной знак равенства === ,
или оператор проверки на. PHP довольно терпимо относится к тому, что строки неявно преобразуются в числа, и наоборот.
Например, следующий код выведет, что значения переменных равны:

$a=10;
$b="10";

И это несмотря на то, что переменная $a представляет собой число, а $b - строку. Пеперь рассмотрим несколько другой пример:

$a=0; // ноль
$b=""; // пустая строка
if($a==$b) echo "a и b равны"; // Выводит "a и b равны"

Хотя $a и $b явно не равны даже в обычном понимании этого слова, скрипт заявит, что они совпадают. Почему так происходит? Дело в том, что если один из операндов логического оператора может трактоваться как число, то оба операнда трактуются как числа. При этом пустая строка превращается в 0 , который затем и сравнивается с нулем. Неудивительно, что оператор echo срабатывает.
Проблему решает оператор эквивалентности === (тройное равенство). Он не только сравнивает два выражения, но также их типы. Перепишем наш пример с использованием этого оператора.

Последнее обновление: 1.11.2015

В PHP мы можем использовать различные операторы: арифметические, логические и т.д. Рассмотрим каждый тип операций.

Арифметические операции

    + (операция сложения)

    Например, $a + 5

    - (операция вычитания)

    Например, $a - 5

    * (умножение)

    Например, $a * 5

    / (деление)

    Например, $a / 5

    % (получение остатка от деления)

    Например: $a=12; echo $a % 5; // равно 2

    ++ (инкремент/ увеличение значения на единицу)

    Например, ++$a

    Важно понимать разницу между выражениями ++$a и $a++ . Например:

    $a=12; $b=++$a; // $b равно 13 echo $b;

    Здесь сначала к значению переменной $a прибавляется единица, а затем ее значение приравнивается переменной $b. Иначе было бы, если бы выражение выглядело так: $b=$a++; . Здесь сначала значение переменной $a приравнивалось переменной $b, а затем происходило увеличение значения переменной $a.

    -- (декремент/ уменьшение значения на единицу)

    Например, --$a . И также, как и в случае с инкрементом, существуют два вида записи: --$a и $a--

Операции присваивания

    Приравнивает переменной определенное значение: $a = 5

    Сложение с последующим присвоением результата. Например: $a=12; $a += 5; echo $a; // равно 17

    Вычитание с последующим присвоением результата. Например: $a=12; $a -= 5; echo $a; // равно 7

    Умножение с последующим присвоением результата: $a=12; $a *= 5; echo $a; // равно 60

    Деление с последующим присвоением результата: $a=12; $a /= 5; echo $a; // равно 2.4

    Объединение строк с присвоением результата. Применяется к двум строкам. Если же переменные хранят не строки, а, к примеру, числа, то их значения преобразуются в строки и затем проводится операция: $a=12; $a .= 5; echo $a; // равно 125 // идентично $b="12"; $b .="5"; // равно 125

    Получение остатка от деления с последующим присвоением результата: $a=12; $a %= 5; echo $a; // равно 2

Операции сравнения

Операции сравнения, как правило, применяются в условных конструкциях, когда надо сравнивать два значения, и в зависимости от результата сравнения выполнить некоторые действия. Имеются следующие операции сравнения.

    Оператор равенства сравнивает два значения, и если они равны, возвращает true, иначе возвращает false: $a == 5

    Оператор тождественности также сравнивает два значения, и если они равны, возвращает true, иначе возвращает false: $a === 5

    Сравнивает два значения, и если они не равны, возвращает true, иначе возвращает false: $a != 5

    Сравнивает два значения, и если они не равны, возвращает true, иначе возвращает false: $a !== 5

    Сравнивает два значения, и если первое больше второго, то возвращает true, иначе возвращает false: $a > 5

    Сравнивает два значения, и если первое меньше второго, то возвращает true, иначе возвращает false: $a < 5

    Сравнивает два значения, и если первое больше или равно второму, то возвращает true, иначе возвращает false: $a >= 5

    Сравнивает два значения, и если первое меньше или равно второму, то возвращает true, иначе возвращает false: $a <= 5

Оператор равенства и тождественности

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

Очевидно, что переменные хранят разные значения разных типов. Но при сравнении они будут приводится к одному типу - числовому. И переменная $a будет приведена к числу 22. И в итоге обе переменных окажутся равны.

Или, например, следующие переменные также будут равны:

$a = false; $b = 0;

Чтобы избежать подобных ситуаций используется операция эквивалентности, которая учитывает не только значение, но и тип переменной:

$a = "22a"; $b = 22; if($a===$b) echo "равны"; else echo "не равны";

Теперь переменные будут не равны.

Аналогично работают операторы неравенства!= и!== .

Логические операции

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

    Возвращает true, если обе операции сравнения возвращают true, иначе возвращает false: $a == 5 && $b = 6

    Аналогично операции && : $a == 5 and $b > 6

    Возвращает true, если хотя бы одна операция сравнения возвращают true, иначе возвращает false: $a == 5 || $b = 6

    Аналогично операции || : $a < 5 or $b > 6

    Возвращает true, если операция сравнения возвращает false: !($a >= 5)

    Возвращает true, если только одно из значений равно true. Если оба равны true или ни одно из них не равно true, возвращает false. Например: $a=12; $b=6; if($a xor $b) echo "true"; else echo "false";

    Здесь результат логической операции будет false , так как обе переменных имеют определенное значение. Изменим код:

    $a=12; $b=NULL; if($a xor $b) echo "true"; else echo "false";

    Здесь уже результат будет true , так как значение одной переменной не установлено. Если переменная имеет значение NULL, то в логических операциях ее значение будет рассматриваться как false

Битовые операции

Битовые операции производятся над отдельными битами числа. Числа рассматриваются в двоичном представлении, например, 2 в двоичном представлении 010, число 7 - 111.

    & (логическое умножение)

    Умножение производится поразрядно, и если у обоих операндов значения разрядов равно 1, то операция возвращает 1, иначе возвращается число 0. Например: $a1 = 4; //100 $b1 = 5; //101 echo $a1 & $b1; // равно 4

    Здесь число 4 в двоичной системе равно 100, а число 5 равно 101. Поразрядно умножим числа и получим (1*1, 0*0, 0 *1) = 100, то есть число 4 в десятичном формате.

    | (логическое сложение)

    Похоже на логическое умножение, операция также производится по двоичным разрядам, но теперь возвращается единица, если хотя бы у одного числа в данном разряде имеется единица. Например: $a1 = 4; //100 $b1 = 5; //101 echo $a1 | $b1; // равно 5

    ~ (логическое отрицание)

    инвертирует все разряды: если значение разряда равно 1, то оно становится равным нулю, и наоборот. $b = 5; echo ~$b;

    x<

    x>>y - сдвигает число x вправо на y разрядов. Например, 16>>1 сдвигает число 16 (которое в двоичном представлении 10000) на один разряд вправо, то есть в итоге получается 1000 или число 8 в десятичном представлении

Объединение строк

Для объединения строк используется оператор "точка". Например, соединим несколько строк:

$a="Привет, "; $b=" мир"; echo $a . $b . "!";

Если переменные представляют не строки, а другие типы, например, числа, то их значения преобразуются в строки и затем также происходит операция объединения строк.

Вы наверняка знаете, что RSS лента WordPress (канал) отличается от сайта, и на один сайт можно создать сколь угодно различных RSS каналов. Не знаете? Читаем дальше.

RSS лента WordPress

RSS лента (канал, фид) это динамический файл формата XML, привязанный к домену сайта, формирующийся по определенным правилам. При публикации нового материала RSS лента этого типа материала дополняется и обновляется.

Если мы откроем файл RSS ленты сайта в браузере, то не увидим визуально понятной информации. Выглядит он так:

Чтобы сделать RSS канал читабельным, существуют, так называемые, RSS агрегаторы.

Важно! RSS агрегатор создаст из нечитабельного фида, отдельную rss ленту главной страницы сайта. Часто такие ленты называют «Новостная лента формата RSS».

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

Например , у вас интернет магазин на WordPress и все появление новых товаров вы отражаете в отдельном разделе «Новинки». Используя адрес фида этого раздела, вы можете создать новостную rss ленту раздела «Новинки». Эта лента будет нужна для создания новостной рассылки магазина.

Еще пример. У вас информационный блог WordPress и все новые статьи вы публикуете на главной странице. В этом случае достаточно создать rss ленту главной страницы блога, который будет пополняться материалом при выходе новой статьи или публикации новости на главной странице блога.

Адреса rss лент WordPress

CMS WordPress по умолчанию создает несколько RSS каналов сайта. Из них важны два главных (указаны относительные URL).

RSS лента WordPress в формате RSS2

  • Фид последних записей /feed/
  • Фид свежих комментариев /comments/feed/
  • Фид последних записей /feed/rss/
  • Фид свежих комментариев /comments/feed/rss/
  • Фид последних записей /feed/rss2/
  • Фид свежих комментариев /comments/feed/rss2/

В формате Atom

  • Фид последних записей /atom/
  • Фид свежих комментариев /comments/atom/

В формате RDF

  • Фид последних записей /rdf/
  • Фид свежих комментариев /comments/rdf/

В ядре системы есть файлы, которые выводят каждый из перечисленных фидов. Все лежат в каталоге wp-includes .

Для записей:

  • feed-atom.php (лента в формате atom)
  • feed-rdf.php (лента в формате rdf)
  • feed-rss.php (лента в формате rss) устарел
  • feed-rss.php (формат ленты rss2)
  • feed.php (функции фид-лент )

Примечание: Файл feed.php это RSS-контейнер для функции bloginfo. С помощью функции get_bloginfo () Вы можете получить преобразованную информацию лишенную тегов и символов для использования в фидах сайта.

Комментарии

  • feed-atom-comments.php (лента комментариев в формате atom)
  • feed-rss2-comments.php (лента комментариев в формате rss2)

Значок фида на сайте

В последних версиях WordPress, этот виджет убран из коробочной версии. Теперь этот виждет можно найти на системном плагине «JetPack» под названием «ссылки RSS JetPack».

Настроить, что показывать в фиде сайта WordPress, можно и нужно в консоли на вкладке «Написание», пункты:

  • В RSS-лентах отображать последние…
  • Показывать в ленте…, анонс или полное содержание.

Вывод 1

  • Главных RSS каналов (они же фид-ленты или фиды) сайта два: главной страницы и последних комментариев;
  • RSS лента WordPress имеет четыре формата: rss (устарел), atom, rss2, rdf;
  • С помощью rss-агрегаторов можно создать сколько угодно новостных rss-лент сайта.

Практика применения знаний о фидах WordPress

Для практического использования фид-лент сайта вам понадобится URL главного фида (/feed/) или URL новостного раздела, о котором я говорил в начале статьи (/category/name-category/feed/). feed можно поменять на нужный формат. Префикс category в URL используется в настройках по умолчанию.

Проверка фида

Для проверки фида сайта, нужно полный URL фида вписать в адресную строку браузера и проверить, как RSS лента WordPress отражается в браузере.

При желании или необходимости, можно проверить валидность фид-ленты на сервисе: http://validator.w3.org/feed/

Использование RSS ленты

Имея адрес фид-ленты сайта вы можете:

  • Показать новости сайта на другом WordPress сайта используя виджет «RSS», записи из любой ленты RSS или Atom;
  • Создать новостную рассылку на сервисе FeedBurner. Красивая рассылка со своей формой подписки;
  • Показать новости сайта в новостных каталогах, например, LiveRSS: http://liverss.ru/ ;
  • Создать новостную рассылку своим подписчикам на любом стороннем почтовом сервисе, типа MailChimp. Многофункциональная рассылка, интерфейс на английском языке, со своей настраиваемой формой подписки. Отлично интегрируется с WordPress.

Альтернативой FeedBurner и MailChimp может стать любой другой почтовый сервис: SmartResponder (умер 01-11-2016), UniSender (русс.), Aweber, а также Constant Contact, Campaign Monitor, GetResponse, ActiveCampaign, MyEmma, Mad Mimi, Infusionsoft, Feedblitz, HubSpot, MyNewsletterBuilder, Inbox First, Sailthru, Klaviyo, Vero, Pardot, Zapier, Ontraport, ExactTarget, Vertical Response, Drip, MailerLite, WhatCounts, ConvertKit, MailJet, Maropost.

Форматов для представления данных. Расшифровка этой аббревиатуры для разных версий выглядела по-разному:

  • R ich S ite S ummary (RSS 0.9x) - обогащённая сводка сайта;
  • R DF S ite S ummary (RSS 0.9 и 1.0) - сводка сайта с применением инфраструктуры описания ресурсов;
  • R eally S imple S yndication (RSS 2.x) - очень простой сбор информации.

Общий смысл всех этих вариантов сводится к тому, что RSS - это способ публикации (трансляции) и распространения информации с сайта. Синдикация веб-контента означает быстрое распространение информации, благодаря одновременному размещению сразу в нескольких источниках.

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

История создания формата RSS

Впервые технологию RSS применила в конце 90-х компания Netscape для раздачи новостей на своем портале Netcenter. Первой открытой официальной версией RSS стала версия 0.90. К 2000 году формат получил широкое распространение и разделился на два разных стандарта - RSS 1.0, основанный на стандартах XML и RDF организации W3C, и RSS 0.92, основанный на версии формата от Netscape 0.91. Последняя версия формата RSS - 2.0 является дальнейшим развитием этой ветки (кстати, автор этой версии Дейв Вайнер и придумал свою расшифровку аббревиатуры - Really Simple Syndication).

В 2006 году вступил в борьбу с RSS вступил конкурирующий формат - Atom, продвигаемый компанией Google.

Терминология

Вы можете встретить в сети различные обозначения для новостного потока в формате RSS: RSS-лента, RSS-фид, RSS-поток, RSS-канал. Все эти термины обозначают одно и то же.

В чем удобство RSS-лент для посетителей сайтов

Существуют специальные программы-агрегаторы, которые позволяют собирать информацию множества RSS-лент из разных источников. Эти программы способны не только автоматически получать данные в формате RSS, но и обрабатывать их: сортировать, фильтровать и приводить к максимально удобному для чтения виду. Такими агрегаторами ("читалками") снабжены все популярные браузеры. Существуют также агрегаторы в Web - это специальные сайты для сбора и отображения RSS-каналов (примеры - Яндекс.Лента , Google Reader).

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

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

Как подписаться на RSS-ленту сайта

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

Зачем RSS-лента нужна сайту

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

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

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

RSS-ленты и SEO

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

Во-первых, было замечено, что нередко поисковики раньше индексируют контент RSS-лент на других сайтах, нежели на источнике, транслирующем фид. И считают первоисточниками именно эти сайты, а авторский сайт еще и получает от поисковиков "по шапке" за "дублированный контент". Особенно это касается блогов, в которых в ленту выносится не только заголовок и краткая аннотации, а посты целиком. Таким образом, ваш контент быстро становится "неуникальным" и "бесполезным для людей", с точки зрения поисковиков. Почему так происходит, спросите вы, ведь лента содержит ссылки на источник новостей? А потому, что сайты, которые грабят ваш контент (rss-каталоги, социальные закладки) в большинстве своем "жирнее", чем ваш сайт, то есть трастовость вашего ресурса никак не сравнима с трастовостью раскрученного сервиса.

Как следствие описанного явления, транслированные потоки часто сдвигают первоисточник вниз в .

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

В-третьих, точно так же не стоит рассчитывать, что с сайтов-воров к вам будут по ссылкам приходить посетители: многие из них ограничатся чтением новости там, где они ее обнаружили. А если учесть часто встречающийся пункт номер 2 (отсутствие прямой ссылки на вас), то перспектива повышения посещаемости засчет таких ресурсов становится и вовсе призрачной.

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

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

Как создать свою RSS-ленту. Элементы RSS-канала

Ряд движков и CMS уже имеет встроенные модули публикации RSS-потока. Если вы пользуетесь таким, вам не нужно ломать голову над этом вопросом. Эта глава для тех, кто хочет писать свою RSS-ленту вручную или интересуется спецификацией формата RSS.

Чтобы завести свою RSS-ленту, для начала необходимо создать документ в стандарте XML 1.0. То есть файл RSS-ленты должен начинаться со строки

Другой ключевой момент - собственно элемент rss с указанием версии:

Внутри тэга rss размещается тэг . В нем и содержится вся информация. Сначала указывается информация о самом канале, а затем - сам новостной поток. Вот как это выглядит в общем случае:




Заголовок ленты
http://www.ссылка на сайт
Краткое описание канала
Дата последнего изменения в канале*


Заголовок новости или статьи № 1
Ссылка на полный текст новости или статьи №1
Текст новости № 1 (длина произвольная)


Заголовок новости или статьи № 2
Ссылка на полный текст новости или статьи №2
Текст новости № 2 (длина произвольная)


Обязательными элементами канала являются title, link и description. В элементе все элементы, по большому счету, являются необязательными, но, по крайней мере, или <description> должен присутствовать.</p> <p>* Даты в RSS-канале обязательно должны быть в формате RFC 2822 ! Например, Tue, 18 May 2010 07:30:00 +0300. Если вы затрудняетесь с <a href="/rates/feshn-blogger-sozdanie-bloga-preimushchestva-vedeniya-bloga-v-mire-mody-pravilnoe.html">правильным оформлением</a> даты или не хотите делать это вручную, воспользуйтесь нашим онлайн-конвертером даты и времени в формат RFC 2822 .</p> <h3>Необязательные элементы RSS-канала</h3> <p>Вы можете внести <a href="/services/vpn-rasshirenie-dlya-yandeks-brauzera-luchshie-vpn-dopolneniya-dlya-yandeks-brauzera.html">дополнительную информацию</a> о канале, сайте-источнике или авторе канала.</p> <p><b>language </b> <br> Язык, на котором написан канал. Позволяет сборщикам, например, объединять на одной странице все сайты на одном языке. Перечень <a href="/settings/kak-naiti-d-f-funkcii-oblast-dopustimyh-znachenii-odz-teoriya.html">допустимых значений</a> этого элемента лежит .<br><i><b>Пример: </b> </i> ru-ru</p> <p><b>managingEditor </b><br> <a href="/phone/izvlechenie-email-adresov-iz-failov-na-vashem-zhestkom-diske.html">Электронный адрес</a> человека, ответственного за редакторский текст. <br><i><b>Пример: </b> </i> </p> <p><b>webMaster </b><br> Адрес <a href="/settings/fakty-o-elektronnoi-pochte-istoriya-poyavleniya-i-razvitiya.html">электронной почты</a> человека, ответственного за <a href="/settings/chto-iz-bytovoi-tehniki-potreblyaet-bolshe-energii-schitaem-vatty.html">технические аспекты</a> канала.<br> (rss_tech@gmail.com (Vasily Petrov)</p> <p><b>pubDate </b><br> Дата публикации текста в канале Дата и время в RSS соответствуют спецификации RFC 822 , за исключением того, что год может представляться двумя или четырьмя цифрами (последнее предпочтительно). <br><i><b>Пример: </b> </i> (Sat, 07 Sep 2002 00:00:01 GMT)</p> <p><b>lastBuildDate </b><br> Время последнего изменения содержимого канала. <br><i><b>Пример: </b> </i> (Sat, 07 Sep 2002 09:42:31 GMT)</p> <p><b>cloud </b><br> Указывает веб-сервис, поддерживающий интерфейс rssCloud, реализующий подписку на обновления канала. . <br><i><b>Пример: </b> </i></p><p> <cloud domain="ccc.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap"/></p> <p>(В этом примере для запроса уведомления нужно отправить сообщение XML-RPC на ccc.com , порт 80, путь /RPC2 . Вызываемая процедура - myCloud.rssPleaseNotify.)</p> <p><b>ttl </b><br> Время жизни - количество минут, на которые канал может кешироваться перед обновлением с ресурса. <br><i><b>Пример: </b> </i> (<ttl>60</ttl>)</p> <p><b>image </b><br> Изображение (в <a href="/phone/formaty-graficheskih-izobrazhenii-podrobnee-o-failah-jpg-png-svg.html">формате GIF</a>, JPEG или PNG), которое может отображаться с каналом.</p> <p>Максимальная ширина - 144 (по умолчанию - 88). <br> Максимальная высота - 400 (по умолчанию - 31).</p> <p>Элемент <item> также может содержать <a href="/phone/web-developer-toolbar-perevod-programmy-na-russkii-web-developer-dlya-firefox-ustanovka-i.html">дополнительные элементы</a>, такие как:</p> <p><b>author </b><br> Адрес электронной почты автора сообщения. Актуально, например, для RSS-лент онлайн-СМИ, в которых у каждой статьи - свой автор. Формат элемента:</p> <p><author>rsseditor@gmail.com (Andrew Petrov)</author></p> <p><b>comments </b><br> URL страницы для комментариев, относящихся к сообщению. Формат элемента:</p> <p><comments>http://domain.com/article4403.php#comments</comments></p> <p><b>enclosure </b><br> Описывает медиа-объект, прикрепленный к сообщению. Имеет 3 обязательных атрибута: url (адрес приложения), length (размер приложения в байтах) и type (тип приложения MIME). Пример:</p> <p><enclosure url="http://www.domain.com/111.mp3" length="15200000" type="audio/mpeg" /></p> <p><b>source </b><br> Название RSS-канала, из которого получено сообщение, полученное из его <title> . Имеет обязательный атрибут URL (ссылка на источник).</p> <p><source url="http://domain.org/rss.xml"> Kapitoshka"s channel </source></p> <h3>Проверка RSS-ленты на соответствие стандарту</h3> <p>Итак, вы изготовили собственную RSS-ленту. Для того, чтобы убедиться, что вы все сделали правильно, советую воспользоваться услугами онлайн-валидаторов, например, Feed Validator или RSS Validator.</p> <h3>Организация подписки на RSS-ленту</h3> <p>Чтобы организовать возможность подписки на вашу RSS-ленту, необходимо сделать 2 вещи:</p> <p>2. Вставить между тегами <head> и </head> <a href="/services/sdelat-krasnuyu-stroku-vo-vsem-dokumente-chtoby-sdelat.html">следующую строку</a>:</p> <p>Этот шаг необходим для того, чтобы сообщить браузерам о наличии RSS-ленты - как вы помните, в уважающих себя браузерах есть свои rss-читалки.</p> <p>Кстати, обнаруженную браузером на сайте RSS-ленту можно просмотреть, кликнув на специальную иконку в меню. В Mozilla она находится в <a href="/internet/prepyatstvie-weblinks-php-haki-i-dopolneniya-podmena-adresnoi-stroki-v-microsoft-internet.html">адресной строке</a>, в IE - в <a href="/rates/chto-takoe-komandnaya-stroka-kak-vyzvat-komandnuyu-stroku-zapusk-komandnoi.html">командной строке</a>:</p> <p><img src='https://i1.wp.com/earninguide.biz/webmaster/img/rssbr2.gif' width="100%" loading=lazy></p><p>Кстати, как вариант, вы можете дать под RSS-кнопкой ссылку не на саму <a href="/phone/kak-ubrat-lentu-s-yandeksa-udalenie-novostnoi-lenty-yandeksa-otklyuchenie.html">новостную ленту</a>, а на фид в гуглевском сервисе Feedburner.com . Предварительно, конечно, нужно там зарегистрироваться и добавить свою ленту. Преимущества "зажигания" вашего фида в том, что сервис FeedBurner позволяет владельцам сайтов предоставлять информацию своим подписчикам в наиболее <a href="/settings/kakaya-programma-otkryvaet-format-pdf-chto-takoe-format-pdf-stdu.html">удобном формате</a>, а также дает полную <a href="/rates/metod-kolichestvennoi-ocenki-informacii-statisticheskii-semanticheskii.html">статистическую информацию</a> о посетителях и подписчиках фида, и позволяет зарабатывать на своем фиде (с помощью ).</p> <p>О том, что такое RSS, у многих владельцев сайтов, у которых нет RSS (а таких не так уж и мало, как могут думать некоторые), может возникнуть желание заполучить его себе:-) В этой статье я хочу перечислить способы организации RSS-канала для своего сайта. Начиная с самых <a href="/internet/bystroe-skachivanie-s-yutuba-kak-skachat-s-yutuba-video-3-prostyh-sposoba.html">простых способов</a> и заканчивая сложными.</p> <p>Изначально нужно быть уверенным, что вы знаете о том, что RSS-документ – это, по сути своей, <a href="/services/ustanovit-fail-apk-obychnym-sposobom-chto-takoe-fail-apk-i-kak.html">обычный файл</a>, в котором специальным образом в виде текста описаны те или иные новости (или статьи). В итоге понятие «у меня (у моего сайта) есть RSS-канал» будет выражаться на практике в виде интернет адреса к этому самому документу (у меня на блоге это, к примеру, адрес: <b>http://feeds.feedburner.com/devezoterik </b>). Ваши же читатели, имея этот адрес, в дальнейшем смогут следить за изменениями в этом файле с помощью .<br></p> <h3>Использование сторонних сервисов (блогов)</h3> <p>Способ, пожалуй, один из самых простых (не требует специальных знаний в области программирования, денежных затрат и т.д.), но при этом, как не парадоксально, он не плох. Можно использовать <a href="/rates/tele2-service-free-services-and-services-tele2.html">бесплатные сервисы</a>, предоставляющие возможность вести свои блоги. Блоги или по-русски говоря «дневники», это чаще всего что-то вроде специфических домашних страниц ( можно более подробно об этом прочесть) :). Во-первых, на всех таких серверах вам выдают ссылку на RSS-документ (RSS-канал) вашего блога. Во-вторых, блоги имеют именно новостную структуру, т.к. все ваши записи в блоге идут последовательно, и каждая из них привязана к какой-либо дате, а это как раз то, что нам нужно.</p> <p>То есть идея в том, что где бы вы не содержали свой сайт, вы можете параллельно поддерживать на другом сайте (сервисе, о них чуть позже) актуальную новостную ленту. На своем же сайте вы можете указать ссылку на RSS-документ, которой смогут воспользоваться посетители, желающие следить за вашими новостями.</p> <p>Подобных сервисов для ведения своих блогов предостаточное количество в интернете. Одни из самых популярных и надежных это: www.blogger.com , my.ya.ru и livejournal.com (но вообще их просто несметное количество, отличающихся обычно немногим). На каждом из указанных мной сервисов есть русская версия с <a href="/phone/raspberry-pi-ustanovka-raspbian-s-pomoshchyu-noobs-raspberry-pi-podrobnaya-nastroika-s-nulya-do.html">подробной помощью</a>, описывающей, как «завести» свой блог.</p> <h3>Использование сервисов генерации RSS из обычных страниц</h3> <p>Этот способ так же не требует навыков программирования и подходит в первую очередь людям, которые имеют свой сайт и имеют на нем некую страницу новостей, которые они могут обновлять тем или иным способом, но, тем не менее, не имеют на этом сайте RSS-канала.</p> <p>Конечно, можно воспользоваться первым способом: создать где-нибудь блог и дублировать в него новости со своего сайта (обычно это те новости, которые выводят на первой странице сайта). Но тогда ведь постоянно придется дублировать новости с сайта на блог… Предлагаемый же способ дает альтернативу для более прогрессивных/ленивых (иногда грань между этими понятиями бывает мала:)) владельцев сайта.</p> <p>Смысл заключается в том, чтобы использовать сервисы, которые будут сами следить за вашей страницей новостей и создавать каждый раз (при обновлении вами страницы) актуальный RSS-документ. О подробностях этого процесса я . Писал в первую очередь для тех, кто хочет следить за чужими сайтами, но никто нам не мешает посмотреть с другой точки зрения и следить за своим 🙂 В итоге мы будет иметь ссылку на автоматически обновляемый RSS-документ, отражающий все новости на вашем сайте (правда, с задержкой около одного часа). Вам лишь нужно будет добавлять новости на свою страницу, не изменяя <a href="/rates/formatirovanie-vnutrennei-pamyati-android-cherez-kompyuter-kak.html">внутреннего форматирования</a> <a href="/internet/chto-takoe-html-struktura-dokumenta-html.html">html документа</a>, чтобы сервисы «слежения» не потерялись на странице в поисках искомых новостей (чтоб узнать более <a href="/services/kak-poluchit-bolee-podrobnuyu-informaciyu-o-moei-blokirovke-ili.html">подробную информацию</a>, читайте статью по выше приведенной ссылке).</p> <h3>Создание RSS-документа вручную</h3> <p>Если по каким-либо причинам вы не хотите, чтоб RSS-документ обитал вне вашего сайта, и при этом вы не программист, остается еще один способ: создавать и обновлять этот документ у себя на сайте вручную (здесь уже понадобится опыт работы с html). В случае использования хостинга без поддержки скриптов и при не слишком частом появлении новостей (иначе вся эта затея будет очень утомительной), это вполне востребованный вариант.</p> <p>Для создания и редактирования такого файла лучше всего использовать редактор или любой другой редактор, поддерживающий работу с кодировкой UTF-8 (без BOM). Документ должен быть в кодировке UTF-8 (без BOM). Вот пример того, как может выглядеть RSS-документ внутри (пример снабжен комментариями):</p><p> <?xml version="1.0" encoding="utf" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <!-- Заголовок RSS-ленты, обычно это название сайта --> <title>Мой сайт http://www.moi_sait.ru Здесь вы сможете прочесть все последние новости сайта ru-ru http://www.moi_sait.ru/logo.jpg Логотип моего сайта http://www.moi_sait.ru Sun, 07 Jun 2009 04:00:11 +0300 На сайте реализована поддержка RSS Ура, наконец-то теперь есть поддержка RSS!
Долой e-mail рассылку!
Fri, 05 Jun 2009 10:39:18 +0300 Станислав http://www. moi_sait.ru/news/1.htm

Сохранять такой файл в большинстве случаев лучше под именем «rss.xml». Имя rss уже как традиция, но можно использовать и любое другое имя, а расширение xml просто желательно (в этой статье я не способен оговорить и объяснить всех деталей, так как тогда она была бы явно слишком большой:)).

Автоматическая генерация RSS-документа на своем сервере

Этот способ подходит уже только для более искушенных веб-программированием людей. Если информация на сайте хранится в базе данных, а сами страницы являются серверными скриптами (а ля PHP), тогда становится возможным использовать самый автономный и не обременяющий в дальнейшем способ – создавать в автоматическом режиме RSS-документ при запросе оного пользователями. Описывать, как создать подобный скрипт, не имеет смысла, так как уже есть достаточно статей на эту тему с готовыми примерами и разъяснениям к ним. Вот одни из них (для языка PHP): ссылка 1 , ссылка 2 , ссылка 3 , ссылка 4 , ссылка 5 .

Скромный посредник — Feedburner

И вот у вас, наконец, есть желанный адрес своей RSS-ленты. Казалось бы, чего еще можно желать? Конечно же, подробной статистики. Именно для этого и был создан сервис feedburner . Он позволит вам получать максимально возможную статистику, такую, например, как: количество подписчиков, распределение подписчиков по странам, степень интереса подписчиков к тем или иным новостям, возможность получать ваши RSS-новости по e-mail и т.д.

Основной принцип работы feedburner`а заключается в том, что он является посредником между вашим RSS-документом и читателями. Вы указываете feedburner`у адрес своей RSS-ленты, после чего feedburner сможет отдавать эту ленту уже из другого адреса (адрес будет таким: http://feeds.feedburner.com/ + имя вашей RSS-ленты ). И если пользователи будут подписываться именно на адрес от feedburner`а, вы сможете в полной мере использовать все функции данного сервиса. При этом нужно помнить, что если кто-то подпишется на настоящий адрес вашего канала, вы не сможете получить прелести использования feedburner`а.

Эта схема поможет придать больше наглядности вышеописанному:

О настройках feedburner можно прочесть . А так же , и .

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




Top