=== RSS for Yandex Zen ===
Contributors: Flector
Donate link: https://money.yandex.ru/to/41001443750704/200
Tags: yandex, zen, yandex zen, rss, feed
Requires at least: 4.4
Tested up to: 6.8
Requires PHP: 5.3
Stable tag: trunk
Создание RSS-ленты для сервиса Яндекс.Дзен.
== Description ==
Данный плагин автоматически создаст на вашем сайте новую RSS-ленту для сервиса "Яндекс.Дзен" в полном соответствии с [техническими требованиями](https://yandex.ru/support/zen/publishers/rss.html) Яндекса.
После установки плагина не забудьте проверить его настройки в "Настройках\Яндекс.Дзен".
Новые правила добавления канала в сервис Яндекс.Дзен читайте на [этой](https://yandex.ru/support/zen/publishers/site-to-channel.html) странице.
Цитата: `Для сайта site.ru проверка и привязка возможна при наборе каналом 7000 дочитываний за последние семь дней. Учитываются только публикации со средним временем дочитывания не менее 40 секунд`.
Т.е. предлагается сначала создать и заполнить канал материалами, получить 7000 дочитываний, а уже после этого можно будет добавить ленту.
Если вам понравился этот плагин, то, пожалуйста, поставьте ему 5 звезд.
== Frequently Asked Questions ==
= Инструкция по установке =
1. Установите плагин из админки движка "Плагины\Добавить новый".
2. Активируйте плагин в меню "Плагины".
3. Зайдите в настройки плагина "Настройки\Яндекс.Дзен" и сохраните их.
4. Это все.
= Лента не проходит валидацию, что делать? =
Лента для Яндекс.Дзена никогда не сможет пройти валидацию, так как технические требования Яндекс.Дзена несовместимы со стандартами обычного RSS.
Если техническая поддержка Яндекс.Дзена не принимает вашу ленту и указывает на валидатор, то значит, что их не устраивает какой-либо контент ваших записей. Например, им абсолютно точно не нравятся ссылки на Youtube-ролики, скрипты рекламы, посторонние теги и прочее. Вам следуют уточнить у них, что именно их не устраивает (может, у вас банально нет изображений или не хватает текста в записях).
И еще замечание: техническая поддержка Яндекс.Дзена после вашей заявки спросит вас о том, соответствует ли лента их рекомендациям, а также попросит вас проверить ленту в валидаторе. Это не отказ! Это просто их страховка от лишних телодвижений, смело отвечайте, что лента соответствует всем их техническим требованиям.
= Лента отдается с неправильным content type, что делать? =
Плагин создает ленту с правильным контент типом "application/rss+xml". Если у вас лента отдается с другим контент типом, то весьма вероятно, что в этом виноват ваш плагин кэширования. Добавьте урл ленты в исключения плагина (все плагины кэширования имеют опцию исключения определенных страниц).
= URL источника запрещен в robots.txt, что делать? =
Добавьте в robots.txt директиву:
`Allow: /feed/zen/`
Где "zen" это имя вашей RSS-ленты.
= Как добавить "подпись" к записям ленты? =
В плагине есть два фильтра обработки контента записей. Для контента записи используется "yzen_the_content", а для описания записи "yzen_the_excerpt".
Например, добавьте в файл functions.php вашей темы код:
`function yzen_sign($content) {
global $post;
$sign = 'Сообщение "'.$post->post_title.'" появилось сначала на "'.get_bloginfo_rss('title').'".';
$content .= $sign;
return $content;
}
add_filter('yzen_the_content', 'yzen_sign');`
И вы получите подпись, аналогичную подписи от плагина Yoast SEO.
= Как изменить аргументы цикла для собственной выборки записей? =
Фильтр на аргументы цикла называется "yzen_query_args", использовать его просто:
`function my_yzen_query_args($args) {
$args['tag'] = 'bread+baking+recipe';
return $args;
}
add_filter('yzen_query_args', 'my_yzen_query_args');`
В результате в ленту плагина попадут только записи, имеющие все 3 указанные метки ("bread", "baking" и "recipe").
Описание всех аргументов цикла вы можете найти в [кодексе](https://codex.wordpress.org/Class_Reference/WP_Query).
= Генерация ленты останавливается после первого тега enclosure, что делать? =
Вам необходимо включить расширение php-xml для php, которое почти у всех хостеров и так включено по умолчанию.
= Как автоматически указывать актуальность статьи в зависимости от рубрики? =
Нужный фильтр называется "yzen_type_article", использовать его просто:
`function my_type_article($yztypearticle) {
if ( in_category( array( 'news', 'other-news' ), get_the_ID() ) ) {
// 'true' для новостных рубрик
$yztypearticle = 'true';
} else {
// 'false' для остальных рубрик
$yztypearticle = 'false';
}
return $yztypearticle;
}
add_filter('yzen_type_article', 'my_type_article');`
В результате в ленте все записи из рубрик с ярлыками "news" и "other-news" будут отмечены как новостные, а записи всех остальных рубрик будут считаться актуальными всегда. Вместо ярлыков можно указывать ID рубрик.
= Как автоматически указывать тип публикации статьи в зависимости от рубрики? =
Нужный фильтр называется "yzen_type_platform", использовать его просто:
`function my_type_platform($yztypeplatform) {
if ( in_category( array( 'news', 'other-news' ), get_the_ID() ) ) {
// 'native-yes' - материал будет опубликован на платформе и попадет в ленту рекомендаций.
// 'native-draft' - материал сохранится на платформе в качестве черновика. Вы можете отредактировать черновик по своему усмотрению и опубликовать.
// 'native-no' - материал попадет в ленту RSS как публикация с сайта.
$yztypeplatform = 'native-yes';
}
return $yztypeplatform;
}
add_filter('yzen_type_platform', 'my_type_platform');`
В результате в ленте все записи из рубрик с ярлыками "news" и "other-news" будут целиком опубликованы на платформе Дзен. Вместо ярлыков можно указывать ID рубрик.
= Как автоматически указывать настройку индексирования статьи в зависимости от рубрики? =
Нужный фильтр называется "yzen_index", использовать его просто:
`function my_type_index($yzindex) {
if ( in_category( array( 'news', 'other-news' ), get_the_ID() ) ) {
// 'index' - материал индексируется в Дзене.
// 'noindex' - материал не индексируется в Дзене.
$yzindex = 'noindex';
}
return $yzindex;
}
add_filter('yzen_index', 'my_type_index');`
В результате в ленте все записи из рубрик с ярлыками "news" и "other-news" будут отмечены как неиндексируемые на платформе Дзен. Вместо ярлыков можно указывать ID рубрик.
== Screenshots ==
1. Метабокс плагина.
2. Основные настройки плагина.
3. Продвинутые настройки плагина.
== Changelog ==
= 1.28 (28.01.2021) =
* добавлены настройки публикации ("Опубликовать в Дзене", "Сохранить как черновик в Дзене", "Публикация с сайта").
* добавлены настройки индексации статей, созданных на платформе.
* добавлены фильтры "yzen_type_platform" и "yzen_index" для автоматической простановки новых настроек в зависимости от рубрики (читайте FAQ).
= 1.27 (06.07.2021) =
* добавлено указание актуальности статей (новая функция Яндекс.Дзена).
* добавлен фильтр "yzen_type_article" для автоматической простановки указания актуальности статей в зависимости от рубрики (читайте FAQ).
* исправлено формирование описаний изображений.
* исправлены js-уязвимости на странице настроек плагина.
* добавлен вывод подписи для главного изображения записи.
* добавлены фильтры "yzen_thumb_imgurl" и "yzen_thumb_caption" для вывода изображения записи в случае, если используется собственное поле для хранения изображения записи, а не "родной" функционал WordPress.
= 1.26 =
* это мини-апдейт с исправлениями ошибок.
* исправлено формирование guid (теперь там не ссылки).
* исправлено формирование даты (указывается часовой пояс).
= 1.25 =
* удалены все функции сервиса Яндекс.Турбо (используйте отдельный плагин RSS for Yandex Turbo).
* добавлена возможность включения в начало записей их "отрывков".
* добавлена возможность исключения записей из ленты по умолчанию.
* добавлен фильтр на аргументы цикла (для разработчиков для более гибкой выборки записей ленты).
* исправлено дублирование контента при использовании шорткодов некоторых плагинов (вукомерс и другие).
* удалены все лишние фильтры в фиде (исправление невалидности ленты, когда некоторые плагины изменяли ленту под себя).
= 1.24 =
* переписана функция удаления тегов с контентом (теперь она справляется со вложенностью).
= 1.23 =
* функция iconv_strlen была заменена на функцию mb_strlen (первая выдавала ошибку при плохой разметке записи - в результате отсутствовала реклама в середине записи).
= 1.22 =
* добавлена возможность включения в rss-ленту записей только указанных таксономий.
= 1.21 =
* добавлена возможность установить все поддерживаемые Яндексом счетчики на turbo-страницах.
= 1.20 =
* добавлена возможность выводить блок "похожих" записей при включенных turbo-страницах (тег <yandex:related>).
* добавлена возможность отключения рекламы для конкретной записи на turbo-странице (в метабоксе плагина).
* из контента записей теперь удаляются все спец. символы юникода (как невалидные в rss).
* полностью переписаны регулярки плагина - из тегов img теперь вырезаются все лишние атрибуты.
= 1.19 =
* я дико извиняюсь за столь частые обновления плагина!
* были оптимизированы регулярки плагина, так как в некоторых случаях мог удаляться контент записи в RSS-ленте.
= 1.18 =
* к контенту и описанию записей больше не применяется фильтр "the_content_feed" (во избежание конфликтов с другими плагинами, работающими с RSS).
* добавлены фильтры обработки контента "yzen_the_content" и описания "yzen_the_excerpt" записи.
* удален action "rss2_item" (во избежание добавления в ленту левых тегов от плагинов вроде Jetpack).
* при удалении плагина настройки плагина теперь будут полностью удалены из базы данных.
* при деактивации плагина RSS-лента плагина теперь будет выдавать обычную 404-ошибку.
= 1.17 =
* добавлен третий рекламный блок и возможность выводить рекламу в середине записи (на turbo-страницах).
* добавлена возможность отключения turbo-страниц (путем добавления turbo="false" к тегу <item>).
* минимальное количество записей уменьшено до 20 (изменились требования Яндекса).
* включение рекламных блоков больше не работает, если не указаны идентификаторы рекламных сетей.
* исправлено сохранение пустого значения счетчика метрики (чтобы удалить номер установленного счетчика).
* скрипты из кода плагина были перенесены во внешний файл (внутреннее изменение).
= 1.16 =
* добавлена возможность изменения имени ленты в урле.
* добавлена отдельная опция включения миниатюр на turbo-страницах.
* функция wpautop теперь обрабатывает контент после удаления тегов, а не до.
* переписана функция удаления тегов без контента (теперь она справляется с большой вложенностью).
* из разметки изображений убраны атрибуты srcset и sizes.
* исправлена ошибка парсинга изображений (когда в rss пропадал весь текст записи).
= 1.15 =
* добавлена возможность отключить разметку "автора" для изображений.
* добавлена возможность отключить разметку "описания" для изображений.
* добавлена ссылка на плагин RSS for Yandex Turbo.
= 1.14 =
* исправлено двойное отображение миниатюры записи (при включенной опции добавления в RSS миниатюры записи) на turbo-страницах.
* убран двойной заголовок в записях на turbo-страницах (оставлен тег h1, убран тег h2).
= 1.13 =
* исправлена ошибка с кодом счетчика метрики (в инструкциях яндекса была ошибка по его разметке).
= 1.12 =
* добавлена поддержка Яндекс.Турбо (в тестовом режиме).
= 1.11 =
* из заголовков убран тег "X-Robots-Tag: noindex, follow", добавляемый SEO-плагинами (изменен на "X-Robots-Tag: index, follow").
= 1.10 =
* исправлена ошибка с удалением тегов из контента записей.
= 1.09 =
* исправлен досадный баг с определением дублей в теге enclosure.
= 1.08 =
* добавлена возможность задавать описание записей в rss-ленте из SEO-плагинов.
* добавлена возможность удалять указанные html-теги в записях (с удалением и без удаления контента этих тегов).
* добавлена возможность удалять указанный контент из записей (по умолчанию удаляются пустые теги параграфа и тег more).
* удалены дубли картинок в теге enclosure (если изображения в записях повторяются).
* поправлена разметка миниатюр, которая при определенных условиях могла неправильно выводиться.
* теги параграфа удаляются вокруг тегов figure, если кроме figure в параграфе нет другого содержимого.
* часть настроек плагина перенесена в раздел "Продвинутые настройки".
* контент записей в rss теперь обрабатывается фильтром "the_content_feed".
* из контента теперь удаляются ссылки на youtube-ролики (тех. поддержка яндекс.дзена заворачивает ленты с youtube-ссылками).
* исправлена разметка изображений, для которых в редакторе прописана "подпись" (в html5-коде).
= 1.07 =
* "прикрепленные" записи теперь игнорируются при выводе в rss-ленте (они выводятся на общем основании - по дате публикации).
* изменение интерфейса метабокса при редактировании записей (чекбоксы вместо селектов).
* исправлен баг формирования rss-ленты при неправильной разметке записей.
= 1.06 =
* исправлена ошибка с русскими именами изображений.
* rss-лента теперь отдается с content-type "application/rss+xml" (как стандартные rss-ленты движка).
= 1.05 =
* добавлена возможность исключать из ленты все записи указанных таксономий (рубрик, меток и т.д.).
* исправлена разметка изображений, для которых в редакторе прописана "подпись".
= 1.04 =
* исправлен баг с количеством записей в ленте (когда исключенные вручную записи все равно учитывались в общем количестве записей в ленте).
= 1.03 =
* тег iframe теперь вырезается в RSS-ленте.
= 1.02 =
* добавлена возможность включения в RSS миниатюр записей.
* убран пробел в конце тега enclosure.
= 1.01 =
* параметры из ссылок на картинки теперь вырезаются.
= 1.00 =
* первая версия.