Наша взаимовыгодная связь https://banwar.org/
Розповідаю, як в Вордпресс створити новий РСС-фід для підключення до Яндекс.Дзен.

На цьому тижні на мене обрушився шквал заявок на підключення сайтів до нового сервісу Яндекс.Дзен .
Яндекс.Дзен - це сервіс персональних рекомендацій Яндекса. Він становить добірку новин, постів з блогів і інших публікацій, які можуть бути вам цікаві.
На жаль, дефолтний РСС-фід Вордпресс не відповідає вимогам Яндекса. І для успішного проходження технічної модерації необхідно створити додатковий.
Робиться це дуже просто. Особливо якщо взяти за основу інструкцію по створенню кастомних фідів на WPbeginner, посилання в кінці.
1. У файлі functions.php активної теми створюємо новий фід і називаємо його zen, наприклад.
add_action ( 'init', 'customRSS'); function customRSS () {add_feed ( 'zen', 'customRSSFunc'); }В цьому випадку фид матиме доступ / feed / zen
2. У директорії теми створюємо новий файл, називаємо його rss-zen.php - це буде шаблон нового фида.
3. Вставляємо в шаблон наступний код.
<? Php $ posts = query_posts ( 'showposts = 50'); header ( 'Content-Type:' .feed_content_type ( 'rss-http'). '; charset ='. get_option ( 'blog_charset'), true); echo '<? xml version = "1.0" encoding = "'. get_option ( 'blog_charset'). '"?'. '>'; ?> <Rss version = "2.0" xmlns: content = "http://purl.org/rss/1.0/modules/content/" xmlns: wfw = "http://wellformedweb.org/CommentAPI/" xmlns: dc = "http://purl.org/dc/elements/1.1/" xmlns: media = "http://search.yahoo.com/mrss/" xmlns: atom = "http://www.w3.org/ 2005 / Atom "xmlns: sy =" http://purl.org/rss/1.0/modules/syndication/ "xmlns: slash =" http://purl.org/rss/1.0/modules/slash/ "<? php do_action ( 'rss2_ns'); ? >> <channel> <title> <? Php bloginfo ( 'name'); ?> </ Title> <link> <? Php bloginfo ( 'url')?> </ Link> <description> <? Php bloginfo ( 'description')?> </ Description> <language> ru </ language> <? php do_action ( 'rss2_head'); ?> <? Php while (have_posts ()): the_post (); ?> <Item> <title> <? Php the_title_rss (); ?> </ Title> <link> <? Php the_permalink_rss (); ?> </ Link> <pubDate> <? Php echo mysql2date ( 'D, d MYH: i: s +0000', get_post_time ( 'Ymd H: i: s', true), false); ?> </ PubDate> <media: rating scheme = "urn: simple"> nonadult </ media: rating> <author> <? Php the_author (); ?> </ Author> <category> Технології </ category> <? Php $ gallery = get_attached_media ( 'image', $ post); foreach ($ gallery as $ image_url) {echo '<enclosure url = "'. $ image_url-> guid. '" type = "image / jpeg" />'; }?> <Description> <! [CDATA [<? Php echo get_the_excerpt (); ?>]]> </ Description> <content: encoded> <! [CDATA [<? Php $ content = get_post_field ( 'post_content', $ post-> ID); $ Pattern = '/ (<img ([^>] *)>) / i'; $ Replacement = '<figure> $ 1 <figcaption>'. Get_the_title (). '<Span class = "copyright"> <? Php the_author (); ?> </ Span> </ figcaption> </ figure> '; $ Content = preg_replace ($ pattern, $ replacement, $ content); echo $ content; ?>]]> </ Content: encoded> <? Php rss_enclosure (); ?> <? Php do_action ( 'rss2_item'); ?> </ Item> <? Php endwhile; ?> </ Channel> </ rss>У коді міняємо category на свою зі списку категорій Яндекс.Дзен:
Події, Політика, Війна, Товариство, Економіка, Спорт, Технології, Наука, Ігри, Музика, Література, Кіно, Культура, Мода, Знаменитості, Психологія, Здоров'я, Авто, Будинок, Хобі, Їжа, Дизайн, Фотографії, Гумор, Природа, Подорожі.
Якщо контент сайту відноситься до категорії для дорослих, обов'язково міняємо nonadult на adult в цьому рядку.
<Media: rating scheme = "urn: simple"> nonadult </ media: rating>UTM-мітки додаються наступним чином:
<Link> <? Php the_permalink_rss (); ?>? Utm_source = zen </ link>4. Підключаємо шаблон до нового фіду в functions.php.
function customRSSFunc () {get_template_part ( 'rss', 'zen'); }5. Відкриваємо админку Вордпресс, йдемо в настройки постійних посилань і натискаємо кнопку «Зберегти зміни». Структура оновиться і новий фід буде доступний за адресою / feed / zen.
Відправляємо фид на модерацію за допомогою форми зворотного зв'язку Дзена в розділі « Створення та налагодження каналу ».
Через деякий час прийде лист з підтвердженням підключення.
За матеріалами:
UPD: Виправлений валідний фид тут
Lt;?Quot;?
Gt;'; ?
Php do_action ( 'rss2_ns'); ?
Php bloginfo ( 'name'); ?
Php bloginfo ( 'url')?
Php bloginfo ( 'description')?
Php do_action ( 'rss2_head'); ?
Php while (have_posts ()): the_post (); ?
Php the_title_rss (); ?